The XA interface defines the contract between a Resource Manager and a Transaction Manager in a distributed transaction processing (DTP) environment. A JDBC driver or a JMS provider implements this interface to support the association between a global transaction and a database or message service connection.
The XAResource interface can be supported by any transactional
resource that is intended to be used by application programs in an
environment where transactions are controlled by an external
transaction manager. An example of such a resource is a database
management system. An application may access data through multiple
database connections. Each database connection is enlisted with
the transaction manager as a transactional resource. The transaction
manager obtains an XAResource for each connection participating
in a global transaction. The transaction manager uses the
start method
to associate the global transaction with the resource, and it uses the
end method to disassociate the transaction from
the resource. The resource
manager is responsible for associating the global transaction to all
work performed on its data between the start and end method invocations.
At transaction commit time, the resource managers are informed by the transaction manager to prepare, commit, or rollback a transaction according to the two-phase commit protocol.
| Modifier and Type | Field and Description |
|---|---|
| public static final int | TMENDRSCAN
Ends a recovery scan. |
| public static final int | TMFAIL
Disassociates the caller and marks the transaction branch rollback-only. |
| public static final int | TMJOIN
Caller is joining existing transaction branch. |
| public static final int | TMNOFLAGS
Use TMNOFLAGS to indicate no flags value is selected. |
| public static final int | TMONEPHASE
Caller is using one-phase optimization. |
| public static final int | TMRESUME
Caller is resuming association with a suspended transaction branch. |
| public static final int | TMSTARTRSCAN
Starts a recovery scan. |
| public static final int | TMSUCCESS
Disassociates caller from a transaction branch. |
| public static final int | TMSUSPEND
Caller is suspending (not ending) its association with a transaction branch. |
| public static final int | XA_OK
The transaction work has been prepared normally. |
| public static final int | XA_RDONLY
The transaction branch has been read-only and has been committed. |
| Modifier and Type | Method and Description |
|---|---|
| public void | |
| public void | |
| public void | |
| public int | Returns: the transaction timeout value in seconds.Obtains the current transaction timeout value set for this XAResource instance. |
| public boolean | Returns: true if it's the same RM instance; otherwise false.An XAResource object whose resource manager instance
is to be compared with the resource manager instance of the
target object. xares)This method is called to determine if the resource manager instance represented by the target object is the same as the resource manager instance represented by the parameter xares. |
| public int | Returns: A value indicating the resource manager's vote on the outcome of the transaction. The possible values are: XA_RDONLY or XA_OK. If the resource manager wants to roll back the transaction, it should do so by raising an appropriate XAException in the prepare method.A global transaction identifier. xid)Ask the resource manager to prepare for a transaction commit of the transaction specified in xid. |
| public Xid[] | Returns: The resource manager returns zero or more XIDs of the transaction branches that are currently in a prepared or heuristically completed state. If an error occurs during the operation, the resource manager should throw the appropriate XAException.One of TMSTARTRSCAN, TMENDRSCAN, TMNOFLAGS. TMNOFLAGS
must be used when no other flags are set in the parameter. flag)Obtains a list of prepared transaction branches from a resource manager. |
| public void | |
| public boolean | Returns: true if the transaction timeout value is set successfully; otherwise false.The transaction timeout value in seconds. seconds)Sets the current transaction timeout value for this |
| public void |
| TMENDRSCAN | back to summary |
|---|---|
| public static final int TMENDRSCAN Ends a recovery scan. | |
| TMFAIL | back to summary |
|---|---|
| public static final int TMFAIL Disassociates the caller and marks the transaction branch rollback-only. | |
| TMJOIN | back to summary |
|---|---|
| public static final int TMJOIN Caller is joining existing transaction branch. | |
| TMNOFLAGS | back to summary |
|---|---|
| public static final int TMNOFLAGS Use TMNOFLAGS to indicate no flags value is selected. | |
| TMONEPHASE | back to summary |
|---|---|
| public static final int TMONEPHASE Caller is using one-phase optimization. | |
| TMRESUME | back to summary |
|---|---|
| public static final int TMRESUME Caller is resuming association with a suspended transaction branch. | |
| TMSTARTRSCAN | back to summary |
|---|---|
| public static final int TMSTARTRSCAN Starts a recovery scan. | |
| TMSUCCESS | back to summary |
|---|---|
| public static final int TMSUCCESS Disassociates caller from a transaction branch. | |
| TMSUSPEND | back to summary |
|---|---|
| public static final int TMSUSPEND Caller is suspending (not ending) its association with a transaction branch. | |
| XA_OK | back to summary |
|---|---|
| public static final int XA_OK The transaction work has been prepared normally. | |
| XA_RDONLY | back to summary |
|---|---|
| public static final int XA_RDONLY The transaction branch has been read-only and has been committed. | |
| commit | back to summary |
|---|---|
| public void commit(Xid xid, boolean onePhase) throws XAException Commits the global transaction specified by xid.
| |
| end | back to summary |
|---|---|
| public void end(Xid xid, int flags) throws XAException Ends the work performed on behalf of a transaction branch. The resource manager disassociates the XA resource from the transaction branch specified and lets the transaction complete. If TMSUSPEND is specified in the flags, the transaction branch
is temporarily suspended in an incomplete state. The transaction
context is in a suspended state and must be resumed via the
If TMFAIL is specified, the portion of work has failed. The resource manager may mark the transaction as rollback-only If TMSUCCESS is specified, the portion of work has completed successfully.
| |
| forget | back to summary |
|---|---|
| public void forget(Xid xid) throws XAException Tells the resource manager to forget about a heuristically completed transaction branch.
| |
| getTransactionTimeout | back to summary |
|---|---|
| public int getTransactionTimeout() throws XAException Obtains the current transaction timeout value set for this
XAResource instance. If
| |
| isSameRM | back to summary |
|---|---|
| public boolean isSameRM(XAResource xares) throws XAException This method is called to determine if the resource manager instance represented by the target object is the same as the resource manager instance represented by the parameter xares.
| |
| prepare | back to summary |
|---|---|
| public int prepare(Xid xid) throws XAException Ask the resource manager to prepare for a transaction commit of the transaction specified in xid.
| |
| recover | back to summary |
|---|---|
| public Xid[] recover(int flag) throws XAException Obtains a list of prepared transaction branches from a resource manager. The transaction manager calls this method during recovery to obtain the list of transaction branches that are currently in prepared or heuristically completed states.
| |
| rollback | back to summary |
|---|---|
| public void rollback(Xid xid) throws XAException Informs the resource manager to roll back work done on behalf of a transaction branch.
| |
| setTransactionTimeout | back to summary |
|---|---|
| public boolean setTransactionTimeout(int seconds) throws XAException Sets the current transaction timeout value for this
| |
| start | back to summary |
|---|---|
| public void start(Xid xid, int flags) throws XAException Starts work on behalf of a transaction branch specified in
| |