org.objectweb.speedo.workingset.lib
Class SpeedoTransaction

java.lang.Object
  extended byorg.objectweb.perseus.persistence.lib.BasicWorkingSet
      extended byorg.objectweb.speedo.workingset.lib.SpeedoTransaction
All Implemented Interfaces:
org.objectweb.fractal.api.control.BindingController, org.objectweb.fractal.api.control.LifeCycleController, javax.jdo.Transaction, Transaction, org.objectweb.perseus.persistence.api.TransactionalWorkingSet, org.objectweb.perseus.persistence.api.WorkingSet

public class SpeedoTransaction
extends org.objectweb.perseus.persistence.lib.BasicWorkingSet
implements Transaction, org.objectweb.fractal.api.control.LifeCycleController

Is a working set assocaited to a ProxyManager. The working set can be transactional or not. It contains the list of reached instances.

Author:
S.Chassande-Barrioz
See Also:
Transaction, Transaction, WorkingSet, BasicWorkingSet

Field Summary
static java.lang.String COMPONENT_BINDING
           
static java.lang.String MAPPER_BINDING
           
static java.lang.String PROXY_MANAGER_BINDING
           
static java.lang.String TRANSACTIONAL_PERSISTENCE_MANAGER_BINDING
           
static TransactionListener txListener
           
 
Fields inherited from class org.objectweb.perseus.persistence.lib.BasicWorkingSet
connectionHolder, logger, oid2state, restoreValues, retainValues, rollBackOnly, status, userObject
 
Fields inherited from interface org.objectweb.perseus.persistence.api.TransactionalWorkingSet
CTX_ABORTED, CTX_ACTIVE_TRANSACTIONAL, CTX_COMMITTED, CTX_PREPARED, CTX_PREPARED_FAIL, CTX_PREPARED_OK
 
Fields inherited from interface org.objectweb.perseus.persistence.api.WorkingSet
CTX_ACTIVE, CTX_CLOSED, READ_INTENTION, UNKNOWN_INTENTION, WRITE_INTENTION
 
Fields inherited from interface org.objectweb.fractal.api.control.LifeCycleController
STARTED, STOPPED
 
Constructor Summary
SpeedoTransaction()
           
 
Method Summary
 void active()
          It activates the working set.
 void beforeWSPrepare()
          Invalidates the prefetch buffer associated to this working set.
 void begin()
           
 org.objectweb.perseus.persistence.api.State bind(org.objectweb.perseus.persistence.api.State state, java.lang.Object oid, byte mode)
          Attaches an entry to the transaction.
 void bindFc(java.lang.String c, java.lang.Object s)
           
 void commit()
           
 java.lang.String getFcState()
           
 boolean getNontransactionalRead()
           
 boolean getNontransactionalWrite()
           
 boolean getOptimistic()
           
 javax.jdo.PersistenceManager getPersistenceManager()
           
 boolean getRestoreValues()
           
 boolean getRetainValues()
           
 boolean getRollbackOnly()
           
 javax.transaction.Synchronization getSynchronization()
           
 boolean isActive()
           
 boolean isManagedEnv()
          Indicates if the transaction environnement is managed.
 java.lang.String[] listFc()
           
 java.lang.Object lookupFc(java.lang.String c)
           
 void onWSEnd()
          Signal to the persistent instances reached in the working set that the current working set is closed.
 void rollback()
           
 javax.jdo.JDOFatalException rollBackOnInternalError(java.lang.Exception _e)
           
 void setConnectionHolder(org.objectweb.perseus.persistence.api.ConnectionHolder ch)
          Assignes the connection holder.
 void setNontransactionalRead(boolean b)
           
 void setNontransactionalWrite(boolean b)
           
 void setOptimistic(boolean b)
           
 void setRestoreValues(boolean b)
           
 void setRetainValues(boolean b)
           
 void setRollbackOnly()
           
 void setStatus(byte status)
           
 void setSynchronization(javax.transaction.Synchronization s)
           
 void startFc()
           
 void stopFc()
           
 void unbindFc(java.lang.String c)
           
 
Methods inherited from class org.objectweb.perseus.persistence.lib.BasicWorkingSet
clear, entries, getConnectionHolder, getStatus, getUserObject, getWSRestoreValues, getWSRetainValues, getWSRollBackOnly, lookup, oids, setWSRestoreValues, setWSRetainValues, setWSRollBackOnly, unbind
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.objectweb.perseus.persistence.api.TransactionalWorkingSet
getWSRollBackOnly, setWSRollBackOnly
 
Methods inherited from interface org.objectweb.perseus.persistence.api.WorkingSet
clear, entries, getConnectionHolder, getStatus, getUserObject, getWSRestoreValues, getWSRetainValues, lookup, oids, setWSRestoreValues, setWSRetainValues, unbind
 

Field Detail

PROXY_MANAGER_BINDING

public static final java.lang.String PROXY_MANAGER_BINDING
See Also:
Constant Field Values

MAPPER_BINDING

public static final java.lang.String MAPPER_BINDING
See Also:
Constant Field Values

TRANSACTIONAL_PERSISTENCE_MANAGER_BINDING

public static final java.lang.String TRANSACTIONAL_PERSISTENCE_MANAGER_BINDING
See Also:
Constant Field Values

COMPONENT_BINDING

public static final java.lang.String COMPONENT_BINDING
See Also:
Constant Field Values

txListener

public static TransactionListener txListener
Constructor Detail

SpeedoTransaction

public SpeedoTransaction()
Method Detail

