aleph.trans
Class TransactionManager

java.lang.Object
  |
  +--aleph.trans.TransactionManager
Direct Known Subclasses:
OptTransactionManager, SimpleTransactionManager

public abstract class TransactionManager
extends java.lang.Object

Handles the underlying communication necessary to support transactions. Extending classes must define a no-arg constructor.

See Also:
Transaction

Constructor Summary
TransactionManager()
           
 
Method Summary
abstract  void commit(Transaction transaction)
          Try to commit a transaction.
abstract  java.lang.String getLabel()
           
static TransactionManager getManager()
           
 void newObject(GlobalObject key, java.lang.Object object)
          Register newly-created global object.
abstract  void newObject(GlobalObject key, java.lang.Object object, java.lang.String hint)
          Register newly-created global object.
abstract  java.lang.Object open(GlobalObject object, java.lang.String mode)
          Open a global object in desired mode.
abstract  java.lang.Object open(GlobalObject object, Transaction transaction, java.lang.String mode)
          Open a global object within a transaction.
abstract  void release(GlobalObject object)
          Called when object no longer needed.
static void setManager(java.lang.String newManager)
          Change transaction managers in mid-stream.
abstract  int status(Transaction transaction)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TransactionManager

public TransactionManager()
Method Detail

getManager

public static TransactionManager getManager()
Returns:
the one and only TransactionManager

setManager

public static void setManager(java.lang.String newManager)
Change transaction managers in mid-stream. Applications should probably not call this method.

newObject

public void newObject(GlobalObject key,
                      java.lang.Object object)
Register newly-created global object.
Parameters:
key - Global object ID
object - Initial state for global object.

newObject

public abstract void newObject(GlobalObject key,
                               java.lang.Object object,
                               java.lang.String hint)
Register newly-created global object.
Parameters:
key - Global object ID
object - Initial state for global object.
hint - String passed to transaction manager.

commit

public abstract void commit(Transaction transaction)
                     throws AlephException
Try to commit a transaction.
Parameters:
transaction - Transaction to commit.
Throws:
AlephException - if optimistic synchronization fails.

open

public abstract java.lang.Object open(GlobalObject object,
                                      java.lang.String mode)
Open a global object in desired mode. All transaction managers should support at least modes "w" (write) and "r" (read) Unrecognized modes should be treated like "w". Modes are case insensitive.
Parameters:
object - The object to open.
mode - Mode in which to open object.

open

public abstract java.lang.Object open(GlobalObject object,
                                      Transaction transaction,
                                      java.lang.String mode)
Open a global object within a transaction.
Parameters:
object - The object to open.
transaction - Transaction within which object is accessed.
mode - Mode in which to open object.

release

public abstract void release(GlobalObject object)
Called when object no longer needed.
Parameters:
object - Formerly interesting object.

status

public abstract int status(Transaction transaction)
Returns:
whether transaction is active, committed, or aborted.

getLabel

public abstract java.lang.String getLabel()
Returns:
Label describing which communication manager we are.