[jboss-user] [JBoss Messaging] - Re:
clebert.suconic@jboss.com
do-not-reply at jboss.com
Thu Jul 16 01:48:20 EDT 2009
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
More information about the jboss-user
mailing list