1 Reply Latest reply: Aug 4, 2011 5:54 PM by George Gastaldi RSS

jboss-atx: unknown Tx PropagationContext

George Gastaldi Master

I have two JBoss EAP 5.1 with JTS configured as told in jboss-eap-5.1\jboss-as\docs\examples\transactions.

 

I placed a WAR file on instance A and an EJB configured with a XA DataSource in instance B

 

I start a UserTransaction in my WAR file and then call the EJB. The transaction should propagate, but it is not. When the invocation finishes, the SQL inserts are done in Database. It should do it only when ut.commit() is called.

 

I am facing the following error in instance B:

 

 

ERROR [com.arjuna.ats.internal.jbossatx.jta.PropagationContextManager] (WorkerThread#0[10.12.14.134:52043]) jboss-atx: unknown Tx PropagationContext

 

What could be causing this ?

 

Regards,

 

George Gastaldi

  • 1. Re: jboss-atx: unknown Tx PropagationContext
    George Gastaldi Master

    Solved ! Forgot to change the file

    transaction-jboss-beans.xml
    

     

    to the following:

     

     

    <?xml version="1.0" encoding="UTF-8"?>
    <deployment xmlns="urn:jboss:bean-deployer:2.0">
    
    
        <bean name="TransactionManager" class="com.arjuna.ats.jbossatx.jts.TransactionManagerService">
            <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss:service=TransactionManager",exposedInterface=com.arjuna.ats.jbossatx.jts.TransactionManagerServiceMBean.class, registerDirectly=true)
            </annotation>
            <annotation>@org.jboss.managed.api.annotation.ManagementObject(name="TransactionManager",componentType=@org.jboss.managed.api.annotation.ManagementComponent(type = "MCBean", subtype = "JTA"),targetInterface=com.arjuna.ats.jbossatx.jts.TransactionManagerServiceMBean.class)</annotation>
    
    
            <property name="transactionTimeout">300</property>
            <property name="objectStoreDir">${jboss.server.data.dir}/tx-object-store</property>
            <property name="mbeanServer"><inject bean="JMXKernel" property="mbeanServer"/></property>
    
    
            <property name="transactionStatusManagerInetAddress">
                <value-factory bean="ServiceBindingManager"
                               method="getInetAddressBinding">
                    <parameter>TransactionManager</parameter>
                    <parameter>transactionStatusManager</parameter>
                </value-factory>
            </property>
            <property name="transactionStatusManagerPort">
                <value-factory bean="ServiceBindingManager"
                               method="getIntBinding" >
                    <parameter>TransactionManager</parameter>
                    <parameter>transactionStatusManager</parameter>
                </value-factory>
            </property>
    
    
            <property name="recoveryInetAddress">
                <value-factory bean="ServiceBindingManager"
                               method="getInetAddressBinding">
                    <parameter>TransactionManager</parameter>
                    <parameter>recoveryManager</parameter>
                </value-factory>
            </property>
            <property name="recoveryPort">
                <value-factory bean="ServiceBindingManager"
                               method="getIntBinding" >
                    <parameter>TransactionManager</parameter>
                    <parameter>recoveryManager</parameter>
                </value-factory>
            </property>
    
    
            <property name="socketProcessIdPort">0</property>
                        <start>
               <parameter><inject bean="jboss:service=CorbaORB" property="ORB"/></parameter>
            </start>
        </bean>
    
    
        <!-- Make javax.transaction.TransactionManager available for injection -->
        <bean name="RealTransactionManager">
          <constructor factoryMethod="getTransactionManager">
            <factory bean="TransactionManager"/>
          </constructor>
        </bean>
        
        <!-- Handles user transaction providers and listeners -->
        <bean name="UserTransactionRegistry" class="org.jboss.tm.usertx.UserTransactionRegistry">
          <!-- Register providers -->
          <incallback method="addProvider"/>
          <uncallback method="removeProvider"/>
          <!-- Register listeners -->
          <incallback method="addListener"/>
          <uncallback method="removeListener"/>
        </bean>
    
    
        <!-- The provider for default in process UserTransactions -->
        <bean name="DefaultUserTransactionprovider" class="org.jboss.tm.usertx.client.ServerVMClientUserTransaction">
           <constructor factoryClass="org.jboss.tm.usertx.client.ServerVMClientUserTransaction" factoryMethod="getSingleton"/>
           <demand>TransactionManager</demand>
        </bean>
    
    
    </deployment>