Top Description Fields Constructors Methods
org.apache.derby.diag

public Class LockTable

extends VTITemplate
implements VTICosting
Class Inheritance
All Implemented Interfaces
org.apache.derby.vti.VTICosting
Imports
org.apache.derby.impl.services.locks.TableNameInfo, org.apache.derby.iapi.services.locks.LockFactory, .Latch, .Lockable, .VirtualLockTable, org.apache.derby.shared.common.sanity.SanityManager, org.apache.derby.shared.common.error.StandardException, .PublicAPI, org.apache.derby.iapi.sql.conn.LanguageConnectionContext, .ConnectionUtil, org.apache.derby.iapi.store.access.TransactionController, org.apache.derby.iapi.sql.ResultColumnDescriptor, org.apache.derby.impl.jdbc.EmbedResultSetMetaData, java.util.Hashtable, .Enumeration, java.sql.ResultSetMetaData, .SQLException, .Types, org.apache.derby.vti.VTITemplate, .VTICosting, .VTIEnvironment

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:

Field Summary

Modifier and TypeField and Description
public static final int
ALL

return all locks and latches

private static final ResultColumnDescriptor[]
private Hashtable<K, V>
private final int
private boolean
public static final int
LATCH

return only latches

private Enumeration<E>
private static final ResultSetMetaData
private TableNameInfo
public static final int
TABLE_AND_ROWLOCK

return only table and row locks

private TransactionController
private boolean

Constructor Summary

AccessConstructor and Description
public
LockTable()

The normal way of instantiating a LockTable, equivalent to LockTable(org.apache.derby.diag.LockTable->TABLE_AND_ROWLOCK).

public
LockTable(int flag)

This call is intrusive and should only be used under the supervision of technical support.

Method Summary

Modifier and TypeMethod and Description
public void
close()

Implements java.sql.ResultSet.close.

Releases this ResultSet object's database and JDBC resources immediately instead of waiting for this to happen when it is automatically closed.

private Hashtable<String, Object>
dumpLock(Latch lock)

Convert the lock information into a hashtable.

public double
getEstimatedCostPerInstantiation(VTIEnvironment
The state variable for optimizing the Table Function.
vtiEnvironment
)

Implements org.apache.derby.vti.VTICosting.getEstimatedCostPerInstantiation.

Get the estimated cost for a single instantiation of a Table Function.

public double
getEstimatedRowCount(VTIEnvironment
The state variable for optimizing the Table Function.
vtiEnvironment
)

Implements org.apache.derby.vti.VTICosting.getEstimatedRowCount.

Get the estimated row count for a single scan of a Table Function.

public ResultSetMetaData
getMetaData()

Overrides org.apache.derby.vti.VTITemplate.getMetaData.

Implements java.sql.ResultSet.getMetaData.

Retrieves the number, types and properties of this ResultSet object's columns.

public String
getString(int
the first column is 1, the second is 2, ...
columnNumber
)

Overrides org.apache.derby.vti.VTITemplate.getString.

Implements java.sql.ResultSet.getString.

All columns in TransactionTable VTI are of String type.

public boolean
next()

Implements java.sql.ResultSet.next.

Moves the cursor forward one row from its current position.

public boolean

Returns:

false
supportsMultipleInstantiations
(VTIEnvironment
The state variable for optimizing the Table Function.
vtiEnvironment
)

Implements org.apache.derby.vti.VTICosting.supportsMultipleInstantiations.

Find out if the ResultSet of the Table Function can be instantiated multiple times.

public boolean
wasNull()

Overrides org.apache.derby.vti.VTITemplate.wasNull.

Implements java.sql.ResultSet.wasNull.

Reports whether the last column read had a value of SQL NULL.

