Package org.apache.derby.diag
Class ErrorLogReader
- java.lang.Object
-
- org.apache.derby.vti.VTITemplate
-
- org.apache.derby.diag.ErrorLogReader
-
- All Implemented Interfaces:
java.lang.AutoCloseable
,java.sql.ResultSet
,java.sql.Wrapper
,AwareVTI
public class ErrorLogReader extends VTITemplate
ErrorLogReader is a virtual table interface (VTI) which contains all the statements of "interest" in db2j.log or a specified file when db2j.language.logStatementText=true.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:
- TS varchar(26) - the timestamp of the statement.
- THREADID varchar(40) - the thread name.
- XID varchar(15) - the transaction ID.
- LCCID varchar(15) - the connection ID.
- DATABASE varchar(128) - Database name
- DRDAID varchar(50) - nullable. DRDA ID for network server session.
- LOGTEXT long varchar - text of the statement or commit or rollback.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.derby.vti.VTITemplate
VTITemplate.ColumnDescriptor
-
-
Field Summary
Fields 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 Summary
Constructors 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)
-
Method Summary
All Methods Instance Methods Concrete Methods 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()
-
Methods inherited from class org.apache.derby.vti.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, updateTimestamp
-
-
-
-
Field Detail
-
gotFile
private boolean gotFile
-
inputFileStreamReader
private java.io.InputStreamReader inputFileStreamReader
-
inputStream
private java.io.InputStream inputStream
-
bufferedReader
private java.io.BufferedReader bufferedReader
-
inputFileName
private java.lang.String inputFileName
-
line
private java.lang.String line
-
endTimestampIndex
private int endTimestampIndex
-
threadIndex
private int threadIndex
-
xidIndex
private int xidIndex
-
lccidIndex
private int lccidIndex
-
databaseIndex
private int databaseIndex
-
drdaidIndex
private int drdaidIndex
-
END_TIMESTAMP
private static final java.lang.String END_TIMESTAMP
- See Also:
- Constant Field Values
-
PARAMETERS_STRING
private static final java.lang.String PARAMETERS_STRING
- See Also:
- Constant Field Values
-
BEGIN_THREAD_STRING
private static final java.lang.String BEGIN_THREAD_STRING
- See Also:
- Constant Field Values
-
END_THREAD_STRING
private static final java.lang.String END_THREAD_STRING
- See Also:
- Constant Field Values
-
BEGIN_XID_STRING
private static final java.lang.String BEGIN_XID_STRING
- See Also:
- Constant Field Values
-
END_XID_STRING
private static final java.lang.String END_XID_STRING
- See Also:
- Constant Field Values
-
BEGIN_DATABASE_STRING
private static final java.lang.String BEGIN_DATABASE_STRING
- See Also:
- Constant Field Values
-
END_DATABASE_STRING
private static final java.lang.String END_DATABASE_STRING
- See Also:
- Constant Field Values
-
BEGIN_DRDAID_STRING
private static final java.lang.String BEGIN_DRDAID_STRING
- See Also:
- Constant Field Values
-
END_DRDAID_STRING
private static final java.lang.String END_DRDAID_STRING
- See Also:
- Constant Field Values
-
BEGIN_EXECUTING_STRING
private static final java.lang.String BEGIN_EXECUTING_STRING
- See Also:
- Constant Field Values
-
END_EXECUTING_STRING
private static final java.lang.String END_EXECUTING_STRING
- See Also:
- Constant Field Values
-
columnInfo
private static final ResultColumnDescriptor[] columnInfo
-
metadata
private static final java.sql.ResultSetMetaData metadata
-
-
Constructor Detail
-
ErrorLogReader
public ErrorLogReader() throws StandardException
ErrorLogReader() accesses the derby.log in derby.system.home, if set, otherwise it looks in the current directory. ErrorLogReader('filename') will access the specified file name.- Throws:
StandardException
-
ErrorLogReader
public ErrorLogReader(java.lang.String inputFileName) throws StandardException
- Throws:
StandardException
-
-
Method Detail
-
getMetaData
public java.sql.ResultSetMetaData getMetaData()
- Specified by:
getMetaData
in interfacejava.sql.ResultSet
- Overrides:
getMetaData
in classVTITemplate
- See Also:
ResultSet.getMetaData()
-
next
public boolean next() throws java.sql.SQLException
- Throws:
java.sql.SQLException
- If database-access error occurs.- See Also:
ResultSet.next()
-
close
public void close()
- See Also:
ResultSet.close()
-
getString
public java.lang.String getString(int columnNumber) throws java.sql.SQLException
All columns in the Db2jLogReader VTI have a of String type.- Specified by:
getString
in interfacejava.sql.ResultSet
- Overrides:
getString
in classVTITemplate
- Throws:
java.sql.SQLException
- If database-access error occurs.- See Also:
ResultSet.getString(int)
-
wasNull
public boolean wasNull()
- Specified by:
wasNull
in interfacejava.sql.ResultSet
- Overrides:
wasNull
in classVTITemplate
- See Also:
ResultSet.wasNull()
-
-