JMS resource adapter locking under volume in JBoss EAP

Solution Unverified - Updated -

Issue

  • When processing a high volume of messages the JMS JCA resource adapter is locking and preventing messages from being consumed.  There are numerous entries like this in the heap dump:
JMS SessionPool Worker-74" daemon prio=10 tid=0x4a233000 nid=0x293d waiting on condition [0x40460000]
       java.lang.Thread.State: WAITING (parking)
         at sun.misc.Unsafe.park(Native Method)
         - parking to wait for  <0x644fe4f8> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
         at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
         at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:747)
         at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:778)
         at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1114)
         at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:186)
         at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:262)
         at org.jboss.resource.adapter.jms.JmsManagedConnection.lock(JmsManagedConnection.java:393)
         at org.jboss.resource.adapter.jms.JmsXAResource.end(JmsXAResource.java:69)
         at org.jboss.resource.connectionmanager.xa.JcaXAResourceWrapper.end(JcaXAResourceWrapper.java:58)
         at com.arjuna.ats.internal.jta.resources.arjunacore.XAResourceRecord.topLevelPrepare(XAResourceRecord.java:266)
         at com.arjuna.ats.arjuna.coordinator.BasicAction.doPrepare(BasicAction.java:2880)
         at com.arjuna.ats.arjuna.coordinator.BasicAction.doPrepare(BasicAction.java:2837)
         at com.arjuna.ats.arjuna.coordinator.BasicAction.prepare(BasicAction.java:2389)
         - locked <0x6430b600> (a com.arjuna.ats.internal.jta.transaction.arjunacore.AtomicAction)
         at com.arjuna.ats.arjuna.coordinator.BasicAction.End(BasicAction.java:1785)
         - locked <0x6430b600> (a com.arjuna.ats.internal.jta.transaction.arjunacore.AtomicAction)
         at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:88)
         at com.arjuna.ats.arjuna.AtomicAction.commit(AtomicAction.java:177)
         at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1406)
         at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:134)
         at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:87)
         at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:351)
         at org.jboss.jms.client.container.ClientConsumer.callOnMessageStatic(ClientConsumer.java:160)
         at org.jboss.jms.client.container.SessionAspect.handleRun(SessionAspect.java:831)
         at org.jboss.aop.advice.org.jboss.jms.client.container.SessionAspect14.invoke(SessionAspect14.java)
         at org.jboss.jms.client.delegate.ClientSessionDelegate$run_N8003352271541955702.invokeNext(ClientSessionDelegate$run_N8003352271541955702.java)
         at org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:172)
         at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
         at org.jboss.jms.client.delegate.ClientSessionDelegate$run_N8003352271541955702.invokeNext(ClientSessionDelegate$run_N8003352271541955702.java)
         at org.jboss.jms.client.delegate.ClientSessionDelegate.run(ClientSessionDelegate.java)
         at org.jboss.jms.client.JBossSession.run(JBossSession.java:199)
         at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:194)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:761)
         at java.lang.Thread.run(Thread.java:619)
JMS SessionPool Worker-65" daemon prio=10 tid=0x083d9400 nid=0x2926 waiting on condition [0x4082c000]
       java.lang.Thread.State: WAITING (parking)
         at sun.misc.Unsafe.park(Native Method)
         - parking to wait for  <0x644871d8> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
         at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
         at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:747)
         at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:778)
         at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1114)
         at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:186)
         at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:262)
         at org.jboss.resource.adapter.jms.JmsManagedConnection.lock(JmsManagedConnection.java:393)
         at org.jboss.resource.adapter.jms.JmsXAResource.commit(JmsXAResource.java:95)
         at org.jboss.resource.connectionmanager.xa.JcaXAResourceWrapper.commit(JcaXAResourceWrapper.java:53)
         at com.arjuna.ats.internal.jta.resources.arjunacore.XAResourceRecord.topLevelCommit(XAResourceRecord.java:541)
         at com.arjuna.ats.arjuna.coordinator.BasicAction.doCommit(BasicAction.java:3116)
         at com.arjuna.ats.arjuna.coordinator.BasicAction.doCommit(BasicAction.java:3031)
         at com.arjuna.ats.arjuna.coordinator.BasicAction.phase2Commit(BasicAction.java:2129)
         - locked <0x63797b28> (a com.arjuna.ats.internal.jta.transaction.arjunacore.AtomicAction)
         at com.arjuna.ats.arjuna.coordinator.BasicAction.End(BasicAction.java:1821)
         - locked <0x63797b28> (a com.arjuna.ats.internal.jta.transaction.arjunacore.AtomicAction)
         at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:88)
         at com.arjuna.ats.arjuna.AtomicAction.commit(AtomicAction.java:177)
         at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1406)
         at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:134)
         at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:87)
         at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:351)
         at org.jboss.jms.client.container.ClientConsumer.callOnMessageStatic(ClientConsumer.java:160)
         at org.jboss.jms.client.container.SessionAspect.handleRun(SessionAspect.java:831)
         at org.jboss.aop.advice.org.jboss.jms.client.container.SessionAspect14.invoke(SessionAspect14.java)
         at org.jboss.jms.client.delegate.ClientSessionDelegate$run_N8003352271541955702.invokeNext(ClientSessionDelegate$run_N8003352271541955702.java)
         at org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:172)
         at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
         at org.jboss.jms.client.delegate.ClientSessionDelegate$run_N8003352271541955702.invokeNext(ClientSessionDelegate$run_N8003352271541955702.java)
         at org.jboss.jms.client.delegate.ClientSessionDelegate.run(ClientSessionDelegate.java)
         at org.jboss.jms.client.JBossSession.run(JBossSession.java:199)
         at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:194)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:761)
         at java.lang.Thread.run(Thread.java:619)

Environment

  • Red Hat JBoss Enterprise Application Platform (EAP)
    • 4.3

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content