java.lang.AutoCloseable
, java.sql.ResultSet
, java.sql.Wrapper
, AwareVTI
public class ErrorLogReader extends VTITemplate
One use of this VTI is to determine the active transactions and the SQL statements in those transactions at a given point in time, say when a deadlock or lock timeout occurred. In order to do that, you must first find the timestamp (timestampConstant) of interest in the error log. The SQL to view the active transactions at a given in time is:
SELECT vti.ts, threadid, cast(xid as int) as xid_int, cast(lccid as int) as lccid_int, logtext FROM new org.apache.derby.diag.ErrorLogReader() vti, (VALUES timestampConstant) t(ts) WHERE vti.ts <= t.ts AND vti.ts > (SELECT MAX(ts) IS NULL ? '2000-01-01 00:00:00.1' : MAX(ts) FROM new org.apache.derby.diag.ErrorLogReader() vti_i WHERE (logtext LIKE 'Committing%' OR logtext LIKE 'Rolling%') AND vti.xid = vti_i.xid AND ts < t.ts) ORDER BY xid_int, vti.ts
The ErrorLogReader virtual table has the following columns:
VTITemplate.ColumnDescriptor
Modifier and Type | Field | Description |
---|---|---|
private static java.lang.String |
BEGIN_DATABASE_STRING |
|
private static java.lang.String |
BEGIN_DRDAID_STRING |
|
private static java.lang.String |
BEGIN_EXECUTING_STRING |
|
private static java.lang.String |
BEGIN_THREAD_STRING |
|
private static java.lang.String |
BEGIN_XID_STRING |
|
private java.io.BufferedReader |
bufferedReader |
|
private static ResultColumnDescriptor[] |
columnInfo |
|
private int |
databaseIndex |
|
private int |
drdaidIndex |
|
private static java.lang.String |
END_DATABASE_STRING |
|
private static java.lang.String |
END_DRDAID_STRING |
|
private static java.lang.String |
END_EXECUTING_STRING |
|
private static java.lang.String |
END_THREAD_STRING |
|
private static java.lang.String |
END_TIMESTAMP |
|
private static java.lang.String |
END_XID_STRING |
|
private int |
endTimestampIndex |
|
private boolean |
gotFile |
|
private java.lang.String |
inputFileName |
|
private java.io.InputStreamReader |
inputFileStreamReader |
|
private java.io.InputStream |
inputStream |
|
private int |
lccidIndex |
|
private java.lang.String |
line |
|
private static java.sql.ResultSetMetaData |
metadata |
|
private static java.lang.String |
PARAMETERS_STRING |
|
private int |
threadIndex |
|
private int |
xidIndex |
Constructor | Description |
---|---|
ErrorLogReader() |
ErrorLogReader() accesses the derby.log in
derby.system.home, if set, otherwise it looks in the current directory.
|
ErrorLogReader(java.lang.String inputFileName) |
Modifier and Type | Method | Description |
---|---|---|
void |
close() |
|
java.sql.ResultSetMetaData |
getMetaData() |
|
java.lang.String |
getString(int columnNumber) |
All columns in the Db2jLogReader VTI have a of String type.
|
boolean |
next() |
|
boolean |
wasNull() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
updateObject, updateObject, updateObject, updateObject
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, updateTimestamp
private boolean gotFile
private java.io.InputStreamReader inputFileStreamReader
private java.io.InputStream inputStream
private java.io.BufferedReader bufferedReader
private java.lang.String inputFileName
private java.lang.String line
private int endTimestampIndex
private int threadIndex
private int xidIndex
private int lccidIndex
private int databaseIndex
private int drdaidIndex
private static final java.lang.String END_TIMESTAMP
private static final java.lang.String PARAMETERS_STRING
private static final java.lang.String BEGIN_THREAD_STRING
private static final java.lang.String END_THREAD_STRING
private static final java.lang.String BEGIN_XID_STRING
private static final java.lang.String END_XID_STRING
private static final java.lang.String BEGIN_DATABASE_STRING
private static final java.lang.String END_DATABASE_STRING
private static final java.lang.String BEGIN_DRDAID_STRING
private static final java.lang.String END_DRDAID_STRING
private static final java.lang.String BEGIN_EXECUTING_STRING
private static final java.lang.String END_EXECUTING_STRING
private static final ResultColumnDescriptor[] columnInfo
private static final java.sql.ResultSetMetaData metadata
public ErrorLogReader() throws StandardException
StandardException
public ErrorLogReader(java.lang.String inputFileName) throws StandardException
StandardException
public java.sql.ResultSetMetaData getMetaData()
getMetaData
in interface java.sql.ResultSet
getMetaData
in class VTITemplate
ResultSet.getMetaData()
public boolean next() throws java.sql.SQLException
java.sql.SQLException
- If database-access error occurs.ResultSet.next()
public void close()
ResultSet.close()
public java.lang.String getString(int columnNumber) throws java.sql.SQLException
getString
in interface java.sql.ResultSet
getString
in class VTITemplate
java.sql.SQLException
- If database-access error occurs.ResultSet.getString(int)
public boolean wasNull()
wasNull
in interface java.sql.ResultSet
wasNull
in class VTITemplate
ResultSet.wasNull()
Apache Derby V10.14 Internals - Copyright © 2004,2018 The Apache Software Foundation. All Rights Reserved.