A PersistenceRecord is created whenever a persistent object is
created/read/modified within the scope of a transaction. It is responsible
for ensuring that state changes are committed or rolled back on behalf of the
object depending upon the outcome of the transaction.
- Mark Little (email@example.com)
- $Id: PersistenceRecord.java 2342 2006-03-30 13:06:17Z $
- JTS 1.0.
This constructor is used to create a new instance of PersistenceRecord.
Redefintions of abstract functions inherited from RecoveryRecord.
topLevelAbort may have to remove the persistent state that was written
into the object store during the processing of topLevelPrepare. It then
does the standard abort processing.
commit the state saved during the prepare phase.
tsLogger.logger.trace("PersistenceRecord::topLevelCommit() : About to commit state, "+
topLevelPrepare attempts to save the object. It will either do this in
the action intention list or directly in the object store by using the
'deactivate' function of the object depending upon the size of the state.
To ensure that objects are correctly hidden while they are in an
uncommitted state if we use the abbreviated protocol then we write an
EMPTY object state as the shadow state - THIS MUST NOT BE COMMITTED.
Instead we write_committed the one saved in the intention list. If the
store cannot cope with being given an empty state we revert to the old
topLevelCleanup must leave the persistent state that was written in the
object store during the processing of topLevelPrepare intact. Crash
recovery will take care of its resolution
strm.println("PersistenceRecord with state:\n" + super.state);
Creates a 'blank' persistence record. This is used during crash recovery
when recreating the prepared list of a server atomic action.
tsLogger.logger.trace("PersistenceRecord::PersistenceRecord() - crash recovery constructor");
Cadaver records force write shadows. This operation supresses to
abbreviated commit This should never return false