]
Ondra Chaloupka reassigned JBJCA-1336:
--------------------------------------
Assignee: Stefano Maestri
Wrong handling of XAResource wrapping with XAResourceWrapperStatImpl
--------------------------------------------------------------------
Key: JBJCA-1336
URL:
https://issues.jboss.org/browse/JBJCA-1336
Project: IronJacamar
Issue Type: Bug
Reporter: Ondra Chaloupka
Assignee: Stefano Maestri
Priority: Blocker
IronJacamar 1.4.0.Final came with {{XAResourceWrapperStatImpl}} which brings
incompatibility of wrapping {{XAResource}} for transaction manager.
This is regression against behavior of 7.0.0.GA.
*Observed behavior*
Transaction object store is not cleared in some cases when {{Artemis Active MQ}} is used
as XADatasource. I think these are cases where functionality of JBTM-860 is used.
*Probably cause*
My observation came to fact that this is caused by change at
{{core/src/main/java/org/jboss/jca/core/connectionmanager/tx/TxConnectionManagerImpl.java}}
where wrapped {{XAResource}} is currently returned when
{{com.arjuna.ats.internal.jta.resources.arjunacore.XAResourceRecord}} is created. The
trouble is that AMQ {{XAResource}} implementation returns different jndiName than the
wrapper one ({{java:/JmsXA}} vs. {{java:/JmsXA
NodeId:2d77d48f-bd2b-11e6-b7e4-28d244b2cf29}}). This inconsistency causes trouble during
recovery where method {{XAResourceRecord#wasResourceContactedByRecoveryModule}} is used to
decide whether {{TwoPhaseOutcome.FINISH_OK}} or {{TwoPhaseOutcome.FINISH_ERROR}} is
outcome of the periodic recovery commit action for particular participant.