Registering an XAResourceRecovery class
paul.robinson Jun 28, 2006 5:44 AMHello,
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.