Installing JBossJTS into JBoss 4.0.3SP1
---------------------------------------

The installation of JBossJTS into JBoss 4.0.3SP1 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 JBoss 4.0.3SP1
 - extract the distribution into an installation directory

 - copy the following jars from the JBossJTS installation into the
   server/XXX/lib directory of the JBoss 4.0.3 SP1 installation
   - lib/jbossjts.jar
   - lib/jbossjts-jacorb.jar
   - lib/jbossjts-integration.jar
   - lib/ext/jbossts-common.jar
   - jboss/jboss.jar
   - jboss/jboss-iiop.jar
   - jboss/jboss-hibernate.jar
 - copy the following jar from the JBossJTS installation into the
   server/XXX/deploy/jboss-aop.deployer directory of the JBoss 4.0.3 SP1
   installation
   - jboss/jboss-aspect-library.jar
 - copy the following configuration file from the JBossJTS installation into
   the server/XXX/conf directory of the JBoss 4.0.3 SP1 installation
   - etc/jbossjts-properties.xml
   - edit the properties file to remove either the arjunacore XARecoveryModule or the jts
   XARecoveryModule, depending upon whether you are using JTS or local JTA, respectively.
   
 - 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

 - 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/lib 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.

The application server will now be configured to use the JBossJTS transaction
manager instead of the JBoss Transaction Manager.

Note, the following issues exist with the trailmap shipped with JBossTS (http://www.jboss.org/index.html?module=bb&op=viewtopic&t=82879):

(i) it talks about ArjunaTS and the arjunats-properties.xml file. This was the old name for JBossTS. The
new properties file is the jbossjts-properties.xml.

(ii) when running the local JTS transactions part of the trailmap, you will need to start
the recovery manager: java com.arjuna.ats.arjuna.recovery.RecoveryManager -test

(iii) you will need a jacorb.properties file to run the distributed JTS tests.
