I am forcing a deadlock to generate rollbacks, and it doesn't look like
they are being retried [successfully]. Instead, this happens:
org.apache.activemq.broker.AbstractConnection.serviceException Async
error occurred: javax.jms.JMSException: Could not correlate ack
nowledgment with dispatched message: MessageAck {commandId = 165,
responseRequired = false, ackType = 1, consumerId = ID:xxx-1
994-1144872050755-2:5:-1:2, firstMessageId =
ID:xxx-1994-1144872050755-2:1:1:1:3, lastMessageId = ID:xxx-1994-1144872050
755-2:1:1:1:3, destination = queue://somethingQueue, transactionId =
null, messageCount = 1}
javax.jms.JMSException: Could not correlate acknowledgment with
dispatched message: MessageAck {commandId = 165, responseRequired =
false, ackType = 1, consumerId = ID:xxx-1994-1144872050755-2:5:-1:2,
firstMessageId = ID:xxx-1994-1144872050755-2:1:1:1:
3, lastMessageId = ID:xxx-1994-1144872050755-2:1:1:1:3, destination =
queue://somethingQueue, transactionId = null, message
Count = 1}
at
org.apache.activemq.broker.region.PrefetchSubscription.acknowledge(PrefetchSubscription.java:184)
at
org.apache.activemq.broker.region.AbstractRegion.acknowledge(AbstractRegion.java:203)
at
org.apache.activemq.broker.region.RegionBroker.acknowledge(RegionBroker.java:340)
at
org.apache.activemq.broker.TransactionBroker.acknowledge(TransactionBroker.java:176)
at
org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:61)
at
org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:61)
at
org.apache.activemq.broker.MutableBrokerFilter.acknowledge(MutableBrokerFilter.java:73)
at
org.apache.activemq.broker.AbstractConnection.processMessageAck(AbstractConnection.java:351)
at org.apache.activemq.command.MessageAck.visit(MessageAck.java:178)
at
org.apache.activemq.broker.AbstractConnection.service(AbstractConnection.java:196)
at
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:62)
at
org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:93)
at
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:70)
at
org.apache.activemq.transport.vm.VMTransport.oneway(VMTransport.java:76)
at
org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:44)
at
org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:56)
at
org.apache.activemq.ActiveMQConnection.asyncSendPacket(ActiveMQConnection.java:1088)
at
org.apache.activemq.ActiveMQSession.asyncSendPacket(ActiveMQSession.java:1624)
at
org.apache.activemq.ActiveMQSession$2.afterRollback(ActiveMQSession.java:692)
at
org.apache.activemq.TransactionContext.afterRollback(TransactionContext.java:134)
at
org.apache.activemq.TransactionContext.rollback(TransactionContext.java:409)
at
org.apache.activemq.ra.LocalAndXATransaction.rollback(LocalAndXATransaction.java:126)
at
org.apache.geronimo.transaction.manager.WrapperNamedXAResource.rollback(WrapperNamedXAResource.java:78)
at
com.caucho.transaction.TransactionImpl.rollbackInt(TransactionImpl.java:787)
at
com.caucho.transaction.TransactionImpl.commit(TransactionImpl.java:560)
at org.jencks.XAEndpoint.afterDelivery(XAEndpoint.java:103)
at
org.apache.activemq.ra.MessageEndpointProxy$MessageEndpointAlive.afterDelivery(MessageEndpointProxy.java:125)
at
org.apache.activemq.ra.MessageEndpointProxy.afterDelivery(MessageEndpointProxy.java:64)
at
org.apache.activemq.ra.ServerSessionImpl.afterDelivery(ServerSessionImpl.java:214)
at org.apache.activemq.ActiveMQSession.run(ActiveMQSession.java:723)
at
org.apache.activemq.ra.ServerSessionImpl.run(ServerSessionImpl.java:163)
at com.caucho.jca.WorkThread.run(WorkThread.java:99)
at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:490)
at com.caucho.util.ThreadPool.run(ThreadPool.java:423)
at java.lang.Thread.run(Thread.java:595)
This, of course, works in 3.2.2. Ideas?
--
Christopher G. Stach II