abstract class PhysicalPageOperation extends PageBasicOperation implements Undoable
Format ID | no format id, an abstract class. |
Purpose | provide methods for physical undo |
Upgrade | |
Disk Layout | PageBasicOperation the super class |
containerHdl, foundHere, page
ABORT, BI_LOG, CHECKSUM, COMMIT, COMPENSATION, FILE_RESOURCE, FIRST, LAST, PREPARE, RAWSTORE, XA_NEEDLOCK
Constructor and Description |
---|
PhysicalPageOperation() |
PhysicalPageOperation(BasePage page) |
Modifier and Type | Method and Description |
---|---|
Compensation |
generateUndo(Transaction xact,
LimitObjectInput in)
Generate a Compensation (PageUndoOperation) that will rollback the
changes of this page operation.
|
abstract void |
undoMe(Transaction xact,
BasePage undoPage,
LogInstant CLRinstant,
LimitObjectInput in)
Undo the change indicated by this log operation and optional data.
|
findpage, getPage, getPageForRedoRecovery, getPageId, getPageVersion, getPreparedLog, group, needsRedo, readExternal, reclaimPrepareLocks, releaseResource, resetPageNumber, restoreMe, toString, writeExternal
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
doMe, getPreparedLog, group, needsRedo, releaseResource
getTypeFormatId
PhysicalPageOperation(BasePage page)
public PhysicalPageOperation()
public Compensation generateUndo(Transaction xact, LimitObjectInput in) throws StandardException
Note
For operation that needs logical undo, use
LogicalUndoOperation instead This implementation just finds
the same page that the PageOperation was applied on - i.e., only works
for undo on the same page.
During recovery redo, the logging system is page oriented and will use the pageID stored in the PageUndoOperation to find the page. The page will be latched and released using the default findpage and releaseResource - this.releaseResource() will still be called so it has to know not to release any resource it did not acquire.
generateUndo
in interface Undoable
xact
- the transaction doing the compensatingin
- optional inputStandardException
- Standard Derby policy.PageBasicOperation
,
Undoable.generateUndo(org.apache.derby.iapi.store.raw.Transaction, org.apache.derby.iapi.services.io.LimitObjectInput)
public abstract void undoMe(Transaction xact, BasePage undoPage, LogInstant CLRinstant, LimitObjectInput in) throws StandardException, java.io.IOException
The available() method of in indicates how much data can be read, i.e. how much was originally written.
xact
- the Transaction doing the rollbackundoPage
- the page to rollback changes onCLRinstant
- the log instant of this (PageUndo) operationin
- optional data for the rollback operationjava.io.IOException
- Can be thrown by any of the methods of ObjectInput.StandardException
- Standard Derby policy.Apache Derby V10.13 Internals - Copyright © 2004,2016 The Apache Software Foundation. All Rights Reserved.