org.apache.derby.diag
Class ErrorLogReader

java.lang.Object
  extended byorg.apache.derby.vti.VTITemplate
      extended byorg.apache.derby.diag.ErrorLogReader
All Implemented Interfaces:
java.sql.ResultSet

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:


Field Summary
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_XID_STRING
           
private static java.lang.String GMT_STRING
           
private  int gmtIndex
           
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
           
 
Fields inherited from interface java.sql.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_SENSITIVE
 
Constructor Summary
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
 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, getCursorName, getDate, getDate, getDate, getDate, getDouble, getDouble, getFetchDirection, getFetchSize, getFloat, getFloat, getInt, getInt, getLong, getLong, getObject, getObject, getObject, getObject, getRef, getRef, getRow, getShort, getShort, getStatement, getString, getTime, getTime, getTime, getTime, getTimestamp, getTimestamp, getTimestamp, getTimestamp, getType, getUnicodeStream, getUnicodeStream, getURL, getURL, getWarnings, insertRow, isAfterLast, isBeforeFirst, isFirst, isLast, last, moveToCurrentRow, moveToInsertRow, previous, refreshRow, relative, rowDeleted, rowInserted, rowUpdated, setFetchDirection, setFetchSize, updateArray, updateArray, updateAsciiStream, updateAsciiStream, updateBigDecimal, updateBigDecimal, updateBinaryStream, updateBinaryStream, updateBlob, updateBlob, updateBoolean, updateBoolean, updateByte, updateByte, updateBytes, updateBytes, updateCharacterStream, updateCharacterStream, updateClob, updateClob, updateDate, updateDate, updateDouble, updateDouble, updateFloat, updateFloat, updateInt, updateInt, updateLong, updateLong, updateNull, updateNull, updateObject, updateObject, updateObject, updateObject, updateRef, updateRef, updateRow, updateShort, updateShort, updateString, updateString, updateTime, updateTime, updateTimestamp, updateTimestamp
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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

gmtIndex

private int gmtIndex

threadIndex

private int threadIndex

xidIndex

private int xidIndex

lccidIndex

private int lccidIndex

databaseIndex

private int databaseIndex

drdaidIndex

private int drdaidIndex

GMT_STRING

private static final java.lang.String GMT_STRING
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()
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.


ErrorLogReader

public ErrorLogReader(java.lang.String inputFileName)
Method Detail

getMetaData

public java.sql.ResultSetMetaData getMetaData()
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 interface java.sql.ResultSet
Overrides:
getString in class VTITemplate
Throws:
java.sql.SQLException - If database-access error occurs.
See Also:
ResultSet.getString(int)

wasNull

public boolean wasNull()
Specified by:
wasNull in interface java.sql.ResultSet
Overrides:
wasNull in class VTITemplate
See Also:
ResultSet.wasNull()

Built on Tue 2006-10-10 19:23:47+0200, from revision exported

Apache Derby V10.1 Engine Documentation - Copyright © 1997,2005 The Apache Software Foundation or its licensors, as applicable.