active

public void active()
            throws org.objectweb.perseus.persistence.api.PersistenceException
It activates the working set. This is used to delimit the begining of the working set.

Specified by:
active in interface Transaction
Throws:
org.objectweb.perseus.persistence.api.PersistenceException

bind

public org.objectweb.perseus.persistence.api.State bind(org.objectweb.perseus.persistence.api.State state,
                                                        java.lang.Object oid,
                                                        byte mode)
Attaches an entry to the transaction. Plus version update.

Specified by:
bind in interface org.objectweb.perseus.persistence.api.WorkingSet
Parameters:
state - the state which must be attached to the transaction
mode - the action that stared the binding: either read or write intention

beforeWSPrepare

public void beforeWSPrepare()
                     throws org.objectweb.perseus.persistence.api.PersistenceException
Invalidates the prefetch buffer associated to this working set.

Throws:
org.objectweb.perseus.persistence.api.PersistenceException

onWSEnd

public void onWSEnd()
Signal to the persistent instances reached in the working set that the current working set is closed. Some actions on persistent instances at this time can be done, such as reference unswizlling


setConnectionHolder

public void setConnectionHolder(org.objectweb.perseus.persistence.api.ConnectionHolder ch)
Description copied from interface: Transaction
Assignes the connection holder. The connection holder is able to allocate a connection to the underlying data support and to kept it until the working set / transaction end.

Specified by:
setConnectionHolder in interface Transaction

rollBackOnInternalError

public javax.jdo.JDOFatalException rollBackOnInternalError(java.lang.Exception _e)
Specified by:
rollBackOnInternalError in interface Transaction

isManagedEnv

public boolean isManagedEnv()
Description copied from interface: Transaction
Indicates if the transaction environnement is managed. If the 'false' value is returned then that means that a user transaction matches to a local transaction managed by speedo.

Specified by:
isManagedEnv in interface Transaction

getFcState

public java.lang.String getFcState()
Specified by:
getFcState in interface org.objectweb.fractal.api.control.LifeCycleController

startFc

public void startFc()
Specified by:
startFc in interface org.objectweb.fractal.api.control.LifeCycleController

stopFc

public void stopFc()
Specified by:
stopFc in interface org.objectweb.fractal.api.control.LifeCycleController

listFc

public java.lang.String[] listFc()
Specified by:
listFc in interface org.objectweb.fractal.api.control.BindingController

lookupFc

public java.lang.Object lookupFc(java.lang.String c)
Specified by:
lookupFc in interface org.objectweb.fractal.api.control.BindingController

bindFc

public void bindFc(java.lang.String c,
                   java.lang.Object s)
Specified by:
bindFc in interface org.objectweb.fractal.api.control.BindingController

unbindFc

public void unbindFc(java.lang.String c)
Specified by:
unbindFc in interface org.objectweb.fractal.api.control.BindingController

setStatus

public void setStatus(byte status)
               throws org.objectweb.perseus.persistence.api.PersistenceException
Specified by:
setStatus in interface org.objectweb.perseus.persistence.api.WorkingSet
Throws:
org.objectweb.perseus.persistence.api.PersistenceException

begin

public void begin()
Specified by:
begin in interface javax.jdo.Transaction

commit

public void commit()
Specified by:
commit in interface javax.jdo.Transaction

rollback

public void rollback()
Specified by:
rollback in interface javax.jdo.Transaction

isActive

public boolean isActive()
Specified by:
isActive in interface javax.jdo.Transaction

setNontransactionalRead

public void setNontransactionalRead(boolean b)
Specified by:
setNontransactionalRead in interface javax.jdo.Transaction

getNontransactionalRead

public boolean getNontransactionalRead()
Specified by:
getNontransactionalRead in interface javax.jdo.Transaction

setNontransactionalWrite

public void setNontransactionalWrite(boolean b)
Specified by:
setNontransactionalWrite in interface javax.jdo.Transaction

getNontransactionalWrite

public boolean getNontransactionalWrite()
Specified by:
getNontransactionalWrite in interface javax.jdo.Transaction

setRetainValues

public void setRetainValues(boolean b)
Specified by:
setRetainValues in interface javax.jdo.Transaction

getRetainValues

public boolean getRetainValues()
Specified by:
getRetainValues in interface javax.jdo.Transaction

setRestoreValues

public void setRestoreValues(boolean b)
Specified by:
setRestoreValues in interface javax.jdo.Transaction

getRestoreValues

public boolean getRestoreValues()
Specified by:
getRestoreValues in interface javax.jdo.Transaction

setOptimistic

public void setOptimistic(boolean b)
Specified by:
setOptimistic in interface javax.jdo.Transaction

getOptimistic

public boolean getOptimistic()
Specified by:
getOptimistic in interface javax.jdo.Transaction

setSynchronization

public void setSynchronization(javax.transaction.Synchronization s)
Specified by:
setSynchronization in interface javax.jdo.Transaction

getSynchronization

public javax.transaction.Synchronization getSynchronization()
Specified by:
getSynchronization in interface javax.jdo.Transaction

getPersistenceManager

public javax.jdo.PersistenceManager getPersistenceManager()
Specified by:
getPersistenceManager in interface javax.jdo.Transaction

getRollbackOnly

public boolean getRollbackOnly()
Specified by:
getRollbackOnly in interface javax.jdo.Transaction

setRollbackOnly

public void setRollbackOnly()
Specified by:
setRollbackOnly in interface javax.jdo.Transaction