public class XAResourceWrapper
extends java.lang.Object
implements javax.transaction.xa.XAResource
XAResource that delegates every operation to the target driver's
XAResource while tracking the XA-active state of the wrapper's connection.
The XA-active flag is maintained around the transaction branch, not per method:
start(javax.transaction.xa.Xid, int) marks the connection XA-active; prepare(javax.transaction.xa.Xid) does not clear it (the
branch is still live between prepare and commit/rollback); the terminal commit(javax.transaction.xa.Xid, boolean) and
rollback(javax.transaction.xa.Xid) clear it. This flag is what causes voluntary connection switches to be skipped
and failover to fail fast for the duration of the branch.
This wrapper is a plain delegator and is not routed through the plugin pipeline (XA control calls do not need per-call plugin interception).
| Constructor and Description |
|---|
XAResourceWrapper(javax.transaction.xa.XAResource target,
XaTransactionStateCallback stateCallback) |
| Modifier and Type | Method and Description |
|---|---|
void |
commit(javax.transaction.xa.Xid xid,
boolean onePhase) |
void |
end(javax.transaction.xa.Xid xid,
int flags) |
void |
forget(javax.transaction.xa.Xid xid) |
int |
getTransactionTimeout() |
boolean |
isSameRM(javax.transaction.xa.XAResource xares) |
int |
prepare(javax.transaction.xa.Xid xid) |
javax.transaction.xa.Xid[] |
recover(int flag) |
void |
rollback(javax.transaction.xa.Xid xid) |
boolean |
setTransactionTimeout(int seconds) |
void |
start(javax.transaction.xa.Xid xid,
int flags) |
public XAResourceWrapper(javax.transaction.xa.XAResource target,
XaTransactionStateCallback stateCallback)
public void start(javax.transaction.xa.Xid xid,
int flags)
throws javax.transaction.xa.XAException
start in interface javax.transaction.xa.XAResourcejavax.transaction.xa.XAExceptionpublic void end(javax.transaction.xa.Xid xid,
int flags)
throws javax.transaction.xa.XAException
end in interface javax.transaction.xa.XAResourcejavax.transaction.xa.XAExceptionpublic int prepare(javax.transaction.xa.Xid xid)
throws javax.transaction.xa.XAException
prepare in interface javax.transaction.xa.XAResourcejavax.transaction.xa.XAExceptionpublic void commit(javax.transaction.xa.Xid xid,
boolean onePhase)
throws javax.transaction.xa.XAException
commit in interface javax.transaction.xa.XAResourcejavax.transaction.xa.XAExceptionpublic void rollback(javax.transaction.xa.Xid xid)
throws javax.transaction.xa.XAException
rollback in interface javax.transaction.xa.XAResourcejavax.transaction.xa.XAExceptionpublic javax.transaction.xa.Xid[] recover(int flag)
throws javax.transaction.xa.XAException
recover in interface javax.transaction.xa.XAResourcejavax.transaction.xa.XAExceptionpublic void forget(javax.transaction.xa.Xid xid)
throws javax.transaction.xa.XAException
forget in interface javax.transaction.xa.XAResourcejavax.transaction.xa.XAExceptionpublic boolean isSameRM(javax.transaction.xa.XAResource xares)
throws javax.transaction.xa.XAException
isSameRM in interface javax.transaction.xa.XAResourcejavax.transaction.xa.XAExceptionpublic int getTransactionTimeout()
throws javax.transaction.xa.XAException
getTransactionTimeout in interface javax.transaction.xa.XAResourcejavax.transaction.xa.XAExceptionpublic boolean setTransactionTimeout(int seconds)
throws javax.transaction.xa.XAException
setTransactionTimeout in interface javax.transaction.xa.XAResourcejavax.transaction.xa.XAException