com.atomikos.icatch.imp
Class CompositeTransactionImp

java.lang.Object
  extended by com.atomikos.icatch.imp.AbstractCompositeTransaction
      extended by com.atomikos.icatch.imp.CompositeTransactionImp
All Implemented Interfaces:
FSMEnterListener, Stateful<TxState>, CompositeTransaction, TransactionControl, Serializable, EventListener

public class CompositeTransactionImp
extends AbstractCompositeTransaction
implements TransactionControl, FSMEnterListener

A complete composite transaction implementation for use in the local VM.

See Also:
Serialized Form

Field Summary
protected  CoordinatorImp coordinator_
           
protected  Extent extent_
           
protected  boolean noLocalAncestors_
           
protected  TransactionServiceImp txservice_
           
 
Fields inherited from class com.atomikos.icatch.imp.AbstractCompositeTransaction
lineage_, properties_, serial_, tag_, tid_
 
Constructor Summary
CompositeTransactionImp(TransactionServiceImp txservice, Stack lineage, String tid, boolean serial, CoordinatorImp coordinator)
          Constructor.
 
Method Summary
 RecoveryCoordinator addParticipant(Participant participant)
           
 void addSubTxAwareParticipant(SubTxAwareParticipant subtxaware)
           
 void commit()
           
 CompositeTransaction createSubTransaction()
           
protected  void doCommit()
          Successfully end the composite transaction.
protected  void doRollback()
           
 void entered(FSMEnterEvent coordinatorTerminatedEvent)
           
 CompositeCoordinator getCompositeCoordinator()
           
 Extent getExtent()
           
 int getLocalSubTxCount()
           
 TxState getState()
           
 CompositeTerminator getTerminator()
           
 long getTimeout()
           
 TransactionControl getTransactionControl()
           
 boolean isLocal()
           
 void registerSynchronization(Synchronization sync)
           
 void rollback()
           
 void setRollbackOnly()
           
 void setSerial()
           
 
Methods inherited from class com.atomikos.icatch.imp.AbstractCompositeTransaction
equals, getLineage, getProperties, getProperty, getTid, hashCode, isAncestorOf, isDescendantOf, isRelatedTransaction, isRoot, isSameTransaction, isSerial, setProperty, setTag
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.atomikos.icatch.TransactionControl
setTag
 

Field Detail

coordinator_

protected CoordinatorImp coordinator_

txservice_

protected TransactionServiceImp txservice_

extent_

protected Extent extent_

noLocalAncestors_

protected boolean noLocalAncestors_
Constructor Detail

CompositeTransactionImp

public CompositeTransactionImp(TransactionServiceImp txservice,
                               Stack lineage,
                               String tid,
                               boolean serial,
                               CoordinatorImp coordinator)
                        throws IllegalStateException
Constructor.

Parameters:
txservice - The Transaction Service this is for.
lineage - The ancestor information.
tid - The identifier for this one.
serial - If true, no parallel calls allowed.
coordinator - The coordinator to use.
Throws:
IllegalStateException - If coordinator no longer activatable.
Method Detail

getTransactionControl

public TransactionControl getTransactionControl()
Specified by:
getTransactionControl in interface CompositeTransaction
Overrides:
getTransactionControl in class AbstractCompositeTransaction
See Also:
CompositeTransaction.

getLocalSubTxCount

public int getLocalSubTxCount()
Specified by:
getLocalSubTxCount in interface CompositeTransaction
Specified by:
getLocalSubTxCount in interface TransactionControl
Overrides:
getLocalSubTxCount in class AbstractCompositeTransaction
See Also:
TransactionControl

setSerial

public void setSerial()
               throws IllegalStateException,
                      SysException
Specified by:
setSerial in interface CompositeTransaction
Specified by:
setSerial in interface TransactionControl
Overrides:
setSerial in class AbstractCompositeTransaction
Throws:
IllegalStateException
SysException
See Also:
TransactionControl.

createSubTransaction

public CompositeTransaction createSubTransaction()
                                          throws SysException,
                                                 IllegalStateException
Specified by:
createSubTransaction in interface CompositeTransaction
Specified by:
createSubTransaction in interface TransactionControl
Overrides:
createSubTransaction in class AbstractCompositeTransaction
Throws:
SysException
IllegalStateException
See Also:
TransactionControl.

addParticipant

