1 Reply Latest reply on Nov 1, 2012 6:01 AM by mmusgrov

    Distributed transaction support with external third-party ORBs

    marco.mendes

      The JBOSS EAP 6 development guide states that its JTS support is limited to distributed JTA transactions.

       

      The implementation of JTS included in JBoss Enterprise Application Platform supports distributed JTA transactions. The difference between distributed JTA transactions and fully-compliant JTS transactions is interoperability with external third-party ORBs. This feature is unsupported with JBoss Enterprise Application Platform 6. Supported configurations distribute transactions across multiple JBoss Enterprise Application Platform containers only., section 9.2

       

       

      However, the JBOSS TM 4.17 documentation states:

       

      JBoss Transactions is a 100% Java implementation of a distributed transaction management system based on the Sun Microsystems J2EE Java Transaction Service (JTS) standard. Our implementation of the JTS utilizes the Object Management Group's (OMG) Object Transaction Service (OTS) model for transaction interoperability as recommended in the J2EE and EJB standards and leads the market in providing many advanced features such as fully distributed transactions and ORB portability with POA support.

       

      J2EE recommends third-party ORB interoperability, AFAIK.

       

      Can I use JBOSS 7.1 in a scenario where the transaction is initiated by another ORB (e.g. IBM WAS 8) using JTS specification?

       

      Thanks in advance

      Marco Mendes

        • 1. Re: Distributed transaction support with external third-party ORBs
          mmusgrov

          Although the transaction manager is fully JTS compliant we do not support EJB transaction propagation to other vendors application servers. But we do interoperate with ourselves. I believe the reason for this is historical, when we first bundled the JTS implementation into the app server the GIOP wire encoding of the transaction propagagation context was not fully standardised. But we did need to interoperate with ourselves so we picked a private encoding - in a perfect world we would simply need to change the encoding id to achieve what you want but then we would no longer be able to interoperate with earlier versions of the AS.

           

          But do note that the EJB spec says it is optional: "The EJB architecture does not require the EJB container to support the JTS interfaces" and we satisfy the requirements in the EJB spec for implementations that choose not to support transaction propagation between servers.