JBoss EAP 6.1: WARN Local XARecoveryModule.xaRecovery got XA exception XAException.XAER_RMFAIL
mac2009 Jun 21, 2013 4:48 AMHi all,
after update/upgrade from EAP 6.0.1 to EAP 6.1 we get the following warning:
WARN [com.arjuna.ats.jta] (Periodic Recovery) ARJUNA016027: Local XARecoveryModule.xaRecovery got XA exception XAException.XAER_RMFAIL: com.ibm.db2.jcc.am.XaException: [jcc][10401][12067][3.63.75] XA-Ausnahmebedingung: XAER_RMFAIL : [jcc][10335][11527][3.63.75] Ungültige Operation: Verbindung ist geschlossen. ERRORCODE=-4470, SQLSTATE=08003 : [jcc][4025][11528][3.63.75] Ausnahmebedingung aus nativem Code während XA-Transaktion. ERRORCODE=0, SQLSTATE=null ERRORCODE=-4228, SQLSTATE=null
at com.ibm.db2.jcc.am.fd.c(fd.java:456)
at com.ibm.db2.jcc.am.fd.c(fd.java:480)
at com.ibm.db2.jcc.uw.UWXAResource.a(UWXAResource.java:624)
at com.ibm.db2.jcc.uw.UWXAResource.b(UWXAResource.java:634)
at com.ibm.db2.jcc.uw.UWXAResource.recover(UWXAResource.java:332)
at org.jboss.jca.adapters.jdbc.xa.XAManagedConnection.recover(XAManagedConnection.java:358)
at org.jboss.jca.core.tx.jbossts.XAResourceWrapperImpl.recover(XAResourceWrapperImpl.java:165)
at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.xaRecoverySecondPass(XARecoveryModule.java:695) [jbossjts-jacorb-4.17.4.Final-redhat-2.jar:4.17.4.Final-redhat-2]
at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.bottomUpRecovery(XARecoveryModule.java:419) [jbossjts-jacorb-4.17.4.Final-redhat-2.jar:4.17.4.Final-redhat-2]
at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.periodicWorkSecondPass(XARecoveryModule.java:194) [jbossjts-jacorb-4.17.4.Final-redhat-2.jar:4.17.4.Final-redhat-2]
at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doWorkInternal(PeriodicRecovery.java:789) [jbossjts-jacorb-4.17.4.Final-redhat-2.jar:4.17.4.Final-redhat-2]
at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery.java:371) [jbossjts-jacorb-4.17.4.Final-redhat-2.jar:4.17.4.Final-redhat-2]
Caused by: com.ibm.db2.jcc.am.SqlNonTransientConnectionException: [jcc][10335][11527][3.63.75] Ungültige Operation: Verbindung ist geschlossen. ERRORCODE=-4470, SQLSTATE=08003
at com.ibm.db2.jcc.am.fd.a(fd.java:669)
at com.ibm.db2.jcc.am.fd.a(fd.java:60)
at com.ibm.db2.jcc.am.fd.a(fd.java:120)
at com.ibm.db2.jcc.uw.UWXAResource.b(UWXAResource.java:632)
Sadly, it doesn't mention which datasource is involved. Is this already known?
What I've found so far somewhere and its not satisfying:
- DB2
- DB2 expects
XAResource.recover
calls only during designated resynchronization stage which occurs when application server is restarted after crash/failure. This is a design flaw in DB2, and out of the scope of this documentation. - The system:
- DB2 v9.7 FP5 and db2jcc.jar (driver)
- EAP 6.1
- Do we have to change datasource configuration when updating to 6.1 or should the old (6.0.1) configuration still work?
- It look like this so far:
<xa-datasource jndi-name="java:/<name>" pool-name="<name>" enabled="true" use-java-context="true">
<xa-datasource-property name="DatabaseName">
<name>
</xa-datasource-property>
<driver>db2</driver>
<security>
<user-name>anyuser</user-name>
<password>anypassword</password>
</security>
</xa-datasource>