3 Replies Latest reply on Jun 24, 2014 6:03 AM by tomjenkinson

    Pending tx in weblogic RM never resolved during XA recovery test case

    lily.he

      We have a xa recovery test case as following:

      1. Deploy our jms RA to jboss which communicates to weblogic server.

      2. Start one transaction which includes msg sending via the RA to Weblogic server and some DB operations, so two RMs involved.

      3. Prepare phase successfully passes and weblogic server will shutdown during the commit call.

      4. After the weblogic server restarst, we expect the pending transaction in weblogic side will be committed during transaction recovery driven by jboss TM. But the actual result we get is the pending transaction never resolved.

       

      From attached log file, you can find following lines:

      20:06:31,945 DEBUG [com.arjuna.ats.jta] (Periodic Recovery) Found 1 xids in doubt

      20:06:31,945 DEBUG [com.arjuna.ats.jta] (Periodic Recovery) Have 0 Xids to recover on this pass.

       

      which means during transaction recovery, TM will invoke recover method of XAResource impl by weblogic and this call will return one Xid to TM. The following expecting behavior is jboss TM call commit/rollback with this xid based on its TLOG. But no further call from TM happens.

      I also check related jboss jta code, seems it related to variable RecoveryXids.safetyIntervalMillis which is used to control XAResource recovery scan timing (https://issues.jboss.org/browse/JBTM-842). In our case, somehow TM always think it's not the right timing to do the recovery.