Description of problem: HornetQResourceAdapter throws ResourceException("Unsupported") when getXAResources is called. However due to recent changes in IronJacamar, this method gets called on transaction recovery, potentially leading to lost messages. Version-Release number of selected component (if applicable): EAP 6.1.1.ER3, HornetQ 2.3.2.Final, IronJacamar 1.0.19.Final See class org.jboss.jca.core.tx.jbossts.XAResourceRecoveryInflowImpl method getXAResources() Actual results: ERROR [org.jboss.jca.core.tx.jbossts.XAResourceRecoveryInflowImpl] (Periodic Recovery) IJ000902: Error during inflow crash recovery for 'org.hornetq.ra.HornetQResourceAdapter' (org.hornetq.ra.inflow.HornetQActivationSpec(ra=org.hornetq.ra.HornetQResourceAdapter@4f02d3d2 destination=jms/queue/InQueue destinationType=javax.jms.Queue ack=Auto-acknowledge durable=false clientID=null user=null maxSession=15)): javax.resource.ResourceException: Unsupported at org.hornetq.ra.HornetQResourceAdapter.getXAResources(HornetQResourceAdapter.java:204) at org.jboss.jca.core.tx.jbossts.XAResourceRecoveryInflowImpl.getXAResources(XAResourceRecoveryInflowImpl.java:96) at com.arjuna.ats.internal.jbossatx.jta.XAResourceRecoveryHelperWrapper.getXAResources(XAResourceRecoveryHelperWrapper.java:51) [jbossjts-integration-4.17.5.Final-redhat-1.jar:4.17.5.Final-redhat-1] at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.resourceInitiatedRecoveryForRecoveryHelpers(XARecoveryModule.java:503) [jbossjts-jacorb-4.17.5.Final-redhat-1.jar:4.17.5.Final-redhat-1] at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.periodicWorkFirstPass(XARecoveryModule.java:159) [jbossjts-jacorb-4.17.5.Final-redhat-1.jar:4.17.5.Final-redhat-1] at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doWorkInternal(PeriodicRecovery.java:743) [jbossjts-jacorb-4.17.5.Final-redhat-1.jar:4.17.5.Final-redhat-1] at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery.java:371) [jbossjts-jacorb-4.17.5.Final-redhat-1.jar:4.17.5.Final-redhat-1]
It won't lose messages... HornetQ registers itself on the Transaction Manager, hence that method is not supported. We have changed it to return null on master... ONly thing that will be changed on this is.. you won't have an exception any longer.. but all the semantics are the same.
You're right, I didn't manage to confirm any example where messages would be lost. Please make sure the change is propagated into 2.3.x branch so it's in next EAP release later this year. Since the log message is now reported as ERROR level, it can be confusing for the end user (it was for me). Thanks
Moving to assigned. Clebert could you move to modified since it's in HQ master. This issue should be documented in known issues. Thanks, Mirek
this has been applied to 2.3.x as well, it should be marked as fixed on the current ER (HQ 2.3.3, 2.3.4 and 2.3.5 will include this fix)
BZ is in incorrect state. Fix for this issue is present in EAP 6.1.1.ER7(HQ 2.3.5.Final) Verified in EAP 6.1.1.ER7.
https://github.com/hornetq/hornetq/pull/1177