ActiveMQ 5.5.1 is quite aged at this point. Any reason you aren’t looking at a newer version?
Transactions and connection pooling is tricky— are you doing XA or JMS Local? I suggest trying to get it all working, then tune.. CACHE_NONE first.
> Hi,
>
> I have a problem that when using transactions all my consumers for a
> particular queue are getting blocking waiting for the commit. We are using
> the Spring DMLC and are caching at the consumer level. This is ActiveMQ
> 5.5.1
>
> All threads end up at a WAITING state with the same stack trace as below:
>
> "service--51" - Thread t@96
> java.lang.Thread.State: WAITING
> at sun.misc.Unsafe.park(Native Method)
> - parking to wait for <12021c84> (a
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
> at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
> at
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
> at
> java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:374)
> at
> org.apache.activemq.transport.FutureResponse.getResult(FutureResponse.java:40)
> at
> org.apache.activemq.transport.ResponseCorrelator.request(ResponseCorrelator.java:87)
> at
> org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1284)
> at
> org.apache.activemq.TransactionContext.syncSendPacketWithInterruptionHandling(TransactionContext.java:707)
> at
> org.apache.activemq.TransactionContext.commit(TransactionContext.java:299)
> at org.apache.activemq.ActiveMQSession.commit(ActiveMQSession.java:560)
> at
> org.springframework.jms.support.JmsUtils.commitIfNecessary(JmsUtils.java:217)
> at
> org.springframework.jms.listener.AbstractMessageListenerContainer.commitIfNecessary(AbstractMessageListenerContainer.java:577)
> at
> org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:482)
> at
> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:325)
> at
> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:243)
> at
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1103)
> at
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1095)
> at
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:992)
> at java.lang.Thread.run(Thread.java:724)
> Locked ownable synchronizers:
> - None
>
> I know that the transaction speed is limited by the disk performance but we
> do not see the disk IO jump beyond what we would expect it can handle.
>
> Anyone got any ideas?
>
> Thanks,
>
> Justin
>
>
>
> --
> View this message in context:
http://activemq.2283324.n4.nabble.com/Consumer-performance-problem-with-Tx-tp4685226.html> Sent from the ActiveMQ - User mailing list archive at Nabble.com.