Class LogicalUndoOperation

    • Field Detail

      • recordId

        protected int recordId
    • Constructor Detail

      • LogicalUndoOperation

        LogicalUndoOperation​(BasePage page)
      • LogicalUndoOperation

        LogicalUndoOperation​(BasePage page,
                             int recordId,
                             LogicalPageOperation op)
        Set up a compensation operation during run time rollback
      • LogicalUndoOperation

        public LogicalUndoOperation()
        Return my format identifier.
    • Method Detail

      • getTypeFormatId

        public int getTypeFormatId()
        Description copied from interface: TypedFormat
        Get a universally unique identifier for the type of this object.
        Specified by:
        getTypeFormatId in interface TypedFormat
        Returns:
        The identifier. (A UUID stuffed in an array of 16 bytes).
      • writeExternal

        public void writeExternal​(java.io.ObjectOutput out)
                           throws java.io.IOException
        Write this out.
        Specified by:
        writeExternal in interface java.io.Externalizable
        Overrides:
        writeExternal in class PageBasicOperation
        Throws:
        java.io.IOException - error writing to log stream
      • readExternal

        public void readExternal​(java.io.ObjectInput in)
                          throws java.io.IOException,
                                 java.lang.ClassNotFoundException
        Read this in
        Specified by:
        readExternal in interface java.io.Externalizable
        Overrides:
        readExternal in class PageBasicOperation
        Throws:
        java.io.IOException - error reading from log stream
        java.lang.ClassNotFoundException - log stream corrupted
      • restoreMe

        public void restoreMe​(Transaction xact,
                              BasePage undoPage,
                              LogInstant CLRinstant,
                              LimitObjectInput in)
        Description copied from class: PageBasicOperation
        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
        Specified by:
        restoreMe in class PageBasicOperation
        Parameters:
        xact - the Transaction doing the rollback
        undoPage - the page to rollback changes on
        CLRinstant - the log instant of this (PageUndo) operation
        in - optional data for the rollback operation
      • doMe

        public final void doMe​(Transaction xact,
                               LogInstant instant,
                               LimitObjectInput in)
                        throws StandardException,
                               java.io.IOException
        Apply the undo operation, in this implementation of the RawStore, it can only call the undoMe method of undoOp
        Specified by:
        doMe in interface Loggable
        Parameters:
        xact - the Transaction that is doing the rollback
        instant - the log instant of this undo operation
        in - optional data
        Throws:
        java.io.IOException - Can be thrown by any of the methods of ObjectInput.
        StandardException - Standard Derby policy.
      • releaseResource

        public void releaseResource​(Transaction xact)
        Description copied from class: PageBasicOperation
        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()
Specified by:
releaseResource in interface Loggable
Overrides:
releaseResource in class PageBasicOperation