org.objectweb.jotm
Class SubCoordinator

java.lang.Object
  |
  +--javax.rmi.PortableRemoteObject
        |
        +--org.objectweb.jotm.SubCoordinator
All Implemented Interfaces:
Remote, Resource

public class SubCoordinator
extends 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
 boolean addResource(XAResource xares)
          add a XAResource to the list
 void addSynchronization(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.
 int getStatus()
          return the status of this transaction
 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 RemoteException
phase 1 of the 2PC.

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

rollback

public void rollback()
              throws RemoteException
rollback transaction

Specified by:
rollback in interface Resource
RemoteException

commit

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

Specified by:
commit in interface Resource
RemoteException

commit_one_phase

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

Specified by:
commit_one_phase in interface Resource
RemoteException

forget

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

Specified by:
forget in interface Resource
RemoteException

addSynchronization

public void addSynchronization(Synchronization synchro)
                        throws RollbackException,
                               IllegalStateException
add a Synchronization to the list

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

addResource

public boolean addResource(XAResource xares)
                    throws IllegalStateException
add a XAResource to the list

Returns:
true if this datasource was already known
Throws:
IllegalStateException - Thrown if the transaction in the target object is in prepared state or the transaction is inactive.

getStatus

public int getStatus()
return the status of this transaction


setRollbackOnly

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