Inherited from org.apache.derby.vti.VTITemplate:
absoluteafterLastbeforeFirstcancelRowUpdatesclearWarningsdeleteRowfindColumnfirstgetArraygetArraygetAsciiStreamgetAsciiStreamgetBigDecimalgetBigDecimalgetBigDecimalgetBigDecimalgetBinaryStreamgetBinaryStreamgetBlobgetBlobgetBooleangetBooleangetBytegetBytegetBytesgetBytesgetCharacterStreamgetCharacterStreamgetClobgetClobgetConcurrencygetContextgetCursorNamegetDategetDategetDategetDategetDoublegetDoublegetFetchDirectiongetFetchSizegetFloatgetFloatgetHoldabilitygetIntgetIntgetLonggetLonggetNCharacterStreamgetNCharacterStreamgetNClobgetNClobgetNStringgetNStringgetObjectgetObjectgetObjectgetObjectgetObjectgetObjectgetRefgetRefgetReturnTableSignaturegetRowgetRowIdgetRowIdgetShortgetShortgetSQLXMLgetSQLXMLgetStatementgetStringgetTimegetTimegetTimegetTimegetTimestampgetTimestampgetTimestampgetTimestampgetTypegetUnicodeStreamgetUnicodeStreamgetURLgetURLgetWarningsinsertRowisAfterLastisBeforeFirstisClosedisFirstisLastisWrapperForlastmoveToCurrentRowmoveToInsertRownotImplementedpreviousrefreshRowrelativerowDeletedrowInsertedrowUpdatedsetContextsetFetchDirectionsetFetchSizeunwrapupdateArrayupdateArrayupdateAsciiStreamupdateAsciiStreamupdateAsciiStreamupdateAsciiStreamupdateAsciiStreamupdateAsciiStreamupdateBigDecimalupdateBigDecimalupdateBinaryStreamupdateBinaryStreamupdateBinaryStreamupdateBinaryStreamupdateBinaryStreamupdateBinaryStreamupdateBlobupdateBlobupdateBlobupdateBlobupdateBlobupdateBlobupdateBooleanupdateBooleanupdateByteupdateByteupdateBytesupdateBytesupdateCharacterStreamupdateCharacterStreamupdateCharacterStreamupdateCharacterStreamupdateCharacterStreamupdateCharacterStreamupdateClobupdateClobupdateClobupdateClobupdateClobupdateClobupdateDateupdateDateupdateDoubleupdateDoubleupdateFloatupdateFloatupdateIntupdateIntupdateLongupdateLongupdateNCharacterStreamupdateNCharacterStreamupdateNCharacterStreamupdateNCharacterStreamupdateNClobupdateNClobupdateNClobupdateNClobupdateNClobupdateNClobupdateNStringupdateNStringupdateNullupdateNullupdateObjectupdateObjectupdateObjectupdateObjectupdateRefupdateRefupdateRowupdateRowIdupdateRowIdupdateShortupdateShortupdateSQLXMLupdateSQLXMLupdateStringupdateStringupdateTimeupdateTimeupdateTimestampupdateTimestamp

Field Detail

ALLback to summary
public static final int ALL

return all locks and latches

columnInfoback to summary
private static final ResultColumnDescriptor[] columnInfo
currentRowback to summary
private Hashtable<K, V> currentRow
flagback to summary
private final int flag
initializedback to summary
private boolean initialized
LATCHback to summary
public static final int LATCH

return only latches

lockTableback to summary
private Enumeration<E> lockTable
metadataback to summary
private static final ResultSetMetaData metadata
tabInfoback to summary
private TableNameInfo tabInfo
TABLE_AND_ROWLOCKback to summary
public static final int TABLE_AND_ROWLOCK

return only table and row locks

tcback to summary
private TransactionController tc
wasNullback to summary
private boolean wasNull

Constructor Detail

LockTableback to summary
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.

LockTableback to summary
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 Detail

closeback to summary
public void close()

Implements java.sql.ResultSet.close.

Doc from java.sql.ResultSet.close.

Releases this ResultSet object's database and JDBC resources immediately instead of waiting for this to happen when it is automatically closed.

The closing of a ResultSet object does not close the Blob, Clob or NClob objects created by the ResultSet. Blob, Clob or NClob objects remain valid for at least the duration of the transaction in which they are created, unless their free method is invoked.

When a ResultSet is closed, any ResultSetMetaData instances that were created by calling the getMetaData method remain accessible.

Note

A ResultSet object is automatically closed by the Statement object that generated it when that Statement object is closed, re-executed, or is used to retrieve the next result from a sequence of multiple results.

Calling the method close on a ResultSet object that is already closed is a no-op.

See Also
java.sql.ResultSet#close
dumpLockback to summary
private Hashtable<String, Object> dumpLock(Latch lock) throws StandardException

