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

Class RowLocking3Escalate

    • Method Detail

      • lockContainer

        public boolean lockContainer(Transaction t,
                                     ContainerHandle container,
                                     boolean waitForLock,
                                     boolean forUpdate)
                              throws StandardException
        Escalates Row Locking 3 to Container Locking 3.

        This call is made by code which tracks the number of locks on a container. When the number of locks exceeds the escalate threshold the caller creates this new locking policy, calls lockContainer(), and substitues it for the old locking policy. The lockContainer call determines which table lock to get (S or X), gets that table lock, and then releases the row locks on the table. It is assumed that this is called on a open container for lock only.

        Specified by:
        lockContainer in interface LockingPolicy
        Overrides:
        lockContainer in class ContainerLocking3
        Parameters:
        t - Transaction to associate lock with.
        container - Container to lock.
        waitForLock - Ignored - will never wait for a lock.
        forUpdate - Ignored, mode determined from current lock state.
        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,
                                         RecordHandle record,
                                         boolean waitForLock,
                                         boolean forUpdate)
                                  throws StandardException
        Description copied from interface: LockingPolicy
        Called before a record is fetched.
        Specified by:
        lockRecordForRead in interface LockingPolicy
        Parameters:
        t - Transaction to associate lock with.
        container - Open Container used to get record. Will be used to row locks by the container they belong to.
        record - Record to lock.
        waitForLock - Should lock request wait until granted?
        forUpdate - Should container be locked for update, or read?
        Throws:
        StandardException - Standard Derby error policy
        See Also:
        Page
      • zeroDurationLockRecordForWrite

        public boolean zeroDurationLockRecordForWrite(Transaction t,
                                                      RecordHandle record,
                                                      boolean lockForPreviousKey,
                                                      boolean waitForLock)
                                               throws StandardException
        Description copied from interface: LockingPolicy
        Request a write lock which will be released immediately upon grant.
        Specified by:
        zeroDurationLockRecordForWrite in interface LockingPolicy
        Parameters:
        t - Transaction to associate lock with.
        record - Record to lock.
        lockForPreviousKey - Lock is for a previous key of a insert.
        waitForLock - Should lock request wait until granted?
        Returns:
        true if the lock was obtained, false if it wasn't. False should only be returned if the waitForLock argument was set to "false," and the lock was unavailable.
        Throws:
        StandardException - Standard Derby error policy
        See Also:
        Page
      • lockRecordForWrite

        public boolean lockRecordForWrite(Transaction t,
                                          RecordHandle record,
                                          boolean lockForInsert,
                                          boolean waitForLock)
                                   throws StandardException
        Description copied from interface: LockingPolicy
        Called before a record is inserted, updated or deleted. If zeroDuration is true then lock is released immediately after it has been granted.
        Specified by:
        lockRecordForWrite in interface LockingPolicy
        Parameters:
        t - Transaction to associate lock with.
        record - Record to lock.
        lockForInsert - Lock is for an insert.
        waitForLock - Should lock request wait until granted?
        Returns:
        true if the lock was obtained, false if it wasn't. False should only be returned if the waitForLock argument was set to "false," and the lock was unavailable.
        Throws:
        StandardException - Standard Derby error policy
        See Also:
        Page

DataMelt 3.0 © DataMelt by jWork.ORG

Ads help maintain this website.