An easy way to replicate this on my Linux Desktop: Send 100K messages using Naresh's testcase.
The MDBs will be receiving messages over XA. I got the eventual exception: javax.jms.JMSException: MessagingException[errorCode=3 message=Did not receive ping from server] One thing I realized, was during the processing.. the MDB is consuming messages over XA, so I got lots of small transactions processing... on the client: "Thread-13 (group:JBM-client-global-threads-1127086624)" daemon prio=10 tid=0x00007f6d263e0000 nid=0x626f waiting on condition [0x000000004648e000..0x000000004648eb80] | java.lang.Thread.State: TIMED_WAITING (parking) | at sun.misc.Unsafe.park(Native Method) | - parking to wait for <0x00007f6d59f3bc98> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) | at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198) | at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2054) | at org.jboss.messaging.core.remoting.impl.ChannelImpl.sendBlocking(ChannelImpl.java:308) | - locked <0x00007f6d59f3bcf8> (a java.lang.Object) | at org.jboss.messaging.core.client.impl.ClientSessionImpl.commit(ClientSessionImpl.java:810) | at com.arjuna.ats.internal.jta.resources.arjunacore.XAResourceRecord.topLevelOnePhaseCommit(XAResourceRecord.java:811) | at com.arjuna.ats.arjuna.coordinator.BasicAction.onePhaseCommit(BasicAction.java:2656) | at com.arjuna.ats.arjuna.coordinator.BasicAction.End(BasicAction.java:1784) | - locked <0x00007f6d633e0a88> (a com.arjuna.ats.internal.jta.transaction.arjunacore.AtomicAction) | at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:94) | at com.arjuna.ats.arjuna.AtomicAction.commit(AtomicAction.java:177) | at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1423) | at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:137) | at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:75) | at org.jboss.messaging.ra.inflow.JBMMessageHandler$XATransactionDemarcationStrategy.end(JBMMessageHandler.java:544) | at org.jboss.messaging.ra.inflow.JBMMessageHandler.onMessage(JBMMessageHandler.java:287) | at org.jboss.messaging.core.client.impl.ClientConsumerImpl.callOnMessage(ClientConsumerImpl.java:671) | at org.jboss.messaging.core.client.impl.ClientConsumerImpl.access$100(ClientConsumerImpl.java:41) | at org.jboss.messaging.core.client.impl.ClientConsumerImpl$Runner.run(ClientConsumerImpl.java:788) | at org.jboss.messaging.utils.OrderedExecutorFactory$OrderedExecutor$1.run(OrderedExecutorFactory.java:105) | at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) | at java.lang.Thread.run(Thread.java:619) | | and on the server: | "Thread-9 (group:JBM-server-threads799626944-377384882)" prio=10 tid=0x00007f6d379f3000 nid=0x627c waiting on condition [0x000000004719b000..0x000000004719bc00] | java.lang.Thread.State: WAITING (parking) | at sun.misc.Unsafe.park(Native Method) | - parking to wait for <0x00007f6d6340ae90> (a org.jboss.messaging.utils.VariableLatch$CountSync) | 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.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:905) | at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1217) | at org.jboss.messaging.utils.VariableLatch.waitCompletion(VariableLatch.java:120) | at org.jboss.messaging.core.journal.impl.TransactionCallback.waitCompletion(TransactionCallback.java:56) | at org.jboss.messaging.core.journal.impl.JournalTransaction.waitCompletion(JournalTransaction.java:379) | at org.jboss.messaging.core.journal.impl.JournalImpl.appendPrepareRecord(JournalImpl.java:1210) | at org.jboss.messaging.core.persistence.impl.journal.JournalStorageManager.prepare(JournalStorageManager.java:411) | at org.jboss.messaging.core.transaction.impl.TransactionImpl.prepare(TransactionImpl.java:166) | - locked <0x00007f6d6340abd8> (a java.lang.Object) | at org.jboss.messaging.core.transaction.impl.TransactionImpl.commit(TransactionImpl.java:208) | - locked <0x00007f6d6340abd8> (a java.lang.Object) | at org.jboss.messaging.core.server.impl.ServerSessionImpl.doHandleXACommit(ServerSessionImpl.java:1738) | at org.jboss.messaging.core.server.impl.ServerSessionImpl.handleXACommit(ServerSessionImpl.java:545) | at org.jboss.messaging.core.server.impl.ServerSessionPacketHandler.handlePacket(ServerSessionPacketHandler.java:168) | at org.jboss.messaging.core.remoting.impl.ChannelImpl.handlePacket(ChannelImpl.java:621) | at org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl.bufferReceived(RemotingConnectionImpl.java:364) | - locked <0x00007f6d5a1c94c0> (a java.lang.Object) | at org.jboss.messaging.core.remoting.server.impl.RemotingServiceImpl$DelegatingBufferHandler.bufferReceived(RemotingServiceImpl.java:483) | at org.jboss.messaging.core.remoting.impl.invm.InVMConnection$1.run(InVMConnection.java:136) | at org.jboss.messaging.utils.OrderedExecutorFactory$OrderedExecutor$1.run(OrderedExecutorFactory.java:105) | at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) | at java.lang.Thread.run(Thread.java:619) | Maybe this specific usecase is holding of pings and pongs because of the locks during the XA commit? View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4243957#4243957 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4243957 _______________________________________________ jboss-user mailing list [email protected] https://lists.jboss.org/mailman/listinfo/jboss-user