public RecoveryCoordinator addParticipant(Participant participant)
                                   throws SysException,
                                          IllegalStateException
Specified by:
addParticipant in interface CompositeTransaction
Overrides:
addParticipant in class AbstractCompositeTransaction
Throws:
SysException
IllegalStateException
See Also:
CompositeTransaction

registerSynchronization

public void registerSynchronization(Synchronization sync)
                             throws IllegalStateException,
                                    UnsupportedOperationException,
                                    SysException
Specified by:
registerSynchronization in interface CompositeTransaction
Overrides:
registerSynchronization in class AbstractCompositeTransaction
Throws:
IllegalStateException
UnsupportedOperationException
SysException
See Also:
CompositeTransaction

addSubTxAwareParticipant

public void addSubTxAwareParticipant(SubTxAwareParticipant subtxaware)
                              throws SysException,
                                     IllegalStateException
Specified by:
addSubTxAwareParticipant in interface CompositeTransaction
Overrides:
addSubTxAwareParticipant in class AbstractCompositeTransaction
Throws:
SysException
IllegalStateException
See Also:
CompositeTransaction

doRollback

protected void doRollback()
                   throws IllegalStateException,
                          SysException
Throws:
IllegalStateException
SysException
See Also:
TransactionControl.

getCompositeCoordinator

public CompositeCoordinator getCompositeCoordinator()
                                             throws SysException
Specified by:
getCompositeCoordinator in interface CompositeTransaction
Overrides:
getCompositeCoordinator in class AbstractCompositeTransaction
Throws:
SysException
See Also:
CompositeTransaction.

isLocal

public boolean isLocal()
Specified by:
isLocal in interface CompositeTransaction
Overrides:
isLocal in class AbstractCompositeTransaction
See Also:
CompositeTransaction.

getTerminator

public CompositeTerminator getTerminator()
Specified by:
getTerminator in interface TransactionControl
See Also:
TransactionControl.

doCommit

protected void doCommit()
                 throws SysException,
                        IllegalStateException,
                        RollbackException
Successfully end the composite transaction. Marks it as inactive. Called by Terminator implementation only! NOTE: this does NOT commit the participants, but rather only marks the (sub)transaction as being ELIGIBLE FOR PREPARE IN 2PC.

Throws:
IllegalStateException - If no longer active.
SysException - Unexpected failure.
RollbackException

getTimeout

public long getTimeout()
Specified by:
getTimeout in interface CompositeTransaction
Specified by:
getTimeout in interface TransactionControl
Overrides:
getTimeout in class AbstractCompositeTransaction
See Also:
TransactionControl

getExtent

public Extent getExtent()
Specified by:
getExtent in interface CompositeTransaction
Specified by:
getExtent in interface TransactionControl
Overrides:
getExtent in class AbstractCompositeTransaction
See Also:
TransactionControl.

setRollbackOnly

public void setRollbackOnly()
Specified by:
setRollbackOnly in interface CompositeTransaction
Specified by:
setRollbackOnly in interface TransactionControl
Overrides:
setRollbackOnly in class AbstractCompositeTransaction
See Also:
TransactionControl.

commit

public void commit()
            throws HeurRollbackException,
                   HeurMixedException,
                   HeurHazardException,
                   SysException,
                   SecurityException,
                   RollbackException
Specified by:
commit in interface CompositeTransaction
Overrides:
commit in class AbstractCompositeTransaction
Throws:
HeurRollbackException
HeurMixedException
HeurHazardException
SysException
SecurityException
RollbackException
See Also:
CompositeTransaction.commit()

rollback

public void rollback()
              throws IllegalStateException,
                     SysException
Specified by:
rollback in interface CompositeTransaction
Overrides:
rollback in class AbstractCompositeTransaction
Throws:
IllegalStateException
SysException
See Also:
CompositeTransaction.rollback()

getState

public TxState getState()
Specified by:
getState in interface Stateful<TxState>
Specified by:
getState in interface CompositeTransaction
Overrides:
getState in class AbstractCompositeTransaction
See Also:
Stateful

entered

public void entered(FSMEnterEvent coordinatorTerminatedEvent)
Specified by:
entered in interface FSMEnterListener
See Also:
com.atomikos.finitestates.FSMEnterListener#preEnter(com.atomikos.finitestates.FSMEnterEvent)


Copyright © 2014. All Rights Reserved.