| java.lang.Object org.apache.derby.impl.store.raw.data.PageBasicOperation
All known Subclasses: org.apache.derby.impl.store.raw.data.SetReservedSpaceOperation, org.apache.derby.impl.store.raw.data.LogicalPageOperation, org.apache.derby.impl.store.raw.data.PhysicalUndoOperation, org.apache.derby.impl.store.raw.data.PhysicalPageOperation, org.apache.derby.impl.store.raw.data.LogicalUndoOperation,
PageBasicOperation | abstract public class PageBasicOperation implements Loggable,RePreparable(Code) | | A PageBasicOperation changed the content of a page, this is the root class of all
page oriented operation. Each PageBasicOperation record change(s)
that apply to one and only one page. The pageID that is changed
must be recorded in the log operation - in other words, redo
must be physical (or more correctly, in Gray's term, physiological, since
changes are logical within a page).
Undo can be logical, but the undo logic must be hidden in
generateUndo. By the time a compensation operation is logged as a
LogOperation, the page that needs roll back must be determined.
See Also: Loggable |
Method Summary | |
final public BasePage | findpage(Transaction xact) Find the page the operation applies to and latch it, this only
uses the segmentId, containerId, and pageId stored in this log
record to find the page. | final public Page | getPage() | protected BasePage | getPageForRedoRecovery(Transaction xact) | final protected PageKey | getPageId() | final public long | getPageVersion() | public ByteArray | getPreparedLog() the default for optional data is set to null. | public int | group() | final public boolean | needsRedo(Transaction xact) Returns true if this op should be redone during recovery redo,
if so, get and latched the page. | public void | readExternal(ObjectInput in) | public void | reclaimPrepareLocks(Transaction t, LockingPolicy locking_policy) reclaim locks associated with the changes in this log record. | public void | releaseResource(Transaction xact) Release latched page and any other resources acquired during a previous
findpage, safe to call multiple times. | final protected void | resetPageNumber(long pageNumber) | abstract public void | restoreMe(Transaction xact, BasePage undoPage, LogInstant CLRinstant, LimitObjectInput in) Undo the change indicated by this log operation and optional data.
The page the undo should apply to is the latched undoPage.
The undoPage must be the same page as the doMe page and the undo
operation must restore the before image of the row that changed. | public String | toString() | public void | writeExternal(ObjectOutput out) |
foundHere | protected transient boolean foundHere(Code) | | |
PageBasicOperation | public PageBasicOperation()(Code) | | |
findpage | final public BasePage findpage(Transaction xact) throws StandardException(Code) | | Find the page the operation applies to and latch it, this only
uses the segmentId, containerId, and pageId stored in this log
record to find the page.
null if container is dropped and committed (possiblystubbified), else return the latched page exception: StandardException - Standard Cloudscape policy. |
getPageForRedoRecovery | protected BasePage getPageForRedoRecovery(Transaction xact) throws StandardException(Code) | | Subclass (e.g., init page) that wishes to do something about missing
pages in load tran should override this method to return the page
exception: StandardException - Cloudscape Standard error policy |
getPageVersion | final public long getPageVersion()(Code) | | |
getPreparedLog | public ByteArray getPreparedLog() throws StandardException(Code) | | the default for optional data is set to null. If an operation has optional data,
the operation need to prepare the optional data for this method.
WARNING: If a log operation extends this class, and the operation has optional data,
it MUST overwrite this method to return a ByteArray that contains the optional data.
exception: StandardException - Standard Cloudscape policy. |
group | public int group()(Code) | | A page operation is a RAWSTORE log record
|
releaseResource | public void releaseResource(Transaction xact)(Code) | | Release latched page and any other resources acquired during a previous
findpage, safe to call multiple times.
In this RawStore implementataion, resource is acquired by a log
operation in one of two places
during runtime or recovery undo in PageOperation.generateUndo()
during recovery redo in PageBasicOperation.needsRedo()
|
resetPageNumber | final protected void resetPageNumber(long pageNumber)(Code) | | Reset the pageNumber
|
restoreMe | abstract public void restoreMe(Transaction xact, BasePage undoPage, LogInstant CLRinstant, LimitObjectInput in) throws StandardException, IOException(Code) | | Undo the change indicated by this log operation and optional data.
The page the undo should apply to is the latched undoPage.
The undoPage must be the same page as the doMe page and the undo
operation must restore the before image of the row that changed.
this can only be used under special circumstances: namely
table level locking, and no internal or nested transaction, and all
operations are rollec back with restoreMe instead of undoMe.
This method is here to support BeforeImageLogging
Parameters: xact - the Transaction doing the rollback Parameters: undoPage - the page to rollback changes on Parameters: CLRinstant - the log instant of this (PageUndo) operation Parameters: in - optional data for the rollback operation exception: IOException - Can be thrown by any of the methods of ObjectInput. exception: StandardException - Standard Cloudscape policy. |
|
|