Uploaded image for project: 'JBoss Enterprise Application Platform'
  1. JBoss Enterprise Application Platform
  2. JBEAP-1497

Recovery manager is not able to recover MDB and shows warnings on each run.

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Blocker
    • 7.0.0.ER4
    • 7.0.0.DR11
    • ActiveMQ, JMS
    • None
    • Hide

      When MDB Inbound connection enlisted on 2PC, and server crashes before TX save state is called, Recovery manager is not able to proceed the log about JMS MDB XA resource and shows warning messages on each time it runs.

      1. Enlist MDB JMS XA resource for Inbound connection.
      2. Enlist TestXA resource.
      3. 2PC starts prepare phase
      4. Prepare MDB JMS XA resource.(txn log created on broker side)
      5. Prepare TestXA resource.
      6. 2PC starts commit phase
      7. MDB JMS XA resource is committed.(txn log erased on broker side)
      8. Crash JVM and undeploy MDB.
      9. Restart the server and start recovery.
      10. TestXA resource is committed
      11. Recovery manager logs warning messages for MDB JMS XA resource each time it is started (txn log record about MDB JMS XA still exist in transaction log store on EAP side)

      14:50:04,897 WARN  [com.arjuna.ats.jta] (Periodic Recovery) ARJUNA016037: Could not find new XAResource to use for recovering non-serializable XAResource XAResourceRecord < resource:null, txid:< formatId=131077, gtrid_length=29, bqual_length=36, tx_uid=0:ffff7f000001:718d19b:561fa0a5:25, node_name=1, branch_uid=0:ffff7f000001:718d19b:561fa0a5:26, subordinatenodename=null, eis_name=unknown eis name >, heuristic: TwoPhaseOutcome.FINISH_OK com.arjuna.ats.internal.jta.resources.arjunacore.XAResourceRecord@2a6e6c5 >
      14:50:04,897 WARN  [com.arjuna.ats.jta] (Periodic Recovery) ARJUNA016038: No XAResource to recover < formatId=131077, gtrid_length=29, bqual_length=36, tx_uid=0:ffff7f000001:718d19b:561fa0a5:25, node_name=1, branch_uid=0:ffff7f000001:718d19b:561fa0a5:26, subordinatenodename=null, eis_name=unknown eis name >
      

      Possible cause of issue is because eis_name is unknown, as shown in logs.

      Full trace log of server is attached.

      The issue can be reproduced via automated test case.
      1. Clone the repo: "git clone -b JMS-MDB-LOG --single-branch git@gitlab.mw.lab.eng.bos.redhat.com:hhovsepy/tests-transactions.git"
      2. Change directory: "cd tests-transactions/jbossts/"
      3. Run test: "mvn clean verify -Djboss.dist=$JBOSS_HOME -Dtest=JMSMdbCrashRecoveryTestCase#commitHaltFirst"

      Show
      When MDB Inbound connection enlisted on 2PC, and server crashes before TX save state is called, Recovery manager is not able to proceed the log about JMS MDB XA resource and shows warning messages on each time it runs. 1. Enlist MDB JMS XA resource for Inbound connection. 2. Enlist TestXA resource. 3. 2PC starts prepare phase 4. Prepare MDB JMS XA resource.(txn log created on broker side) 5. Prepare TestXA resource. 6. 2PC starts commit phase 7. MDB JMS XA resource is committed.(txn log erased on broker side) 8. Crash JVM and undeploy MDB. 9. Restart the server and start recovery. 10. TestXA resource is committed 11. Recovery manager logs warning messages for MDB JMS XA resource each time it is started (txn log record about MDB JMS XA still exist in transaction log store on EAP side) 14:50:04,897 WARN [com.arjuna.ats.jta] (Periodic Recovery) ARJUNA016037: Could not find new XAResource to use for recovering non-serializable XAResource XAResourceRecord < resource: null , txid:< formatId=131077, gtrid_length=29, bqual_length=36, tx_uid=0:ffff7f000001:718d19b:561fa0a5:25, node_name=1, branch_uid=0:ffff7f000001:718d19b:561fa0a5:26, subordinatenodename= null , eis_name=unknown eis name >, heuristic: TwoPhaseOutcome.FINISH_OK com.arjuna.ats.internal.jta.resources.arjunacore.XAResourceRecord@2a6e6c5 > 14:50:04,897 WARN [com.arjuna.ats.jta] (Periodic Recovery) ARJUNA016038: No XAResource to recover < formatId=131077, gtrid_length=29, bqual_length=36, tx_uid=0:ffff7f000001:718d19b:561fa0a5:25, node_name=1, branch_uid=0:ffff7f000001:718d19b:561fa0a5:26, subordinatenodename= null , eis_name=unknown eis name > Possible cause of issue is because eis_name is unknown, as shown in logs. Full trace log of server is attached. The issue can be reproduced via automated test case. 1. Clone the repo: "git clone -b JMS-MDB-LOG --single-branch git@gitlab.mw.lab.eng.bos.redhat.com:hhovsepy/tests-transactions.git" 2. Change directory: "cd tests-transactions/jbossts/" 3. Run test: "mvn clean verify -Djboss.dist=$JBOSS_HOME -Dtest=JMSMdbCrashRecoveryTestCase#commitHaltFirst"

    Description

      Recovery manager is not able to recover MDB and shows warnings.
      This causes to see the same warning log in server each time recovery is run.
      This happens when server is crashed before transaction state is saved.

      Attachments

        Issue Links

          Activity

            People

              jmesnil1@redhat.com Jeff Mesnil
              hhovsepy@redhat.com Hayk Hovsepyan
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: