|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.arjuna.ats.arjuna.StateManager com.arjuna.ats.arjuna.coordinator.AbstractRecord com.arjuna.ats.arjuna.RecoveryRecord com.arjuna.ats.arjuna.PersistenceRecord com.arjuna.ats.arjuna.CadaverRecord
Cadaver records are created whenever a persistent object is deleted while still in the scope of an atomic action. This ensures that if the action commits the state of the persistent objects gets properly reflected back in the object store. For objects that are only recoverable such work is unnecessary. Cadaver records replace PersistenceRecords in the record list of an atomic action so they must be merged with such records to enable both commits and aborts to occur.
Field Summary |
Fields inherited from class com.arjuna.ats.arjuna.PersistenceRecord |
classicPrepare, MAX_OBJECT_SIZE, objectAddr, shadowMade, state, topLevelState |
Fields inherited from class com.arjuna.ats.arjuna.StateManager |
modifyingActions, objectName, objectUid, smAttributes, usingActions |
Constructor Summary | |
protected |
CadaverRecord()
Create a new instance using default values. |
|
CadaverRecord(OutputObjectState os,
ObjectStore objStore,
StateManager sm)
Create a new instance, passing in the object that is being managed. |
Method Summary | |
ClassName |
className()
The ClassName representation of this class. |
static AbstractRecord |
create()
Create a new instance of the CadaverRecord, using the default constructor. |
boolean |
doSave()
Override the AbstractRecord.doSave. |
void |
finalize()
Tidy-up the instance. |
void |
merge(AbstractRecord mergewith)
merge takes the information from the incoming PersistenceRecord and uses it to initialise the oldState information. |
int |
nestedAbort()
The nested transaction has aborted. |
int |
nestedPrepare()
The nested transaction is preparing. |
void |
print(java.io.PrintWriter strm)
Override AbstractRecord.print to write specific information to the specified stream. |
boolean |
propagateOnAbort()
Override default AbstractRecord method. |
boolean |
shouldMerge(AbstractRecord ar)
Overrides AbstractRecord.shouldMerge |
boolean |
shouldReplace(AbstractRecord ar)
Overrides AbstractRecord.shouldReplace |
int |
topLevelAbort()
The nested transaction has aborted. |
int |
topLevelCommit()
At topLevelCommit we commit the uncommitted version already saved into object store. |
int |
topLevelPrepare()
At topLevelPrepare write uncommitted version into object store. |
java.lang.String |
type()
The type of the class - may be used to save information in an hierarchical manner in the object store. |
int |
typeIs()
The type of the record. |
Methods inherited from class com.arjuna.ats.arjuna.PersistenceRecord |
alter, forgetAction, nestedCommit, restore_state, save_state, setValue, shadowForced, shouldAdd, shouldAlter, topLevelCleanup, value |
Methods inherited from class com.arjuna.ats.arjuna.coordinator.AbstractRecord |
create, equals, forgetHeuristic, getNext, getPrevious, getTypeOfObject, greaterThan, lessThan, nestedCleanup, nestedOnePhaseCommit, order, propagateOnCommit, replace, setNext, setPrevious, topLevelOnePhaseCommit |
Methods inherited from class com.arjuna.ats.arjuna.StateManager |
activate, activate, attributes, cleanup, deactivate, deactivate, deactivate, destroy, disable, forgetAction, get_uid, getMutex, getStore, getStoreRoot, loadObjectState, lockMutex, modified, ObjectType, packHeader, persist, rememberAction, setStatus, setupStore, setupStore, status, terminate, tryLockMutex, unlockMutex, unpackHeader |
Methods inherited from class java.lang.Object |
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public CadaverRecord(OutputObjectState os, ObjectStore objStore, StateManager sm)
protected CadaverRecord()
Method Detail |
public void finalize()
finalize
in class PersistenceRecord
public boolean propagateOnAbort()
propagateOnAbort
in class AbstractRecord
true
public int typeIs()
typeIs
in class PersistenceRecord
RecordType
public ClassName className()
className
in class PersistenceRecord
public int nestedAbort()
public int nestedPrepare()
public int topLevelAbort()
topLevelAbort
in class PersistenceRecord
public int topLevelCommit()
topLevelCommit
in class PersistenceRecord
public int topLevelPrepare()
topLevelPrepare
in class PersistenceRecord
public void print(java.io.PrintWriter strm)
print
in class PersistenceRecord
public java.lang.String type()
type
in class PersistenceRecord
public boolean doSave()
doSave
in class PersistenceRecord
true
if the object being removed is a persistent
object (RecordType.PERSISTENT). false
otherwise.RecordType
public static AbstractRecord create()
public void merge(AbstractRecord mergewith)
public boolean shouldMerge(AbstractRecord ar)
true
if this instance and the parameter have the
same id (order()) and the parameter is either persistent or recoverable.
false
otherwise.RecordType
public boolean shouldReplace(AbstractRecord ar)
true
if this instance and the parameter have the
same id (order()) and the parameter is either persistent or recoverable.
false
otherwise.RecordType
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |