|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.derby.impl.store.raw.xact.NoLocking
org.apache.derby.impl.store.raw.xact.ContainerLocking2
A locking policy that implements container level locking with isolation degree 2.
LockingPolicy
Field Summary | |
private LockFactory |
lf
|
Fields inherited from interface org.apache.derby.iapi.store.raw.LockingPolicy |
MODE_CONTAINER, MODE_NONE, MODE_RECORD |
Constructor Summary | |
protected |
ContainerLocking2()
|
protected |
ContainerLocking2(LockFactory lf)
|
Method Summary | |
int |
getMode()
Get the mode of this policy |
boolean |
lockContainer(Transaction t,
ContainerHandle container,
boolean waitForLock,
boolean forUpdate)
Obtain a Container shared or exclusive lock until the end of the nested transaction. |
void |
lockRecordForRead(Latch latch,
RecordHandle record,
boolean forUpdate)
Lock a record while holding a page latch. |
boolean |
lockRecordForRead(Transaction t,
ContainerHandle container,
RecordHandle record,
boolean waitForLock,
boolean forUpdate)
Called before a record is fetched. |
void |
lockRecordForWrite(Latch latch,
RecordHandle record)
Lock a record for write while holding a page latch. |
boolean |
lockRecordForWrite(Transaction t,
RecordHandle record,
boolean lockForInsert,
boolean waitForLock)
Called before a record is inserted, updated or deleted. |
void |
unlockContainer(Transaction t,
ContainerHandle container)
Unlock read locks. |
void |
unlockRecordAfterRead(Transaction t,
ContainerHandle container,
RecordHandle record,
boolean forUpdate,
boolean row_qualified)
Called after a record has been fetched. |
boolean |
zeroDurationLockRecordForWrite(Transaction t,
RecordHandle record,
boolean lockForPreviousKey,
boolean waitForLock)
Request a write lock which will be released immediately upon grant. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
private final LockFactory lf
Constructor Detail |
protected ContainerLocking2()
protected ContainerLocking2(LockFactory lf)
Method Detail |
public boolean lockContainer(Transaction t, ContainerHandle container, boolean waitForLock, boolean forUpdate) throws StandardException
lockContainer
in interface LockingPolicy
lockContainer
in class NoLocking
StandardException
- Standard Cloudscape error policypublic void unlockContainer(Transaction t, ContainerHandle container)
In Cursor stability release all read locks obtained. unlockContainer() will be called when the container is closed.
unlockContainer
in interface LockingPolicy
unlockContainer
in class NoLocking
t
- The transaction to associate the lock with.container
- Container to unlock.public int getMode()
LockingPolicy
getMode
in interface LockingPolicy
getMode
in class NoLocking
public boolean lockRecordForRead(Transaction t, ContainerHandle container, RecordHandle record, boolean waitForLock, boolean forUpdate) throws StandardException
LockingPolicy
lockRecordForRead
in interface LockingPolicy
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?
StandardException
- Standard Cloudscape error policyPage
public void lockRecordForRead(Latch latch, RecordHandle record, boolean forUpdate) throws StandardException
LockingPolicy
lockRecordForRead
in interface LockingPolicy
latch
- Latch held.record
- Record to lock.forUpdate
- Should container be locked for update, or read?
StandardException
- Standard Cloudscape error policyPage
public boolean zeroDurationLockRecordForWrite(Transaction t, RecordHandle record, boolean lockForPreviousKey, boolean waitForLock) throws StandardException
LockingPolicy
zeroDurationLockRecordForWrite
in interface LockingPolicy
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?
StandardException
- Standard Cloudscape error policyPage
public boolean lockRecordForWrite(Transaction t, RecordHandle record, boolean lockForInsert, boolean waitForLock) throws StandardException
LockingPolicy
lockRecordForWrite
in interface LockingPolicy
t
- Transaction to associate lock with.record
- Record to lock.lockForInsert
- Lock is for an insert.waitForLock
- Should lock request wait until granted?
StandardException
- Standard Cloudscape error policyPage
public void lockRecordForWrite(Latch latch, RecordHandle record) throws StandardException
LockingPolicy
lockRecordForWrite
in interface LockingPolicy
latch
- Page latch held.record
- Record to lock.
StandardException
- Standard Cloudscape error policyPage
public void unlockRecordAfterRead(Transaction t, ContainerHandle container, RecordHandle record, boolean forUpdate, boolean row_qualified) throws StandardException
LockingPolicy
unlockRecordAfterRead
in interface LockingPolicy
StandardException
- Standard Cloudscape error policyPage
|
Built on Tue 2006-10-10 19:23:47+0200, from revision exported | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |