org.jboss.mq
Class SpyXAResource

java.lang.Object
  extended byorg.jboss.mq.SpyXAResource
All Implemented Interfaces:
XAResource (src)

public class SpyXAResource
extends java.lang.Object
implements XAResource (src)

This class implements the XAResource interface for used with an XASession.


Field Summary
 
Fields inherited from interface javax.transaction.xa.XAResource (src)
TMENDRSCAN, TMFAIL, TMJOIN, TMNOFLAGS, TMONEPHASE, TMRESUME, TMSTARTRSCAN, TMSUCCESS, TMSUSPEND, XA_OK, XA_RDONLY
 
Method Summary
 void commit(Xid (src)  xid, boolean onePhase)
          Commit the work done on this resource in the given transaction.
 void end(Xid (src)  xid, int flags)
          Called to disassociate the resource from a transaction.
 void forget(Xid (src)  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 (src)  arg1)
          Tells the caller if this resource has the same resource manager as the argument resource.
 int prepare(Xid (src)  xid)
          Prepare to commit the work done on this resource in the given transaction.
 Xid (src) [] recover(int arg1)
          Return a list of transactions that are in a prepared or heuristically state.
 void rollback(Xid (src)  xid)
          Roll back the work done on this resource in the given transaction.
 boolean setTransactionTimeout(int arg1)
          Set the transaction timeout value for this resource.
 void start(Xid (src)  xid, int flags)
          Called to associate the resource with a transaction.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Method Detail

setTransactionTimeout

public boolean setTransactionTimeout(int arg1)
                              throws XAException (src) 
Description copied from interface: XAResource (src)
Set the transaction timeout value for this resource. If the 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.

Specified by:
setTransactionTimeout in interface XAResource (src)
Parameters:
arg1 - The timeout value, in seconds.
Returns:
True if the timeout value could be set, otherwise false.
Throws:
XAException (src) - If an error occurred.

getTransactionTimeout

public int getTransactionTimeout()
                          throws XAException (src) 
Description copied from interface: XAResource (src)
Get the current transaction timeout value for this resource.

Specified by:
getTransactionTimeout in interface XAResource (src)
Returns:
The current timeout value, in seconds.
Throws:
XAException (src) - If an error occurred.

isSameRM

public boolean isSameRM(XAResource (src)  arg1)
                 throws XAException (src) 
Description copied from interface: XAResource (src)
Tells the caller if this resource has the same resource manager as the argument resource. The transaction manager needs this method to be able to decide if the start method should be given the XAResource.TMJOIN flag.

Specified by:
isSameRM in interface XAResource (src)
Throws:
XAException (src) - If an error occurred.

commit

public void commit(Xid (src)  xid,
                   boolean onePhase)
            throws XAException (src) 
Description copied from interface: XAResource (src)
Commit the work done on this resource in the given transaction. If the 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.

Specified by:
commit in interface XAResource (src)
Parameters:
xid - The id of the transaction to commit work for.
onePhase - If true, the transaction manager is using one-phase optimization.
Throws:
XAException (src) - If an error occurred.

end

public void end(Xid (src)  xid,
                int flags)
         throws XAException (src) 
Description copied from interface: XAResource (src)
Called to disassociate the resource from a transaction. If the flags argument is 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.

Specified by:
end in interface XAResource (src)
Parameters:
xid - The id of the transaction to disassociate from.
flags - Must be either XAResource.TMSUCCESS, XAResource.TMFAIL or XAResource.TMSUSPEND.
Throws:
XAException (src) - If an error occurred.

forget

public void forget(Xid (src)  xid)
            throws XAException (src) 
Description copied from interface: XAResource (src)
Tells the resource manager to forget about a heuristic decision.

Specified by:
forget in interface XAResource (src)
Parameters:
xid - The id of the transaction that was ended with a heuristic decision.
Throws:
XAException (src) - If an error occurred.

prepare

public int prepare(Xid (src)  xid)
            throws XAException (src) 
Description copied from interface: XAResource (src)
Prepare to commit the work done on this resource in the given transaction. This method cannot return a status indicating that the transaction should be rolled back. If the resource wants the transaction to be rolled back, it should throw an XAException at the caller.

Specified by:
prepare in interface XAResource (src)
Parameters:
xid - The id of the transaction to prepare to commit work for.
Returns:
Either XAResource.XA_OK or XAResource.XA_RDONLY.
Throws:
XAException (src) - If an error occurred.

recover

public Xid (src) [] recover(int arg1)
              throws XAException (src) 
Description copied from interface: XAResource (src)
Return a list of transactions that are in a prepared or heuristically state. This method looks not only at the resource it is invoked on, but also on all other resources managed by the same resource manager. It is intended to be used by the application server when recovering after a server crash.

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.

Specified by:
recover in interface XAResource (src)
Parameters:
arg1 - Must be either XAResource.TMNOFLAGS, XAResource.TMSTARTRSCAN, XAResource.TMENDRSCAN or TMSTARTRSCAN|TMENDRSCAN.
Returns:
An array of zero or more transaction ids.
Throws:
XAException (src) - If an error occurred.

rollback

public void rollback(Xid (src)  xid)
              throws XAException (src) 
Description copied from interface: XAResource (src)
Roll back the work done on this resource in the given transaction.

Specified by:
rollback in interface XAResource (src)
Parameters:
xid - The id of the transaction to commit work for.
Throws:
XAException (src) - If an error occurred.

start

public void start(Xid (src)  xid,
                  int flags)
           throws XAException (src) 
Description copied from interface: XAResource (src)
Called to associate the resource with a transaction. If the flags argument is XAResource.TMNOFLAGS, the transaction must not previously have been seen by this resource manager, or an XAException (src) 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).

Specified by:
start in interface XAResource (src)
Parameters:
xid - The id of the transaction to associate with.
flags - Must be either XAResource.TMNOFLAGS, XAResource.TMJOIN or XAResource.TMRESUME.
Throws:
XAException (src) - If an error occurred.

toString

public java.lang.String toString()