3 Replies Latest reply on Jun 25, 2013 9:06 AM by Carsten Maneg

    JBoss EAP 6.1: WARN Local XARecoveryModule.xaRecovery got XA exception XAException.XAER_RMFAIL

    Carsten Maneg Newbie

      Hi 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>


        • 1. Re: JBoss EAP 6.1: WARN Local XARecoveryModule.xaRecovery got XA exception XAException.XAER_RMFAIL
          Carsten Maneg Newbie

          Any ideas?
          What's the difference between 6.0.1 and 6.1?

          (There is no warning when running 6.0.1!!!)

           

          And I tried to configure recovery for xa-datasource with

          <recovery no-recovery="true">

          but I still get the warning.

           

          An if I try to use the xa datasource example from EAP doc I get a lot of errors.

          <recover-plugin class-name="org.jboss.jca.core.recovery.ConfigurableRecoveryPlugin">

            <config-property name="EnableIsValid">false</config-property>

            <config-property name="IsValidOverride">false</config-property>

            <config-property name="EnableClose">false</config-property>

          </recover-plugin>

           

          First of all documentation is wrong cause its written <recovery-plugin> but should be <recover-plugin> (like xsd of course).

          Fixed this there is a ClassNotFound for ConfigurableRecoveryPlugin.

          Ok, added the module <module name="org.jboss.ironjacamar.impl"/> to my ibm.db2 module.

          But then

           

          14:31:15,463 ERROR [org.jboss.as.connector.subsystems.datasources.AbstractDataSourceService$AS7DataSourceDeployer] (MSC service thread 1-7) Error during the deployment of java:/MdtdbDS: org.jboss.jca.deployers.common.DeployException: JBAS010472: Deployment org.jboss.jca.core.recovery.ConfigurableRecoveryPlugin failed

              at org.jboss.as.connector.subsystems.datasources.AbstractDataSourceService$AS7DataSourceDeployer.initAndInject(AbstractDataSourceService.java:340)

              at org.jboss.jca.deployers.common.AbstractDsDeployer.deployXADataSource(AbstractDsDeployer.java:833)

              at org.jboss.jca.deployers.common.AbstractDsDeployer.createObjectsAndInjectValue(AbstractDsDeployer.java:338)

              at org.jboss.as.connector.subsystems.datasources.AbstractDataSourceService$AS7DataSourceDeployer.deploy(AbstractDataSourceService.java:284)

              at org.jboss.as.connector.subsystems.datasources.AbstractDataSourceService.start(AbstractDataSourceService.java:117)

              at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)

              at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)

              at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) [rt.jar:1.6.0_35]

              at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [rt.jar:1.6.0_35]

              at java.lang.Thread.run(Unknown Source) [rt.jar:1.6.0_35]

          Caused by: java.lang.NoSuchMethodException: JBAS010474: Method setEnableIsValid not found

              at org.jboss.as.connector.util.Injection.inject(Injection.java:130)

              at org.jboss.as.connector.util.Injection.inject(Injection.java:83)

              at org.jboss.as.connector.subsystems.datasources.AbstractDataSourceService$AS7DataSourceDeployer.initAndInject(AbstractDataSourceService.java:328)

              ... 9 more

           

          Whats wrong now?

          • 2. Re: JBoss EAP 6.1: WARN Local XARecoveryModule.xaRecovery got XA exception XAException.XAER_RMFAIL
            jaikiran pai Master

            Carsten Maneg wrote:

             

             

            First of all documentation is wrong cause its written <recovery-plugin> but should be <recover-plugin> (like xsd of course).

            Can you point us to that documentation please? We'll have to fix it.