JBoss.orgCommunity Documentation

Chapter 4. Using JBossJTA in application servers

4.1. Configuration
4.2. Logging
4.3. The services
4.4. Ensuring transactional context is propagated to the server

JBoss Application Server is discussed here. Refer to the documentation for your application server for differences.

When JBossJTA runs embedded in JBoss Application Server, the transaction system is configured primarily through the transaction-jboss-beans.xml deployment descriptor, which overrides properties read from the default properties file embedded in the .jar file.


See the transaction-jboss-beans.xml file and the JBoss Application Server administration and configuration guide for further information.

To make JBossTS logging semantically consistent with JBoss Application Server, the TransactionManagerService modifies the level of some log messages, by overriding the value of the LoggingEnvironmentBean.loggingFactory property in the jbossts-properties.xml file. Therefore, the value of this property has no effect on the logging behavior when running embedded in JBoss Application Server. By forcing use of the log4j_releveler logger, the TransactionManagerService changes the level of all INFO level messages in the transaction code to DEBUG. Therefore, these messages do not appear in log files if the filter level is INFO. All other log messages behave as normal.

The TransactionManager bean provides transaction management services to other components in JBoss Application Server. There are two different version of this bean and they requires different configuration. Take care to select the transaction-jboss-beans.xml suitable for your needs (local JTA or JTS).

You can coordinate transactions from a coordinator which is not located within the JBoss server , such as when using transactions created by an external OTS server. To ensure the transaction context is propagated via JRMP invocations to the server, the transaction propagation context factory needs to be explicitly set for the JRMP invoker proxy. This is done as follows:

JRMPInvokerProxy.setTPCFactory( new com.arjuna.ats.internal.jbossatx.jts.PropagationContextManager() );