public interface XATerminator
The XATerminator interface is used for transaction completion and crash recovery flows.
Modifier and Type | Method and Description |
---|---|
void |
commit(javax.transaction.xa.Xid xid,
boolean onePhase)
Commits the global transaction specified by xid.
|
void |
forget(javax.transaction.xa.Xid xid)
Tells the resource manager to forget about a heuristically
completed transaction branch.
|
int |
prepare(javax.transaction.xa.Xid xid)
Ask the resource manager to prepare for a transaction commit
of the transaction specified in xid.
|
javax.transaction.xa.Xid[] |
recover(int flag)
Obtains a list of prepared transaction branches from a resource
manager.
|
void |
rollback(javax.transaction.xa.Xid xid)
Informs the resource manager to roll back work done on behalf
of a transaction branch.
|
void commit(javax.transaction.xa.Xid xid, boolean onePhase) throws javax.transaction.xa.XAException
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.javax.transaction.xa.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.
void forget(javax.transaction.xa.Xid xid) throws javax.transaction.xa.XAException
xid
- A global transaction identifier.javax.transaction.xa.XAException
- An error has occurred. Possible exception
values are XAER_RMERR, XAER_RMFAIL, XAER_NOTA, XAER_INVAL, or
XAER_PROTO.int prepare(javax.transaction.xa.Xid xid) throws javax.transaction.xa.XAException
xid
- A global transaction identifier. 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.javax.transaction.xa.XAException
- An error has occurred. Possible exception
values are: XA_RB*, XAER_RMERR, XAER_RMFAIL, XAER_NOTA, XAER_INVAL,
or XAER_PROTO.javax.transaction.xa.Xid[] recover(int flag) throws javax.transaction.xa.XAException
flag
- One of TMSTARTRSCAN, TMENDRSCAN, TMNOFLAGS. TMNOFLAGS
must be used when no other flags are set in the parameter. These
constants are defined in javax.transaction.xa.XAResource
interface.javax.transaction.xa.XAException
- An error has occurred. Possible values are
XAER_RMERR, XAER_RMFAIL, XAER_INVAL, and XAER_PROTO.void rollback(javax.transaction.xa.Xid xid) throws javax.transaction.xa.XAException
xid
- A global transaction identifier.javax.transaction.xa.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.