org.objectweb.jotm
Class SubCoordinator

java.lang.Object
  extended byjavax.rmi.PortableRemoteObject
      extended byorg.objectweb.jotm.SubCoordinator
All Implemented Interfaces:
java.rmi.Remote, Resource

public class SubCoordinator
extends javax.rmi.PortableRemoteObject
implements Resource

This object is the local coordinator. It may be registered as sub-coordinator in case of distributed transaction, so it must be callable remotely and implement Resource


Field Summary
 
Fields inherited from interface org.objectweb.jotm.Resource
VOTE_COMMIT, VOTE_READONLY, VOTE_ROLLBACK
 
Method Summary
 void addJavaxXid(javax.transaction.xa.Xid javaxxid)
           
 boolean addResource(javax.transaction.xa.XAResource xares)
          add a XAResource to the list
 void addSynchronization(javax.transaction.Synchronization synchro)
          add a Synchronization to the list
 void commit_one_phase()
          commit 1 phase.
 void commit()
          phase 2 of the 2PC.
 void forget()
          forget heuristics about this transaction.
 javax.transaction.xa.Xid getJavaxXid(int xaresindex)
           
 int getStatus()
          return the status of this transaction
 int getXaresIndex(javax.transaction.xa.XAResource xares)
           
 int prepare()
          phase 1 of the 2PC.
 void rollback()
          rollback transaction
 void setRollbackOnly()
          set the transaction "rollback only"
 
Methods inherited from class javax.rmi.PortableRemoteObject
connect, exportObject, narrow, toStub, unexportObject
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

prepare

public int prepare()
            throws java.rmi.RemoteException
phase 1 of the 2PC.

Specified by:
prepare in interface Resource
Returns:
int vote commit, rollback, or readonly.
Throws:
java.rmi.RemoteException

rollback

public void rollback()
              throws java.rmi.RemoteException
rollback transaction

Specified by:
rollback in interface Resource
Throws:
java.rmi.RemoteException

commit

public void commit()
            throws java.rmi.RemoteException
phase 2 of the 2PC.

Specified by:
commit in interface Resource
Throws:
java.rmi.RemoteException

commit_one_phase

public void commit_one_phase()
                      throws java.rmi.RemoteException
commit 1 phase. Called either from JTM (distributed transaction) or from Transaction.commit (local transaction).

Specified by:
commit_one_phase in interface Resource
Throws:
java.rmi.RemoteException

forget

public void forget()
            throws java.rmi.RemoteException
forget heuristics about this transaction.

Specified by:
forget in interface Resource
Throws:
java.rmi.RemoteException

addSynchronization

public void addSynchronization(javax.transaction.Synchronization synchro)
                        throws javax.transaction.RollbackException,
                               java.lang.IllegalStateException
add a Synchronization to the list

Parameters:
synchro - The javax.transaction.Synchronization object for the transaction associated with the target object
Throws:
javax.transaction.RollbackException - Thrown to indicate that the transaction has been marked for rollback only.
java.lang.IllegalStateException - Thrown if the transaction in the target object is in prepared state or the transaction is inactive.

addResource

public boolean addResource(javax.transaction.xa.XAResource xares)
                    throws java.lang.IllegalStateException
add a XAResource to the list

Parameters:
xares - XAResource to register
Returns:
true if this datasource was already known
Throws:
java.lang.IllegalStateException - Thrown if the transaction in the target object is in prepared state or the transaction is inactive.

addJavaxXid

public void addJavaxXid(javax.transaction.xa.Xid javaxxid)

getStatus

public int getStatus()
return the status of this transaction


getJavaxXid

public javax.transaction.xa.Xid getJavaxXid(int xaresindex)

setRollbackOnly

public void setRollbackOnly()
set the transaction "rollback only"


getXaresIndex

public int getXaresIndex(javax.transaction.xa.XAResource xares)