3.  XA Transactions

3.1. Using OpenJPA with XA Transactions

The X/Open Distributed Transaction Processing (X/Open DTP) model, designed by The Open Group (a vendor consortium), defines a standard communication architecture that provides the following:

The X/Open DTP XA standard defines the application programming interfaces that a resource manager uses to communicate with a transaction manager. The XA interfaces enable resource managers to join transactions, to perform two-phase commit, and to recover in-doubt transactions following a failure.

3.1.  Using OpenJPA with XA Transactions

OpenJPA supports XA-compliant transactions when used in a properly configured managed environment. The following components are required:

  • A managed environment that provides an XA compliant transaction manager. Examples of this are application servers such as WebLogic or JBoss.

  • Instances of a javax.sql.XADataSource for each of the DataSources that OpenJPA will use.

Given these components, setting up OpenJPA to participate in distributed transactions is a simple two-step process:

  1. Integrate OpenJPA with your application server's transaction manager, as detailed in Section 2, “ Integrating with the Transaction Manager ” above.

  2. Point OpenJPA at an enlisted XADataSource, and configure a second non-enlisted data source. See Section 2.1, “ Managed and XA DataSources ”.