public class HornetQXAResourceWrapper extends Object implements XAResource, SessionFailureListener
TMENDRSCAN, TMFAIL, TMJOIN, TMNOFLAGS, TMONEPHASE, TMRESUME, TMSTARTRSCAN, TMSUCCESS, TMSUSPEND, XA_OK, XA_RDONLY
Constructor and Description |
---|
HornetQXAResourceWrapper(XARecoveryConfig... xaRecoveryConfigs) |
Modifier and Type | Method and Description |
---|---|
void |
beforeReconnect(HornetQException me)
Notifies that a connection has failed due to the specified exception.
|
protected XAException |
check(XAException e)
Check whether an XAException is fatal.
|
void |
close()
Close the connection
|
void |
commit(Xid xid,
boolean onePhase)
Commit the work done on this resource in the given transaction.
|
protected XAResource |
connect()
Connect to the server if not already done so
|
void |
connectionFailed(HornetQException me,
boolean failedOver)
Notifies that a connection has failed due to the specified exception.
|
void |
end(Xid xid,
int flags)
Called to disassociate the resource from a transaction.
|
protected void |
finalize() |
void |
forget(Xid xid)
Tells the resource manager to forget about a heuristic decision.
|
int |
getTransactionTimeout()
Get the current transaction timeout value for this resource.
|
boolean |
isSameRM(XAResource xaRes)
Tells the caller if this resource has the same resource manager
as the argument resource.
|
int |
prepare(Xid xid)
Prepare to commit the work done on this resource in the given
transaction.
|
Xid[] |
recover(int flag)
Return a list of transactions that are in a prepared or heuristically
state.
|
void |
rollback(Xid xid)
Roll back the work done on this resource in the given transaction.
|
boolean |
setTransactionTimeout(int seconds)
Set the transaction timeout value for this resource.
|
void |
start(Xid xid,
int flags)
Called to associate the resource with a transaction.
|
String |
toString() |
public HornetQXAResourceWrapper(XARecoveryConfig... xaRecoveryConfigs)
public Xid[] recover(int flag) throws XAException
XAResource
A recovery scan is done with one or more calls to this method.
At the first call, XAResource.TMSTARTRSCAN
must be in the
flag
argument to indicate that the scan should be started.
During the recovery scan, the resource manager maintains an internal
cursor that keeps track of the progress of the recovery scan.
To end the recovery scan, the XAResource.TMENDRSCAN
must be passed
in the flag
argument.
recover
in interface XAResource
flag
- Must be either XAResource.TMNOFLAGS
, XAResource.TMSTARTRSCAN
,
XAResource.TMENDRSCAN
or TMSTARTRSCAN|TMENDRSCAN
.XAException
- If an error occurred.public void commit(Xid xid, boolean onePhase) throws XAException
XAResource
onePhase
argument is true, one-phase
optimization is being used, and the prepare
method must not have been called for this transaction.
Otherwise, this is the second phase of the two-phase commit protocol.commit
in interface XAResource
xid
- The id of the transaction to commit work for.onePhase
- If true, the transaction manager is using one-phase
optimization.XAException
- If an error occurred.public void rollback(Xid xid) throws XAException
XAResource
rollback
in interface XAResource
xid
- The id of the transaction to commit work for.XAException
- If an error occurred.public void forget(Xid xid) throws XAException
XAResource
forget
in interface XAResource
xid
- The id of the transaction that was ended with a heuristic
decision.XAException
- If an error occurred.public boolean isSameRM(XAResource xaRes) throws XAException
XAResource
start
method should be given the
XAResource.TMJOIN
flag.isSameRM
in interface XAResource
XAException
- If an error occurred.public int prepare(Xid xid) throws XAException
XAResource
XAException
at the
caller.prepare
in interface XAResource
xid
- The id of the transaction to prepare to commit work for.XAResource.XA_OK
or XAResource.XA_RDONLY
.XAException
- If an error occurred.public void start(Xid xid, int flags) throws XAException
XAResource
XAResource.TMNOFLAGS
, the transaction must not
previously have been seen by this resource manager, or an
XAException
with error code XAER_DUPID will be thrown.
If the flags argument is XAResource.TMJOIN
, the resource will join a
transaction previously seen by tis resource manager.
If the flags argument is XAResource.TMRESUME
the resource will
resume the transaction association that was suspended with
end(TMSUSPEND).start
in interface XAResource
xid
- The id of the transaction to associate with.flags
- Must be either XAResource.TMNOFLAGS
, XAResource.TMJOIN
or XAResource.TMRESUME
.XAException
- If an error occurred.public void end(Xid xid, int flags) throws XAException
XAResource
XAResource.TMSUCCESS
, the portion of work
was done sucessfully.
If the flags argument is XAResource.TMFAIL
, the portion of work
failed. The resource manager may mark the transaction for
rollback only to avoid the transaction being committed.
If the flags argument is XAResource.TMSUSPEND
the resource will
temporarily suspend the transaction association. The transaction
must later be re-associated by giving the XAResource.TMRESUME
flag
to the start
method.end
in interface XAResource
xid
- The id of the transaction to disassociate from.flags
- Must be either XAResource.TMSUCCESS
, XAResource.TMFAIL
or XAResource.TMSUSPEND
.XAException
- If an error occurred.public int getTransactionTimeout() throws XAException
XAResource
getTransactionTimeout
in interface XAResource
XAException
- If an error occurred.public boolean setTransactionTimeout(int seconds) throws XAException
XAResource
seconds
argument is 0
, the
timeout value is set to the default timeout value of the resource
manager.
Not all resource managers support setting the timeout value.
If the resource manager does not support setting the timeout
value, it should return false.setTransactionTimeout
in interface XAResource
seconds
- The timeout value, in seconds.XAException
- If an error occurred.public void connectionFailed(HornetQException me, boolean failedOver)
FailureListener
connectionFailed
in interface FailureListener
me
- exception which has caused the connection to failpublic void beforeReconnect(HornetQException me)
SessionFailureListener
beforeReconnect
in interface SessionFailureListener
me
- exception which has caused the connection to failprotected XAResource connect() throws Exception
Exception
- for any problempublic void close()
protected XAException check(XAException e) throws XAException
e
- the xa exceptionXAException
- alwaysCopyright © 2018 JBoss by Red Hat. All rights reserved.