Convert the lock information into a hashtable.

getEstimatedCostPerInstantiationback to summary
public double getEstimatedCostPerInstantiation(VTIEnvironment vtiEnvironment)

Implements org.apache.derby.vti.VTICosting.getEstimatedCostPerInstantiation.

Doc from org.apache.derby.vti.VTICosting.getEstimatedCostPerInstantiation.

Get the estimated cost for a single instantiation of a Table Function.

Parameters
vtiEnvironment:VTIEnvironment

The state variable for optimizing the Table Function.

Returns:double

The estimated cost for a single instantiation of the Table Function.

See Also
VTICosting#getEstimatedCostPerInstantiation
getEstimatedRowCountback to summary
public double getEstimatedRowCount(VTIEnvironment vtiEnvironment)

Implements org.apache.derby.vti.VTICosting.getEstimatedRowCount.

Doc from org.apache.derby.vti.VTICosting.getEstimatedRowCount.

Get the estimated row count for a single scan of a Table Function.

Parameters
vtiEnvironment:VTIEnvironment

The state variable for optimizing the Table Function.

Returns:double

The estimated row count for a single scan of the Table Function.

See Also
VTICosting#getEstimatedRowCount
getMetaDataback to summary
public ResultSetMetaData getMetaData()

Overrides org.apache.derby.vti.VTITemplate.getMetaData.

Implements java.sql.ResultSet.getMetaData.

Doc from java.sql.ResultSet.getMetaData.

Retrieves the number, types and properties of this ResultSet object's columns.

Returns:ResultSetMetaData

the description of this ResultSet object's columns

See Also
java.sql.ResultSet#getMetaData
getStringback to summary
public String getString(int columnNumber)

Overrides org.apache.derby.vti.VTITemplate.getString.

Implements java.sql.ResultSet.getString.

All columns in TransactionTable VTI are of String type.

Parameters
columnNumber:int

Doc from java.sql.ResultSet.getString.

the first column is 1, the second is 2, ...

Returns:String

Doc from java.sql.ResultSet.getString.

the column value; if the value is SQL NULL, the value returned is null

See Also
java.sql.ResultSet#getString
nextback to summary
public boolean next() throws SQLException

Implements java.sql.ResultSet.next.

Doc from java.sql.ResultSet.next.

Moves the cursor forward one row from its current position. A ResultSet cursor is initially positioned before the first row; the first call to the method next makes the first row the current row; the second call makes the second row the current row, and so on.

When a call to the next method returns false, the cursor is positioned after the last row. Any invocation of a ResultSet method which requires a current row will result in a SQLException being thrown. If the result set type is TYPE_FORWARD_ONLY, it is vendor specified whether their JDBC driver implementation will return false or throw an SQLException on a subsequent call to next.

If an input stream is open for the current row, a call to the method next will implicitly close it. A ResultSet object's warning chain is cleared when a new row is read.

Returns:boolean

true if the new current row is valid; false if there are no more rows

Exceptions
SQLException:
if no transaction context can be found, or other Derby internal errors are encountered.
See Also
java.sql.ResultSet#next
supportsMultipleInstantiationsback to summary
public boolean supportsMultipleInstantiations(VTIEnvironment vtiEnvironment)

Implements org.apache.derby.vti.VTICosting.supportsMultipleInstantiations.

Doc from org.apache.derby.vti.VTICosting.supportsMultipleInstantiations.

Find out if the ResultSet of the Table Function can be instantiated multiple times.

Parameters
vtiEnvironment:VTIEnvironment

The state variable for optimizing the Table Function.

Returns:boolean

false

See Also
VTICosting#supportsMultipleInstantiations
wasNullback to summary
public boolean wasNull()

Overrides org.apache.derby.vti.VTITemplate.wasNull.

Implements java.sql.ResultSet.wasNull.

Doc from java.sql.ResultSet.wasNull.

Reports whether the last column read had a value of SQL NULL. Note that you must first call one of the getter methods on a column to try to read its value and then call the method wasNull to see if the value read was SQL NULL.

Returns:boolean

true if the last column value read was SQL NULL and false otherwise

See Also
java.sql.ResultSet#wasNull