public class BasicLocker extends Locker
defaultNoWait, deleteInfo, envImpl, handleLockToHandleMap, handleToHandleLockMap, id, lockManager, readUncommittedDefault, thread| Modifier | Constructor and Description |
|---|---|
protected |
BasicLocker(EnvironmentImpl env)
Creates a BasicLocker.
|
protected |
BasicLocker(EnvironmentImpl env,
boolean noWait)
Creates a BasicLocker with a noWait argument.
|
protected |
BasicLocker(EnvironmentImpl env,
boolean noWait,
boolean noAPIReadLock)
Creates a BasicLocker with the noWait and noAPIReadLock arguments.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
addLock(java.lang.Long nodeId,
LockType type,
LockGrantType grantStatus)
Add a lock to set owned by this transaction.
|
protected void |
checkState(boolean ignoreCalledByAbort) |
LockStats |
collectStats(LockStats stats)
stats
|
static BasicLocker |
createBasicLocker(EnvironmentImpl env) |
static BasicLocker |
createBasicLocker(EnvironmentImpl env,
boolean noWait) |
static BasicLocker |
createBasicLocker(EnvironmentImpl env,
boolean noWait,
boolean noAPIReadLock) |
boolean |
createdNode(long nodeId)
Always false for this txn.
|
protected long |
generateId(TxnManager txnManager,
long ignore)
BasicLockers always have a fixed id, because they are never used for
recovery.
|
long |
getAbortLsn(long nodeId) |
Txn |
getTxnLocker()
No transactional locker is available.
|
WriteLockInfo |
getWriteLockInfo(long nodeId) |
Locker |
getWriteOwnerLocker(long nodeId)
Get the txn that owns the lock on this node.
|
boolean |
isReadCommittedIsolation()
Is never read-committed isolation.
|
boolean |
isSerializableIsolation()
Is never serializable isolation.
|
boolean |
isTransactional()
Is never transactional.
|
(package private) LockResult |
lockInternal(long nodeId,
LockType lockType,
boolean noWait,
DatabaseImpl database)
Abstract method to a blocking or non-blocking lock of the given type on
the given nodeId.
|
void |
markDeleteAtTxnEnd(DatabaseImpl db,
boolean deleteAtCommit)
Database operations like remove and truncate leave behind
residual DatabaseImpls that must be purged at transaction
commit or abort.
|
(package private) void |
moveWriteToReadLock(long nodeId,
Lock lock)
A lock is being demoted.
|
Locker |
newNonTxnLocker()
Throws UnsupportedOperationException unconditionally.
|
void |
nonTxnOperationEnd()
Release locks and close the cursor at the end of the operation.
|
void |
operationEnd(boolean operationOK)
Release locks and close the cursor at the end of the operation.
|
void |
registerCursor(CursorImpl cursor)
This txn doesn't store cursors.
|
void |
releaseNonTxnLocks()
Releases all locks, since all locks held by this locker are
non-transactional.
|
(package private) void |
removeLock(long nodeId)
Remove a lock from the set owned by this txn.
|
void |
setHandleLockOwner(boolean operationOK,
Database dbHandle,
boolean dbIsClosing)
Transfer any MapLN locks to the db handle.
|
void |
unRegisterCursor(CursorImpl cursor)
This txn doesn't store cursors.
|
addDeleteInfo, addToHandleMaps, close, demoteLock, dumpLockTable, getDefaultNoWait, getId, getLockTimeout, getTxnStartMillis, getTxnTimeout, getWaitingFor, initApiReadLock, isHandleLockTransferrable, isReadUncommittedDefault, isTimedOut, lock, nonBlockingLock, operationEnd, operationEnd, releaseLock, setLockTimeout, setOnlyAbortable, setTxnTimeout, setWaitingFor, sharesLocksWith, toString, transferHandleLock, transferHandleLockToHandle, unregisterHandleprotected BasicLocker(EnvironmentImpl env) throws DatabaseException
DatabaseExceptionprotected BasicLocker(EnvironmentImpl env, boolean noWait) throws DatabaseException
DatabaseExceptionprotected BasicLocker(EnvironmentImpl env, boolean noWait, boolean noAPIReadLock) throws DatabaseException
DatabaseExceptionpublic static BasicLocker createBasicLocker(EnvironmentImpl env) throws DatabaseException
DatabaseExceptionpublic static BasicLocker createBasicLocker(EnvironmentImpl env, boolean noWait) throws DatabaseException
DatabaseExceptionpublic static BasicLocker createBasicLocker(EnvironmentImpl env, boolean noWait, boolean noAPIReadLock) throws DatabaseException
DatabaseExceptionprotected long generateId(TxnManager txnManager, long ignore)
generateId in class Lockerprotected void checkState(boolean ignoreCalledByAbort)
throws DatabaseException
checkState in class LockerDatabaseExceptionLockResult lockInternal(long nodeId, LockType lockType, boolean noWait, DatabaseImpl database) throws DatabaseException
LockerlockInternal in class LockernodeId - is the node to lock.lockType - is the type of lock to request.noWait - is true to override the defaultNoWait setting. If true,
or if defaultNoWait is true, throws LockNotGrantedException if the lock
cannot be granted without waiting.database - is the database containing nodeId.DeadlockException - if acquiring a blocking lock would result in a
deadlock.DatabaseExceptionLocker.lockInternal(long, com.sleepycat.je.txn.LockType, boolean, com.sleepycat.je.dbi.DatabaseImpl)public Locker getWriteOwnerLocker(long nodeId) throws DatabaseException
DatabaseExceptionpublic boolean isTransactional()
isTransactional in class Lockerpublic boolean isSerializableIsolation()
isSerializableIsolation in class Lockerpublic boolean isReadCommittedIsolation()
isReadCommittedIsolation in class Lockerpublic Txn getTxnLocker()
getTxnLocker in class Lockerpublic Locker newNonTxnLocker() throws DatabaseException
newNonTxnLocker in class LockerDatabaseExceptionpublic void releaseNonTxnLocks()
throws DatabaseException
releaseNonTxnLocks in class LockerDatabaseExceptionpublic void nonTxnOperationEnd()
throws DatabaseException
nonTxnOperationEnd in class LockerDatabaseExceptionpublic void operationEnd(boolean operationOK)
throws DatabaseException
operationEnd in class LockeroperationOK - is whether the operation succeeded, since
that may impact ending behavior. (i.e for an auto Txn)DatabaseExceptionpublic void setHandleLockOwner(boolean operationOK,
Database dbHandle,
boolean dbIsClosing)
throws DatabaseException
setHandleLockOwner in class LockerDatabaseExceptionpublic void registerCursor(CursorImpl cursor) throws DatabaseException
registerCursor in class LockerDatabaseExceptionpublic void unRegisterCursor(CursorImpl cursor) throws DatabaseException
unRegisterCursor in class LockerDatabaseExceptionpublic long getAbortLsn(long nodeId)
throws DatabaseException
getAbortLsn in class LockerDatabaseExceptionpublic WriteLockInfo getWriteLockInfo(long nodeId) throws DatabaseException
getWriteLockInfo in class LockerDatabaseExceptionpublic void markDeleteAtTxnEnd(DatabaseImpl db, boolean deleteAtCommit) throws DatabaseException
LockermarkDeleteAtTxnEnd in class LockerDatabaseExceptionprotected void addLock(java.lang.Long nodeId,
LockType type,
LockGrantType grantStatus)
throws DatabaseException
addLock in class LockerDatabaseExceptionvoid removeLock(long nodeId)
throws DatabaseException
removeLock in class LockerDatabaseExceptionpublic boolean createdNode(long nodeId)
throws DatabaseException
createdNode in class LockerDatabaseExceptionvoid moveWriteToReadLock(long nodeId,
Lock lock)
moveWriteToReadLock in class Lockerpublic LockStats collectStats(LockStats stats) throws DatabaseException
collectStats in class LockerDatabaseExceptionCopyright (c) 2004,2008 Oracle. All rights reserved.