|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
public interface LockingPolicy
Any object that implements this interface can be used as a locking policy for accessing a container.
The locking policy must use the defined lock qualifiers (ContainerLock.CIS, RowLock.RS, etc.) and the standard lock manager. (A locking policy that just performs no locking wouldn't need to use these :-)
A locking policy must use the object that is an instance of Transaction
(originally obtained via startTransaction() in RawStoreFactory) as the
compatibilitySpace for the LockFactory calls.
A locking policy must use the passed in transaction as the
compatability space and the lock group.
This chain (group) of locks has the following defined behaviour
ContainerHandle,
RecordHandle,
LockFactory,
Lockable| Field Summary | |
|---|---|
static int |
MODE_CONTAINER
ContainerHandle level locking. |
static int |
MODE_NONE
No locking what so ever, isolation parameter will be ignored by getLockingPolicy(). |
static int |
MODE_RECORD
Record level locking. |
| Method Summary | |
|---|---|
int |
getMode()
Get the mode of this policy |
boolean |
lockContainer(Transaction t,
ContainerHandle container,
boolean waitForLock,
boolean forUpdate)
Called when a container is opened. |
boolean |
lockRecordForRead(Transaction t,
ContainerHandle container,
RecordHandle record,
boolean waitForLock,
boolean forUpdate)
Called before a record is fetched. |
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)
Called when a container is closed. |
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. |
| Field Detail |
|---|
static final int MODE_NONE
RawStoreFactory,
Constant Field Valuesstatic final int MODE_RECORD
static final int MODE_CONTAINER
| Method Detail |
|---|
boolean lockContainer(Transaction t,
ContainerHandle container,
boolean waitForLock,
boolean forUpdate)
throws StandardException
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?
StandardException - Standard Derby error policyContainerHandle
void unlockContainer(Transaction t,
ContainerHandle container)
ContainerHandle,
ContainerHandle.close()
boolean lockRecordForRead(Transaction t,
ContainerHandle container,
RecordHandle record,
boolean waitForLock,
boolean forUpdate)
throws StandardException
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 Derby error policyPage
boolean zeroDurationLockRecordForWrite(Transaction t,
RecordHandle record,
boolean lockForPreviousKey,
boolean waitForLock)
throws StandardException
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 Derby error policyPage
boolean lockRecordForWrite(Transaction t,
RecordHandle record,
boolean lockForInsert,
boolean waitForLock)
throws StandardException
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 Derby error policyPage
void unlockRecordAfterRead(Transaction t,
ContainerHandle container,
RecordHandle record,
boolean forUpdate,
boolean row_qualified)
throws StandardException
StandardException - Standard Derby error policyPageint getMode()
|
Built on Wed 2013-06-12 15:21:56+0000, from revision ??? | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||