1 2 Previous Next 21 Replies Latest reply on Feb 7, 2008 2:56 PM by wanttransaction Go to original post
      • 15. Re: Transaction Recovery using two EJBs on two different mac
        jhalliday

        I did: The JTS is broken on 4.2. However, you don't need all the functionality and therefore may be able to use it in such as way as to avoid the bits that are known not to work. That just leaves us with the bits that may or may not work.

        I've successfully run certain scenarios involving distributed tx on EJB calls using JTS on 4.2. On the other hand, I'm aware that e.g. crash recovery won't work for AS xa-datasources out of the box. Nor will client side transaction demarcation using the app server's UserTransaction proxy mechanism. In short, it depends exactly what you are trying to do. This is why we don't support it at present: it's just too hard to define what will or will not work.

        • 16. Re: Transaction Recovery using two EJBs on two different mac
          yuvalry

          Thanks for the response.

          In my first message I wrote what I am trying to do.

          And I will repeat again because it's important for me to get it working.

          I am using JBoss 4.2.2GA and Oracle 10G DB.

          I am trying to call from an EJB deployed on machine A an EJB deployed on machine B and then rollback the transaction from machine A (by calling the setRollbackOnly method).

          Both EJBs are CMT and marked as "Required".
          I am using the XA DS for Oracle.
          The EJB logic inserts something in DB.

          Please refer to this scenario.


          Thanks,
          Yuval

          • 17. Re: Transaction Recovery using two EJBs on two different mac
            jhalliday

            > And I will repeat again because it's important for me to get it working.

            Just out of curiosity, why is that? You are not really planning to patch this thing up with duct tape and put it into production are you?

            • 18. Re: Transaction Recovery using two EJBs on two different mac
              yuvalry

              Well, looking at your response I seriously have my doubts.

              According to JBossTS documentation every is working. But after some testing and talking to you I wonder if anything is working there.

              To make my system work I need to understand exactly what is working and what is not, what is supporter and what is not. That's why all the questions.

              I don't intend to duct tape anything. I will read your answer, test my system, and according to that decide what should be done.


              Thanks,
              Yuval

              • 19. Re: Transaction Recovery using two EJBs on two different mac
                jhalliday

                > According to JBossTS documentation every is working.

                Hmm, is that the same documentation that says of the JTS "It's not suitable for use with JBossAS 4.2.x " (http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossTransactionsVersionGuide)

                > To make my system work I need to understand exactly what is working and what is not

                Let me know when you find out, I'd be interested too. If, in the course of finding out, you happen to write a comprehensive test suite for distributed transactions using JBossAS+JTS, we have a few job openings that may interest you...

                > what is supported and what is not.

                The JTS is not currently supported on EAP 4.2 or EAP 4.3, although I know of several customers who which it were. The fact that we are effectively turning down subscription revenue from prospects who need distributed tx right now rather than in the EAP 5.0 timeframe is probably something you ignore at your own risk.

                • 20. Re: Transaction Recovery using two EJBs on two different mac
                  wanttransaction

                  To yuvalry:

                  Are you running your JBossAS instances with "-c all" command line switch (all configuration)? If you did exactly follow the install instructions that come along with JBossTS 4.2.2GA and you run your JBossAS without this switch you are not using JBossTS JTS.

                  If you follow the install instructions the JTS TransactionManager is only used in the all configuration. In the default configuration the JTA TransactionManager is used. When you run JBossAS without "-c all", then the default configuration is used.

                  This may be the reason why you don't get any exceptions, you are using JRMP for remote calls and still rolling back transactions doesn't work. Just a guess...

                  I tried it again with JBossAS 4.2.2GA and JBossTS 4.2.2GA, same exception as above when I run JBossAS with "-c all". When I run it in the default configuration everything is fine of course, the only issue is that distributed transactions don't work because the JTA TransactionManager is used... :/

                  So, here is what the installation instructions of JBossTS 4.2.2GA say:

                  Installing JBossJTS into JBoss 4.0.3SP1, 4.0.4GA and 4.0.5GA
                  ------------------------------------------------------------
                  
                  The installation of JBossJTS into JBoss AS is currently a manual process.
                  We hope to release an installer in the near future that will automate this
                  process.
                  
                  The following steps are required
                  
                   - download the tar or zip version of the application server
                   - extract the distribution into an installation directory
                  
                   - copy the following jars from the JBossJTS installation into the
                   server/XXX/lib directory of the application server installation
                   - lib/jbossjts.jar
                   - lib/jbossjts-jacorb.jar
                   - lib/jbossjts-integration.jar
                   - lib/ext/jbossts-common.jar
                   - copy the following configuration file from the JBossJTS installation into
                   the server/XXX/conf directory of the application server installation
                   - etc/jbossjts-properties.xml
                   - edit the server/default/conf/jbossjts-properties.xml file and remove the
                   recovery extension property containing the value
                   "com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule"
                   - edit the server/all/conf/jbossjts-properties.xml file and remove the
                   recovery extension property containing the value
                   "com.arjuna.ats.internal.jta.recovery.jts.XARecoveryModule"
                  
                   - Edit the server/all/conf/jboss-service.xml file and replace the
                   jboss:service=TransactionManager mbean declaration with the following
                  
                   <mbean code="com.arjuna.ats.jbossatx.jts.TransactionManagerService"
                   name="jboss:service=TransactionManager">
                   <depends>jboss:service=CorbaORB</depends>
                   <attribute name="TransactionTimeout">300</attribute>
                   </mbean>
                  
                   - Edit the server/default/conf/jboss-service.xml file and replace the
                   jboss:service=TransactionManager mbean declaration with the following
                  
                   <mbean code="com.arjuna.ats.jbossatx.jta.TransactionManagerService"
                   name="jboss:service=TransactionManager">
                   <attribute name="TransactionTimeout">300</attribute>
                   </mbean>
                  
                   - Edit the server/all/conf/jacorb.properies as follows.
                   - change the jacorb.poa.thread_pool_max property to 32
                  
                  org.omg.PortableInterceptor.ORBInitializerClass.com.arjuna.ats.jts.orbspecific.jacorb.interceptors.interposition.InterpositionORBInitializerImpl=com.arjuna.ats.jts.orbspecific.jacorb.interceptors.interposition.InterpositionORBInitializerImpl
                  
                   - Edit the server/all/deploy/iiop-service.xml and modify the
                   PortableInterceptorInitializers attribute as follows.
                   - remove the following lines
                   <!-- comment out to disable null transaction propagation over IIOP -->
                   <initializer>org.jboss.tm.iiop.TxServerClientInterceptorInitializer</initializer>
                   <!-- comment out to disable transaction demarcation over IIOP -->
                   <initializer>org.jboss.tm.iiop.TxServerInterceptorInitializer</initializer>
                   - add the following lines
                   <!-- JBoss TS interceptor -->
                   <initializer>com.arjuna.ats.jts.orbspecific.jacorb.interceptors.interposition.InterpositionORBInitializerImpl</initializer>
                  
                  Replace jacorb.jar in client and server/all/lib with the jacorb.jar located in the jacorb directory.
                  
                  For each deployment of JacORB, you will need to ensure that the jacorb.implname in the jacorb.properties
                  file is unique.
                  
                  Application Server Library Modifications
                  ----------------------------------------
                  
                  The JBoss 4.0.3SP1 and 4.0.4GA application servers require some modified
                  librarires before JBossJTA can be used as a replacement. These are detailed
                  in the appropriate subdirectory of the jboss directory within this installation.
                  
                  No modifications are required if you are running JBoss 4.0.5GA or a cumulative
                  patch for JBoss 4.0.4GA.
                  
                  The application server will now be configured to use the JBossJTS transaction
                  manager instead of the JBoss Transaction Manager.
                  
                  Web Services Transactions
                  -------------------------
                  
                  // omitted
                  
                  




                  • 21. Re: Transaction Recovery using two EJBs on two different mac
                    wanttransaction

                    To jhalliday:

                    Can you give me a hint how I can get rid of this start-up exception (InstanceAlreadyExistsException: com.arjuna.ats.properties:module=jta already registered) I posted above?

                    Cheers

                    1 2 Previous Next