6 Replies Latest reply on Jun 29, 2006 3:30 PM by Mark Little

    Registering an XAResourceRecovery class

    Paul Robinson Master

      Hello,

      I have an XAResource that is not serializable. I therefore need to implement an XAResourceRecovery class for the RecoveryManager to interrogate in order to obtain the prepared resources.

      I have placed the following property in the jbossjts-properties.xml:

      <property name="com.arjuna.ats.jta.recovery.XAResourceRecoveryFaulty" value="com.arjuna.xa.resources.FaultyXAResourceRecovery"/>


      I have tried placing it in the JTS, JTA and Arjuna sections of the properties file as I wasn't sure exctly where it should go. The documentation states that it should go "in the properties file". I assume I have the right properties file?

      I then run a transaction with 3 participants (all on the same JBoss instance). The second participant crashes when commit is called on it. I then reboot JBoss and my XAResourceRecovery class is not called. I would expect it to be called during the recovery cycle.

      Here is the output of the first recovery cycle that occurs when JBoss boots:

      10:20:56,645 INFO [arjLogger] Periodic recovery - second pass <Wed, 28 Jun 2006 10:20:56>
      10:20:56,645 INFO [arjLogger] AtomicActionRecoveryModule: Second pass
      10:20:56,646 INFO [txojLoggerI18N] [com.arjuna.ats.internal.txoj.recovery.TORecoveryModule_6] - TORecoveryModule - seco
      nd pass
      10:20:56,647 INFO [loggerI18N] [com.arjuna.ats.internal.jts.recovery.transactions.TopLevelTransactionRecoveryModule_4]
      [com.arjuna.ats.internal.jts.recovery.transactions.TopLevelTransactionRecoveryModule_4] - TopLevelTransactionRecoveryMod
      ule Second Pass
      10:20:56,648 INFO [logger] TransactionRecoveryModule.periodicWorkSecondPass()
      10:20:56,649 INFO [loggerI18N] [com.arjuna.ats.internal.jts.recovery.transactions.TransactionRecoveryModule_6] [com.arj
      una.ats.internal.jts.recovery.transactions.TransactionRecoveryModule_6] - Transaction -3f57f07c:84af:44a244b6:5b still i
      n ActionStore
      10:20:56,828 WARN [poa] POA RootPOA rid: 8 opname: _is_a _invoke: object id not previously generated!
      10:20:56,876 WARN [poa] POA RootPOA rid: 10 opname: _is_a _invoke: object id not previously generated!
      10:20:56,908 WARN [poa] POA RootPOA rid: 12 opname: _is_a _invoke: object id not previously generated!
      10:20:56,952 INFO [loggerI18N] [com.arjuna.ats.internal.jts.recovery.transactions.TransactionRecoveryModule_6] [com.arj
      una.ats.internal.jts.recovery.transactions.TransactionRecoveryModule_6] - Transaction -3f57f07c:80bf:44a2496a:28 still i
      n ActionStore
      10:20:56,970 WARN [poa] POA RootPOA rid: 16 opname: _is_a _invoke: object id not previously generated!
      10:20:56,973 WARN [poa] POA RootPOA rid: 14 opname: getCurrentStatus _invoke: object id not previously generated!
      10:20:57,006 INFO [loggerI18N] [com.arjuna.ats.internal.jts.recovery.transactions.ServerTransactionRecoveryModule_4] [c
      om.arjuna.ats.internal.jts.recovery.transactions.ServerTransactionRecoveryModule_4] - ServerTransactionRecoveryModule -
      Second Pass
      10:20:57,007 INFO [logger] JTS XARecoveryModule - second pass


      I am guessing that I have not put the property in the right place. However, I can't seem to find any more specific information on where this property should go.

      Any suggestions?

      Thanks,

      Paul.