Main Page | See live article | Alphabetical index

Java Transaction API

The Java Transaction API is one of the J2EE APIs allowing distributed transactions to be done across multiple XA resources. It provides for:

Table of contents
1 X/Open XA architecture
2 JTA implementation of the X/Open XA Architecture
3 Examples
4 Additional Resources

X/Open XA architecture

In the X/Open XA architecture, a transaction manager or transaction processing monitor AKA TP monitor, coordinates the transactions across multiple resources such as a database. Each resource has its own manager. The resource manager typically has its own API for manipulating the resource, for example the JDBC API used by relational databases. In addition, the resource manager allows a TP monitor to coordinate a distributed transaction between it and other resource managers. Finally, there is the application which communicates with the TP monitor to begin, commit or rollback the transactions. The application also communicates with the individual resources using their own API to modify the resource.

JTA implementation of the X/Open XA Architecture

The JTA API is modelled on the X/Open XA architecure, but it defines two different APIs for demarcating transaction bounderies. It distinguishes between an application server such as an EJB server and an application component. It provides a class, javax.transaction.TransactionManager, that is used by the application server itself to begin, commit and rollback the transactions. It provides a different class, the javax.transaction.UserTransaction, that is used by general client code such as a servlet or an EJB to manage the transactions. Below is a diagram showing the JTA classes used for the X/Open XA interfaces:

The JTA architecture requires that each resource manager must implement the javax.transaction.xa.XAResource interface in order to be managed by the TP monitor. As stated previously, each resource will have its own specific API, for instance:


Transaction Management in a Simple Application

Transaction Management in an EJB

Additional Resources