Package jakarta.resource.spi
Interface XATerminator
public interface XATerminator
The XATerminator interface is used for transaction completion and crash recovery flows.
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Commits the global transaction specified by xid.void
Tells the resource manager to forget about a heuristically completed transaction branch.int
Ask the resource manager to prepare for a transaction commit of the transaction specified in xid.Xid[]
recover
(int flag) Obtains a list of prepared transaction branches from a resource manager.void
Informs the resource manager to roll back work done on behalf of a transaction branch.
-
Method Details
-
commit
Commits the global transaction specified by xid.- Parameters:
xid
- A global transaction identifieronePhase
- If true, the resource manager should use a one-phase commit protocol to commit the work done on behalf of xid.- Throws:
XAException
- An error has occurred. Possible XAExceptions are XA_HEURHAZ, XA_HEURCOM, XA_HEURRB, XA_HEURMIX, XAER_RMERR, XAER_RMFAIL, XAER_NOTA, XAER_INVAL, or XAER_PROTO.If the resource manager did not commit the transaction and the parameter onePhase is set to true, the resource manager may throw one of the XA_RB* exceptions. Upon return, the resource manager has rolled back the branch's work and has released all held resources.
-
forget
Tells the resource manager to forget about a heuristically completed transaction branch.- Parameters:
xid
- A global transaction identifier.- Throws:
XAException
- An error has occurred. Possible exception values are XAER_RMERR, XAER_RMFAIL, XAER_NOTA, XAER_INVAL, or XAER_PROTO.
-
prepare
Ask the resource manager to prepare for a transaction commit of the transaction specified in xid.- Parameters:
xid
- A global transaction identifier.- Returns:
- A value indicating the resource manager's vote on the
outcome of the transaction. The possible values are: XA_RDONLY
or XA_OK. These constants are defined in
javax.transaction.xa.XAResource
interface. If the resource manager wants to roll back the transaction, it should do so by raising an appropriate XAException in the prepare method. - Throws:
XAException
- An error has occurred. Possible exception values are: XA_RB*, XAER_RMERR, XAER_RMFAIL, XAER_NOTA, XAER_INVAL, or XAER_PROTO.
-
recover
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.- Parameters:
flag
- One of TMSTARTRSCAN, TMENDRSCAN, TMNOFLAGS. TMNOFLAGS must be used when no other flags are set in the parameter. These constants are defined injavax.transaction.xa.XAResource
interface.- 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.
- Throws:
XAException
- An error has occurred. Possible values are XAER_RMERR, XAER_RMFAIL, XAER_INVAL, and XAER_PROTO.
-
rollback
Informs the resource manager to roll back work done on behalf of a transaction branch.- Parameters:
xid
- A global transaction identifier.- Throws:
XAException
- An error has occurred. Possible XAExceptions are XA_HEURHAZ, XA_HEURCOM, XA_HEURRB, XA_HEURMIX, XAER_RMERR, XAER_RMFAIL, XAER_NOTA, XAER_INVAL, or XAER_PROTO.If the transaction branch is already marked rollback-only the resource manager may throw one of the XA_RB* exceptions. Upon return, the resource manager has rolled back the branch's work and has released all held resources.
-