Top Description Fields Constructors Methods
org.hsqldb

pack-priv Class TransactionManagerCommon

extends Object
Class Inheritance
Known Direct Subclasses
org.hsqldb.TransactionManagerMV2PL, org.hsqldb.TransactionManagerMVCC, org.hsqldb.TransactionManager2PL
Imports
java.util.concurrent.atomic.AtomicInteger, .AtomicLong, java.util.concurrent.locks.ReentrantReadWriteLock, org.hsqldb.HsqlNameManager.HsqlName, org.hsqldb.error.Error, .ErrorCode, org.hsqldb.lib.ArrayUtil, .HashMap, .HsqlArrayList, .Iterator, .LongDeque, .MultiValueHashMap, .OrderedHashSet

Shared code for TransactionManager classes
Author
Fred Toussi (fredt@users dot sourceforge.net)
Since
2.0.0
Version
2.7.3

Field Summary

Modifier and TypeField and Description
pack-priv HsqlNameManager.HsqlName[]
pack-priv Database
pack-priv volatile boolean
hasExpired

Normally false.

pack-priv LongDeque
liveTransactionSCNs

live transactions keeping committed transactions from being merged

pack-priv Session
pack-priv ReentrantReadWriteLock
pack-priv AtomicLong
systemChangeNumber

global timestamp for database

pack-priv MultiValueHashMap<HsqlNameManager.HsqlName, Session>
pack-priv HashMap<HsqlNameManager.HsqlName, Session>
pack-priv AtomicInteger
pack-priv int
pack-priv ReentrantReadWriteLock.WriteLock

Constructor Summary

AccessConstructor and Description
pack-priv

Method Summary

Modifier and TypeMethod and Description
public void
pack-priv final void
pack-priv final void
pack-priv static boolean
pack-priv final boolean
checkDeadlock(Session session, Session other)

pack-priv final void
pack-priv void
pack-priv final void
finaliseRows(Session session, Object[] list, int start, int limit)

pack-priv final long
public final long
getNextSystemChangeNumber()

gets the next timestamp for an action

pack-priv final RowAction[]
getRowActionList()

Return an array of all row actions sorted by System Change No.

pack-priv final void
pack-priv final void
pack-priv final boolean
hasLocks(Session session, Statement cs)

pack-priv final void
pack-priv final void
mergeTransaction(RowAction[] list, int start, int limit, long timestamp)

merge a transaction committed at a given timestamp.

pack-priv final void
pack-priv final void
pack-priv final void
pack-priv final void
pack-priv final void
pack-priv void
resetSession(Session session, Session targetSession, long statementTimestamp, int mode)

pack-priv void
setTransactionControl(Session session, int mode)

pack-priv final boolean
pack-priv final void
pack-priv final void
pack-priv final void
pack-priv final Statement
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

catalogNameListback to summary
pack-priv HsqlNameManager.HsqlName[] catalogNameList
databaseback to summary
pack-priv Database database
hasExpiredback to summary
pack-priv volatile boolean hasExpired

Normally false. When SET DATABASE TRANSACTION CONTROL is used to change the transaction control model, the old instance of TransactionManager is set as expired.

liveTransactionSCNsback to summary
pack-priv LongDeque liveTransactionSCNs

live transactions keeping committed transactions from being merged

lobSessionback to summary
pack-priv Session lobSession
lockback to summary
pack-priv ReentrantReadWriteLock lock
systemChangeNumberback to summary
pack-priv AtomicLong systemChangeNumber

global timestamp for database

tableReadLocksback to summary
pack-priv MultiValueHashMap<HsqlNameManager.HsqlName, Session> tableReadLocks
tableWriteLocksback to summary
pack-priv HashMap<HsqlNameManager.HsqlName, Session> tableWriteLocks
transactionCountback to summary
pack-priv AtomicInteger transactionCount
txModelback to summary
pack-priv int txModel
writeLockback to summary
pack-priv ReentrantReadWriteLock.WriteLock writeLock

Constructor Detail

TransactionManagerCommonback to summary
pack-priv TransactionManagerCommon(Database database)

Method Detail

abortActionback to summary
public void abortAction(Session session)
adjustLobUsageback to summary
pack-priv final void adjustLobUsage(Session session)
beginTransactionCommonback to summary
pack-priv final void beginTransactionCommon(Session session)
checkDeadlockback to summary
pack-priv static boolean checkDeadlock(Session session, OrderedHashSet<Session> newWaits)
checkDeadlockback to summary
pack-priv final boolean checkDeadlock(Session session, Session other)
endActionTPLback to summary
pack-priv final void endActionTPL(Session session)
endTransactionTPLback to summary
pack-priv void endTransactionTPL(Session session)
finaliseRowsback to summary
pack-priv final void finaliseRows(Session session, Object[] list, int start, int limit)
getFirstLiveTransactionTimestampback to summary
pack-priv final long getFirstLiveTransactionTimestamp()
getNextSystemChangeNumberback to summary
public final long getNextSystemChangeNumber()

gets the next timestamp for an action

getRowActionListback to summary
pack-priv final RowAction[] getRowActionList()

Return an array of all row actions sorted by System Change No.

getTransactionAndPreSessionsback to summary
pack-priv final void getTransactionAndPreSessions(Session session)
getTransactionSessionsback to summary
pack-priv final void getTransactionSessions(Session session)
hasLocksback to summary
pack-priv final boolean hasLocks(Session session, Statement cs)
lockTablesTPLback to summary
pack-priv final void lockTablesTPL(Session session, Statement cs)
mergeTransactionback to summary
pack-priv final void mergeTransaction(RowAction[] list, int start, int limit, long timestamp)

merge a transaction committed at a given timestamp.

persistCommitback to summary
pack-priv final void persistCommit(Session session)
prepareResetback to summary
pack-priv final void prepareReset(Session session)
resetLatchesback to summary
pack-priv final void resetLatches(Session session)
resetLatchesMidTransactionback to summary
pack-priv final void resetLatchesMidTransaction(Session session)
resetLocksback to summary
pack-priv final void resetLocks(Session session)
resetSessionback to summary
pack-priv void resetSession(Session session, Session targetSession, long statementTimestamp, int mode)
setTransactionControlback to summary
pack-priv void setTransactionControl(Session session, int mode)
setWaitedSessionsTPLback to summary
pack-priv final boolean setWaitedSessionsTPL(Session session, Statement cs)
setWaitingSessionTPLback to summary
pack-priv final void setWaitingSessionTPL(Session session)
unlockReadTablesTPLback to summary
pack-priv final void unlockReadTablesTPL(Session session, HsqlNameManager.HsqlName[] locks)
unlockTablesTPLback to summary
pack-priv final void unlockTablesTPL(Session session)
updateCurrentStatementback to summary
pack-priv final Statement updateCurrentStatement(Session session, Statement cs)