Class LockTable
java.lang.Object
org.apache.derby.vti.VTITemplate
org.apache.derby.diag.LockTable
- All Implemented Interfaces:
AutoCloseable, ResultSet, Wrapper, AwareVTI, VTICosting
LockTable is a virtual table that shows all locks currently held in
the database.
This virtual table can be invoked by calling it directly
select * from SYSCS_DIAG.LOCK_TABLE
The LockTable virtual table takes a snap shot of the lock table while the system is in flux, so it is possible that some locks may be in transition state while the snap shot is taken. We choose to do this rather then impose extranous timing restrictions so that the use of this tool will not alter the normal timing and flow of execution in the application.
The LockTable virtual table has the following columns:
- XID varchar(15) - not nullable. The transaction id, this can be joined with the TransactionTable virtual table's XID.
- TYPE varchar(5) - nullable. The type of lock, ROW, TABLE, or LATCH
- MODE varchar(4) - not nullable. The mode of the lock, "S", "U", "X", "IS", "IX".
- S is shared lock (N/A to Latch)
- U is update lock (N/A to Latch)
- X is exclusive lock
- IS is intent shared lock (N/A to Latch or Row lock)
- IX is intent exclusive lock (N/A to Latch or Row lock)
- TABLENAME varchar(128) - not nullable. The name of the base table the lock is for
- LOCKNAME varchar(20) - not nullable. The name of the lock
- STATE varchar(5) - nullable. GRANT or WAIT
- TABLETYPE varchar(9) - not nullable. 'T' for user table, 'S' for system table
- LOCKCOUNT varchar(5) - not nullable. Internal lock count.
- INDEXNAME varchar(128) - normally null. If non-null, a lock is held on the index.
-
Nested Class Summary
Nested classes/interfaces inherited from class VTITemplate
VTITemplate.ColumnDescriptor -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intreturn all locks and latchesprivate static final ResultColumnDescriptor[]private Hashtableprivate final intprivate booleanstatic final intreturn only latchesprivate Enumerationprivate static final ResultSetMetaDataprivate TableNameInfostatic final intreturn only table and row locksprivate TransactionControllerprivate booleanFields inherited from interface ResultSet
CLOSE_CURSORS_AT_COMMIT, CONCUR_READ_ONLY, CONCUR_UPDATABLE, FETCH_FORWARD, FETCH_REVERSE, FETCH_UNKNOWN, HOLD_CURSORS_OVER_COMMIT, TYPE_FORWARD_ONLY, TYPE_SCROLL_INSENSITIVE, TYPE_SCROLL_SENSITIVEFields inherited from interface VTICosting
defaultEstimatedCost, defaultEstimatedRowCount -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Convert the lock information into a hashtable.doublegetEstimatedCostPerInstantiation(VTIEnvironment vtiEnvironment) Get the estimated cost for a single instantiation of a Table Function.doublegetEstimatedRowCount(VTIEnvironment vtiEnvironment) Get the estimated row count for a single scan of a Table Function.getString(int columnNumber) All columns in TransactionTable VTI are of String type.booleannext()booleansupportsMultipleInstantiations(VTIEnvironment vtiEnvironment) Find out if the ResultSet of the Table Function can be instantiated multiple times.booleanwasNull()Methods inherited from class VTITemplate
absolute, afterLast, beforeFirst, cancelRowUpdates, clearWarnings, deleteRow, findColumn, first, getArray, getArray, getAsciiStream, getAsciiStream, getBigDecimal, getBigDecimal, getBigDecimal, getBigDecimal, getBinaryStream, getBinaryStream, getBlob, getBlob, getBoolean, getBoolean, getByte, getByte, getBytes, getBytes, getCharacterStream, getCharacterStream, getClob, getClob, getConcurrency, getContext, getCursorName, getDate, getDate, getDate, getDate, getDouble, getDouble, getFetchDirection, getFetchSize, getFloat, getFloat, getHoldability, getInt, getInt, getLong, getLong, getNCharacterStream, getNCharacterStream, getNClob, getNClob, getNString, getNString, getObject, getObject, getObject, getObject, getObject, getObject, getRef, getRef, getReturnTableSignature, getRow, getRowId, getRowId, getShort, getShort, getSQLXML, getSQLXML, getStatement, getString, getTime, getTime, getTime, getTime, getTimestamp, getTimestamp, getTimestamp, getTimestamp, getType, getUnicodeStream, getUnicodeStream, getURL, getURL, getWarnings, insertRow, isAfterLast, isBeforeFirst, isClosed, isFirst, isLast, isWrapperFor, last, moveToCurrentRow, moveToInsertRow, notImplemented, previous, refreshRow, relative, rowDeleted, rowInserted, rowUpdated, setContext, setFetchDirection, setFetchSize, unwrap, updateArray, updateArray, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateBigDecimal, updateBigDecimal, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBlob, updateBlob, updateBlob, updateBlob, updateBlob, updateBlob, updateBoolean, updateBoolean, updateByte, updateByte, updateBytes, updateBytes, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateClob, updateClob, updateClob, updateClob, updateClob, updateClob, updateDate, updateDate, updateDouble, updateDouble, updateFloat, updateFloat, updateInt, updateInt, updateLong, updateLong, updateNCharacterStream, updateNCharacterStream, updateNCharacterStream, updateNCharacterStream, updateNClob, updateNClob, updateNClob, updateNClob, updateNClob, updateNClob, updateNString, updateNString, updateNull, updateNull, updateObject, updateObject, updateObject, updateObject, updateRef, updateRef, updateRow, updateRowId, updateRowId, updateShort, updateShort, updateSQLXML, updateSQLXML, updateString, updateString, updateTime, updateTime, updateTimestamp, updateTimestampMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ResultSet
updateObject, updateObject, updateObject, updateObject
-
Field Details
-
LATCH
public static final int LATCHreturn only latches- See Also:
-
TABLE_AND_ROWLOCK
public static final int TABLE_AND_ROWLOCKreturn only table and row locks- See Also:
-
ALL
public static final int ALLreturn all locks and latches- See Also:
-
tc
-
currentRow
-
lockTable
-
wasNull
private boolean wasNull -
initialized
private boolean initialized -
flag
private final int flag -
tabInfo
-
columnInfo
-
metadata
-
-
Constructor Details
-
LockTable
public LockTable()The normal way of instantiating a LockTable, equivalent to LockTable(org.apache.derby.diag.LockTable->TABLE_AND_ROWLOCK). Only shows row and table lock and not latches. Latches are generally held for very short duration and are not of interest to Derby users. Only under abnormal circumstances will one be interested in looking at latches. -
LockTable
public LockTable(int flag) This call is intrusive and should only be used under the supervision of technical support. Create an instance of the lock table which has transient latches as well as locks.
-
-
Method Details
-
getMetaData
- Specified by:
getMetaDatain interfaceResultSet- Overrides:
getMetaDatain classVTITemplate- See Also:
-
next
- Specified by:
nextin interfaceResultSet- Throws:
SQLException- if no transaction context can be found, or other Derby internal errors are encountered.- See Also:
-
close
public void close()- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceResultSet- See Also:
-
getString
All columns in TransactionTable VTI are of String type.- Specified by:
getStringin interfaceResultSet- Overrides:
getStringin classVTITemplate- See Also:
-
wasNull
public boolean wasNull()- Specified by:
wasNullin interfaceResultSet- Overrides:
wasNullin classVTITemplate- See Also:
-
getEstimatedRowCount
Description copied from interface:VTICostingGet the estimated row count for a single scan of a Table Function.- Specified by:
getEstimatedRowCountin interfaceVTICosting- Parameters:
vtiEnvironment- The state variable for optimizing the Table Function.- Returns:
- The estimated row count for a single scan of the Table Function.
- See Also:
-
getEstimatedCostPerInstantiation
Description copied from interface:VTICostingGet the estimated cost for a single instantiation of a Table Function.- Specified by:
getEstimatedCostPerInstantiationin interfaceVTICosting- Parameters:
vtiEnvironment- The state variable for optimizing the Table Function.- Returns:
- The estimated cost for a single instantiation of the Table Function.
- See Also:
-
supportsMultipleInstantiations
Description copied from interface:VTICostingFind out if the ResultSet of the Table Function can be instantiated multiple times.- Specified by:
supportsMultipleInstantiationsin interfaceVTICosting- Parameters:
vtiEnvironment- The state variable for optimizing the Table Function.- Returns:
- false
- See Also:
-
dumpLock
Convert the lock information into a hashtable.- Throws:
StandardException
-