java.lang.Object
java.util.Observable
org.vrspace.server.VRObject
org.vrspace.server.DBObject
org.vrspace.server.PassiveDBObject
org.vrspace.server.Transaction
- All Implemented Interfaces:
- java.lang.Cloneable, java.util.Observer
- public class Transaction
- extends PassiveDBObject
- implements java.util.Observer
Transacton: collects request from a client. Caches all objects. Able of
rollback, rollforward, isolation... PassiveDBObject: can be stored to database,
cannot send nor receive network events.
| Fields inherited from class org.vrspace.server.DBObject |
db |
| Methods inherited from class org.vrspace.server.VRObject |
arrayToString, canRead, canWrite, clone, equals, fieldToText, fromString, fromText, getClassName, getField, getFields, getId, getID, getMemebers, hasField, hasMethod, isNew, lock, lockClass, newInstance, sendResponse, setField, setField, setField, setFields, setFields, setValue, stringToArray, toString, toText, toText, toText, unlock, unlockClass |
init
java.util.Hashtable init
requests
org.vrspace.util.Queue requests
LAST_COMMITED
public static final int LAST_COMMITED
- See Also:
- Constant Field Values
LOCK_CLASS
public static final int LOCK_CLASS
- See Also:
- Constant Field Values
LOCK_OBJECT
public static final int LOCK_OBJECT
- See Also:
- Constant Field Values
level
int level
client
Client client
Transaction
public Transaction()
start
public void start(Client c)
- Start a transaction with LAST_COMMITED lock level (no locking)
start
public void start(Client c,
int level)
- Start a transaciton. Starts listening to all changes that client made.
update
public void update(java.util.Observable obs,
java.lang.Object req)
- Process a request from client. Request is allready processed by Dispatcher
and validated. Called by Client.
With LOCK_OBJECT or LOCK_CLASS isolation level, it means that object was
not locked before.
- Specified by:
update in interface java.util.Observer
commit
public void commit()
- Commit
rollback
public void rollback()
- Rollback a transaction. Calls VRObject.sendEvent() to set each field value,
so rollback may be distributed.
rollforward
public void rollforward()
- Rollforward - reply each request. Calls VRObject.sendEvent().
This does not lock or unlock objects or classes
unlockObj
private void unlockObj(VRObject obj)