-
Bug
-
Resolution: Done
-
Minor
-
JBoss A-MQ 6.1
-
None
Copied from https://bugzilla.redhat.com/show_bug.cgi?id=998449:It seems that ActiveMQ returns incorrect return code after second call of the rollback of transaction manager doing crash recovery. This seems to be a similar issue as we found for PostgreSQL (https://bugzilla.redhat.com/show_bug.cgi?id=988724).There is exception thrown on the second rollback() call on XAResource[1].The JTS specification defines that the rollback() can be called twice on the same XAResource. The XAException seems to carry value 0.
As I referred we found out the similar issue for driver postgresql and the return value was changed to be XAException.XAER_NOTA in such case.More details on test setup could be found here:
https://docspace.corp.redhat.com/docs/DOC-146452#crash-recoveryIn case technical details could be discussed with Tom Jenkinson from Narayana team.[1]
12:15:57,770 WARN[com.arjuna.ats.jtax](RequestProcessor-10) ARJUNA024023: XAResourceRecord.rollback caused an XA error: ARJUNA016099: Unknown error code:0 from resource XAResourceWrapperImpl@2874fb7a[xaResource=org.apache.activemq.ra.ActiveMQManagedConnection$1@38665ee7 pad=false overrideRmValue=null productName=ActiveMQ productVersion=5.8.0.redhat-60024 jndiName=java:/JmsXA]in transaction < 131072, 29, 36, 0000000000-1-1127001-11735-31-518217-16460005149, 292929292929292929292828156292930-8864-2-22111461375292929807829292929292929 >: javax.transaction.xa.XAException: Transaction 'XID:[131072,globalId=0000000000ffffffffffffffff7f001ffffff8b23ffffffe1ffffffcd5211fffffff02e0003331,branchId=0000000000ffffffffffffffff7f001ffffff8b23ffffffe1ffffffcd5211fffffff02e0003800000000]' has not been started.
at org.apache.activemq.TransactionContext.toXAException(TransactionContext.java:773)
at org.apache.activemq.TransactionContext.rollback(TransactionContext.java:526)
at org.apache.activemq.ra.LocalAndXATransaction.rollback(LocalAndXATransaction.java:128)
at org.jboss.jca.core.tx.jbossts.XAResourceWrapperImpl.rollback(XAResourceWrapperImpl.java:186)
at com.arjuna.ats.internal.jta.resources.jts.orbspecific.XAResourceRecord.rollback(XAResourceRecord.java:369)[jbossjts-jacorb-4.17.7.Final-redhat-3.jar:4.17.7.Final-redhat-3]
at com.arjuna.ArjunaOTS.OTSAbstractRecordPOA._invoke(OTSAbstractRecordPOA.java:213)[jbossjts-jacorb-4.17.7.Final-redhat-3.jar:4.17.7.Final-redhat-3]
at org.jacorb.poa.RequestProcessor.invokeOperation(RequestProcessor.java:306)[jacorb-2.3.2-redhat-4.jar:2.3.2-redhat-4]
at org.jacorb.poa.RequestProcessor.process(RequestProcessor.java:626)[jacorb-2.3.2-redhat-4.jar:2.3.2-redhat-4]
at org.jacorb.poa.RequestProcessor.run(RequestProcessor.java:769)[jacorb-2.3.2-redhat-4.jar:2.3.2-redhat-4]
Caused by: javax.transaction.xa.XAException: Transaction 'XID:[131072,globalId=0000000000ffffffffffffffff7f001ffffff8b23ffffffe1ffffffcd5211fffffff02e0003331,branchId=0000000000ffffffffffffffff7f001ffffff8b23ffffffe1ffffffcd5211fffffff02e0003800000000]' has not been started.
at org.apache.activemq.broker.TransactionBroker.getTransaction(TransactionBroker.java:380)
at org.apache.activemq.broker.TransactionBroker.rollbackTransaction(TransactionBroker.java:267)
at org.apache.activemq.broker.BrokerFilter.rollbackTransaction(BrokerFilter.java:125)
at org.apache.activemq.broker.BrokerFilter.rollbackTransaction(BrokerFilter.java:125)
at org.apache.activemq.broker.MutableBrokerFilter.rollbackTransaction(MutableBrokerFilter.java:131)
at org.apache.activemq.broker.TransportConnection.processRollbackTransaction(TransportConnection.java:474)
at org.apache.activemq.command.TransactionInfo.visit(TransactionInfo.java:104)
at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:329)
at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:184)
at org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)
at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
at org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:288)
at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:214)
at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:196)
at java.lang.Thread.run(Thread.java:724)[rt.jar:1.7.0_25]
- is related to
-
ENTMQ-758 "javax.transaction.xa.XAException: Transaction 'XID:[XXX]' has not been started" reported continuously when connection to broker restored.
- Closed