org.ow2.jonas.resource.internal.cm.jta
Class LocalXAResource

java.lang.Object
  extended by org.ow2.jonas.resource.internal.cm.jta.LocalXAResource
All Implemented Interfaces:
XAResource

public final class LocalXAResource
extends Object
implements XAResource

A LocalXAWrapper that intercepts the XA calls for an RAR that only supports LocalTransactions and translates them to the appropriate Local Transaction methods.

Author:
Eric.Hardesty@bull.com

Field Summary
protected  boolean isInTransaction
          The boolean to determine if in a current transaction
protected  LocalTransaction localTrans
          The LocalTransaction object to make the begin(), commit(), and rollback() calls.
 
Fields inherited from interface javax.transaction.xa.XAResource
TMENDRSCAN, TMFAIL, TMJOIN, TMNOFLAGS, TMONEPHASE, TMRESUME, TMSTARTRSCAN, TMSUCCESS, TMSUSPEND, XA_OK, XA_RDONLY
 
Constructor Summary
LocalXAResource(LocalTransaction _localTrans, org.objectweb.util.monolog.api.Logger _logger)
           
 
Method Summary
 void commit(Xid xid, boolean flag)
          Commit the localTransaction, the params aren't used for a local transaction.
 void end(Xid xid, int i)
          No method to map for a local transaction.
 void forget(Xid xid)
          No method to map for a local transaction.
 int getTransactionTimeout()
          No method to map for a local transaction, just return no timeout.
 boolean isSameRM(XAResource xaresource)
          Determine if the wrapper instance is the same as the wrapper instance being passed in
 int prepare(Xid xid)
          No method to map for a local transaction, just return XA_OK.
 Xid[] recover(int i)
          No method to map for a local transaction.
 void rollback(Xid xid)
          Rollback the localTransaction, the param isn't used for a local transaction.
 boolean setTransactionTimeout(int i)
          No method to map for a local transaction, just return no timeout.
 void start(Xid xid, int i)
          Only start a local transaction if a new transaction is being attempted, just return if joining or resuming.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

isInTransaction

protected boolean isInTransaction
The boolean to determine if in a current transaction


localTrans

protected LocalTransaction localTrans
The LocalTransaction object to make the begin(), commit(), and rollback() calls.

Constructor Detail

LocalXAResource

public LocalXAResource(LocalTransaction _localTrans,
                       org.objectweb.util.monolog.api.Logger _logger)
Method Detail

commit

public void commit(Xid xid,
                   boolean flag)
            throws XAException
Commit the localTransaction, the params aren't used for a local transaction.

Specified by:
commit in interface XAResource
Parameters:
xid - transaction xid
flag - for interface compliance
Throws:
XAException - Exception trying to commit local transaction

end

public void end(Xid xid,
                int i)
         throws XAException
No method to map for a local transaction.

Specified by:
end in interface XAResource
Parameters:
xid - transaction xid
Throws:
XAException

forget

public void forget(Xid xid)
            throws XAException
No method to map for a local transaction.

Specified by:
forget in interface XAResource
Parameters:
xid - transaction xid
Throws:
XAException

getTransactionTimeout

public int getTransactionTimeout()
                          throws XAException
No method to map for a local transaction, just return no timeout.

Specified by:
getTransactionTimeout in interface XAResource
Throws:
XAException

isSameRM

public boolean isSameRM(XAResource xaresource)
                 throws XAException
Determine if the wrapper instance is the same as the wrapper instance being passed in

Specified by:
isSameRM in interface XAResource
Parameters:
xaresource - An XAResource object
Returns:
True if same RM instance, otherwise false.
Throws:
XAException - no throw in this implementation

prepare

public int prepare(Xid xid)
            throws XAException
No method to map for a local transaction, just return XA_OK.

Specified by:
prepare in interface XAResource
Parameters:
xid - transaction xid
Throws:
XAException

recover

public Xid[] recover(int i)
              throws XAException
No method to map for a local transaction.

Specified by:
recover in interface XAResource
Throws:
XAException

rollback

public void rollback(Xid xid)
              throws XAException
Rollback the localTransaction, the param isn't used for a local transaction.

Specified by:
rollback in interface XAResource
Parameters:
xid - transaction xid
Throws:
XAException - Exception trying to rollback local transaction

setTransactionTimeout

public boolean setTransactionTimeout(int i)
                              throws XAException
No method to map for a local transaction, just return no timeout.

Specified by:
setTransactionTimeout in interface XAResource
Throws:
XAException

start

public void start(Xid xid,
                  int i)
           throws XAException
Only start a local transaction if a new transaction is being attempted, just return if joining or resuming.

Specified by:
start in interface XAResource
Parameters:
xid - transaction xid
Throws:
XAException - Transaction already started or error starting a new local transaction


Copyright © 2010 OW2 Consortium. All Rights Reserved.