2 Replies Latest reply on Mar 5, 2009 3:49 AM by ataylor

    non-serializable XAResource error from JBoss Messaging - Clu

    ajayazariah

      After 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:

      "[com.arjuna.ats.internal.jta.resources.arjunacore.norecoveryxa]
      Could not find new XAResource to use for recovering non-serializable XAResource"

      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:

      1) conf/jbossjta-properties.xml :

      Node 1:










      Node 2:










      2) deploy/hajndi-jms-ds.xml

      Node 1:


      RemoteProvider2

      org.jboss.jms.jndi.JNDIProviderAdapter

      <!-- The combined connection factory -->
      XAConnectionFactory
      <!-- The queue connection factory -->
      XAConnectionFactory
      <!-- The topic factory -->
      XAConnectionFactory

      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



      Node 2:


      RemoteProvider2
      ....

      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





      3) conf/oraclejta-properties.xml

      <transaction-service>





      </transaction-service>



      4) Oracle user "jboss" has been granted following permissions:
      select on DBA_PENDING_TRANSACTIONS,
      execute on SYS.DBMS_SYSTEM

        • 1. Re: non-serializable XAResource error from JBoss Messaging -
          ajayazariah

          configuration below:

          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="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_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
          


          • 2. Re: non-serializable XAResource error from JBoss Messaging -
            ataylor

            I'm not sure this has anything to do with JBoss Messaging. The guys on the transaction forum should be able to help