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 of over 48,000 articles and solutions.

Current Customers and Partners

Log in for full access

Log In
Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.