Documentation of 'org.apache.derby.impl.store.raw.xact.RowLocking3' Java class
RowLocking3
org.apache.derby.impl.store.raw.xact

Class RowLocking3

  • All Implemented Interfaces:
    LockingPolicy
    Direct Known Subclasses:
    RowLockingRR


    public class RowLocking3
    extends java.lang.Object
    A locking policy that implements row level locking with isolation degree 3.
    See Also:
    LockingPolicy
    • Method Detail

      • lockContainer

        public boolean lockContainer(Transaction t,
                                     ContainerHandle container,
                                     boolean waitForLock,
                                     boolean forUpdate)
                              throws StandardException
        Obtain container level intent lock.

        This implementation of row locking is 2 level, ie. table and row locking. It will interact correctly with tables opened with ContainerLocking3 locking mode.

        Updater's will get table level IX locks, and X row locks.

        Reader's will get table level IS locks, and S row locks.

        Specified by:
        lockContainer in interface LockingPolicy
        Parameters:
        t - Transaction to associate lock with.
        container - Container to lock.
        waitForLock - Should lock request wait until granted?
        forUpdate - Should container be locked for update, or read?
        Returns:
        true if the lock was obtained, false if it wasn't. False should only be returned if the waitForLock policy was set to "false," and the lock was unavailable.
        Throws:
        StandardException - Standard exception policy.
        See Also:
        ContainerHandle
      • lockRecordForRead

        public boolean lockRecordForRead(Transaction t,
                                         ContainerHandle container_handle,
                                         RecordHandle record,
                                         boolean waitForLock,
                                         boolean forUpdate)
                                  throws StandardException
        Obtain lock on record being read.

        Assumes that a table level IS has been acquired. Will acquire a Shared or Update lock on the row, depending on the "forUpdate" parameter.

        Specified by:
        lockRecordForRead in interface LockingPolicy
        Parameters:
        t - The transaction to associate the lock with.
        record - The record to be locked.
        waitForLock - Should lock request wait until granted?
        forUpdate - Whether to open for read or write access.
        container_handle - Open Container used to get record. Will be used to row locks by the container they belong to.
        Returns:
        true if the lock was granted, false if waitForLock was false and the lock could not be granted.
        Throws:
        StandardException - Standard exception policy.
        See Also:
        Page
      • zeroDurationLockRecordForWrite

        public boolean zeroDurationLockRecordForWrite(Transaction t,
                                                      RecordHandle record,
                                                      boolean lockForInsertPreviousKey,
                                                      boolean waitForLock)
                                               throws StandardException
        Obtain lock on record being written.

        Assumes that a table level IX has been acquired. Will acquire an Exclusive (X) lock on the row.

        Specified by:
        zeroDurationLockRecordForWrite in interface LockingPolicy
        Parameters:
        t - transaction to associate the lock with.
        record - The record to be locked.
        lockForInsertPreviousKey - Lock is for a previous key of a insert.
        waitForLock - Should lock request wait until granted?
        Returns:
        true if the lock was granted, false if waitForLock was false and the lock could not be granted.
        Throws:
        StandardException - Standard exception policy.
        See Also:
        Page
      • lockRecordForWrite

        public boolean lockRecordForWrite(Transaction t,
                                          RecordHandle record,
                                          boolean lockForInsert,
                                          boolean waitForLock)
                                   throws StandardException
        Obtain lock on record being written.

        Assumes that a table level IX has been acquired. Will acquire an Exclusive (X) lock on the row.

        Specified by:
        lockRecordForWrite in interface LockingPolicy
        Parameters:
        t - The transaction to associate the lock with.
        record - The record to be locked.
        lockForInsert - Lock is for an insert.
        waitForLock - Should lock request wait until granted?
        Returns:
        true if the lock was granted, false if waitForLock was false and the lock could not be granted.
        Throws:
        StandardException - Standard exception policy.
        See Also:
        Page

DataMelt 3.0 © DataMelt by jWork.ORG

You see the box below because you did not login.