Recovery: Could not find new XAResource to use for recoverin
ajayazariah Mar 5, 2009 5:22 AMAfter killing (-9) one node, the other node picks up and processes the messages.
After that when I restart the fist node, I get the following on second pass of the recovery manager:
WARN [com.arjuna.ats.jta.logging.loggerI18N] (Thread-6) [com.arjuna.ats.internal.jta.resources.arjunacore.norecoveryxa] Could not find new XAResource to use for recovering non-serializable XAResource < 131075, 28, 26, 7-aecd416:85c9:49ae79b7:1d7eaecd416:85c9:49ae79b7:1d9d >
I have done the configuration according to http://www.jboss.org/community/docs/DOC-13171 , but that does not seem to fix it.
Could someone point out the error in the configuration below:
( I get the same problem with and without the recovery entry for RemoteProvider2 )
1) conf/jbossjta-properties.xml : Node 1: <!-- (Must be unique across all Arjuna instances.) --> <property name="com.arjuna.ats.arjuna.xa.nodeIdentifier" value="1"/> <!-- Configure which transactions must be recovered. Must match nodeIdentifier --> <property name="com.arjuna.ats.jta.xaRecoveryNode" value="1"/> <!-- configure XA recovery for JBoss Messaging --> <property name="com.arjuna.ats.jta.recovery.XAResourceRecovery.JBMESSAGING1" value="org.jboss.jms.server.recovery.MessagingXAResourceRecovery;java:/DefaultJMSProvider"/> <property name="com.arjuna.ats.jta.recovery.XAResourceRecovery.JBMESSAGING2" value="org.jboss.jms.server.recovery.MessagingXAResourceRecovery;java:/RemoteProvider2"/> <!-- specifying XA recovery for Oracle --> <property name="com.arjuna.ats.jta.recovery.XAResourceRecovery.Oracle" value="com.arjuna.ats.internal.jdbc.recovery.OracleXARecovery;oraclejta-properties.xml"/> Node 2: <!-- (Must be unique across all Arjuna instances.) --> <property name="com.arjuna.ats.arjuna.xa.nodeIdentifier" value="2"/> <!-- Configure which transactions must be recovered. Must match nodeIdentifier --> <property name="com.arjuna.ats.jta.xaRecoveryNode" value="2"/> <!-- configure XA recovery for JBoss Messaging --> <property name="com.arjuna.ats.jta.recovery.XAResourceRecovery.JBMESSAGING1" value="org.jboss.jms.server.recovery.MessagingXAResourceRecovery;java:/DefaultJMSProvider"/> <property name="com.arjuna.ats.jta.recovery.XAResourceRecovery.JBMESSAGING2" value="org.jboss.jms.server.recovery.MessagingXAResourceRecovery;java:/RemoteProvider2"/> <!-- specifying XA recovery for Oracle --> <property name="com.arjuna.ats.jta.recovery.XAResourceRecovery.Oracle" value="com.arjuna.ats.internal.jdbc.recovery.OracleXARecovery;oraclejta-properties.xml"/> 2) deploy/hajndi-jms-ds.xml Node 1: <mbean code="org.jboss.jms.jndi.JMSProviderLoader" name="jboss.jms:service=JMSProviderLoader,name=RemoteProvider2"> <attribute name="ProviderName">RemoteProvider2</attribute> <attribute name="ProviderAdapterClass"> org.jboss.jms.jndi.JNDIProviderAdapter </attribute> <!-- The combined connection factory --> <attribute name="FactoryRef">XAConnectionFactory</attribute> <!-- The queue connection factory --> <attribute name="QueueFactoryRef">XAConnectionFactory</attribute> <!-- The topic factory --> <attribute name="TopicFactoryRef">XAConnectionFactory</attribute> <attribute name="Properties"> java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces java.naming.provider.url=node_2_hostname:1099 </attribute> </mbean> Node 2: <mbean code="org.jboss.jms.jndi.JMSProviderLoader" name="jboss.jms:service=JMSProviderLoader,name=RemoteProvider2"> <attribute name="ProviderName">RemoteProvider2</attribute> ... <attribute name="Properties"> java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces java.naming.provider.url=node_1_hostname:1099 </attribute> </mbean> 3) conf/oraclejta-properties.xml <transaction-service> <properties name="jdbc" type="system"> <property name="DatabaseURL" value="jdbc:oracle:thin:@dbhost:25000:sid"/> <property name="UserName" value="jboss"/> <property name="Password" value="jboss"/> </properties> </transaction-service> 4) Oracle user "jboss" has been granted following permissions: select on DBA_PENDING_TRANSACTIONS, execute on SYS.DBMS_SYSTEM