Hitachi

ノンストップデータベース HiRDB Version 10 UAP開発ガイド


17.18.1 取得するメソッド,及び取得するための設定

〈この項の構成〉

(1) Exceptionトレースログの取得対象メソッド

Exceptionトレースログの取得対象は,Java 2 Platform, Standard Edition, version 1.4のAPI仕様にあるパッケージjava.sqlに記述されているメソッドの呼び出しと戻りです。

クライアント環境定義PDJDBTRACELEVEL,又はシステムプロパティHiRDB_for_Java_TraceLevelで指定した値が,次の表に示すメソッドのトレース取得レベル以上の場合に,そのメソッドを取得対象とします。

なお,ResultSet.getXXXメソッド,PreparedStatement.setXXXメソッド,Connection.isClosedメソッドなど,オブジェクト内の情報を参照して返すだけのメソッドや,オブジェクト内に情報を格納するだけのメソッドは取得対象になりません。

Exceptionトレースログの取得対象であるメソッドと,そのメソッドのトレース取得レベルを次の表に示します。

表17‒126 Exceptionトレースログの取得対象であるメソッドとトレース取得レベル

クラス

メソッド

トレース取得レベル※1

付加情報

JDBC2.0

JDBC4.0

Driver

Connection connect(String url, Properties info)

1

1

Connection

Statement createStatement()※2

1

1

Statement createStatement(int resultSetType, int resultSetConcurrency)※3

1

1

Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability)※4

1

1

PreparedStatement prepareStatement(String sql)※2

1

1

PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency)※3

1

1

PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)※4

1

1

CallableStatement prepareCall(String sql)※2

1

1

CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency)※3

1

1

CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)※4

1

1

void setAutoCommit(boolean autoCommit)

2

2

void commit()

2

1

void rollback()

2

1

void close()

1

1

boolean isValid(int timeout)

2

1

DatabaseMetaData getMetaData()

2

2

void setHoldability(int holdability)

1

Statement

ResultSet executeQuery(String sql)

1

1

int executeUpdate(String sql)

1

1

boolean execute(String sql)

1

1

void addBatch(String sql)

1

int[] executeBatch()

2

1

void clearBatch()

2

void close()

1

1

boolean isClosed()

2

2

void cancel()

2

1

ResultSet getResultSet()

2

2

boolean getMoreResults()

1

void setMaxFieldSize(int max)

2

void setMaxRows(int max)

2

void setQueryTimeout(int seconds)

1

void setFetchSize(int rows)

1

boolean isPoolable()

2

2

PreparedStatement

ResultSet executeQuery()※2

2

1

[SQL]

int executeUpdate()※2

2

1

[SQL]

boolean execute()※2

2

1

[SQL]

ResultSetMetaData getMetaData()

2

2

void setBlob(int parameterIndex, Blob x)※6

2

CallableStatement

String getString(int parameterIndex)※6

2

long getLong(int parameterIndex)※6

2

byte[] getBytes(int parameterIndex)※6

2

Object getObject(int parameterIndex)※6

2

Blob getBlob(int parameterIndex)※6

2

String getString(String parameterName)※6

2

long getLong(String parameterName)※6

2

byte[] getBytes(String parameterName)※6

2

Object getObject(String parameterName)※6

2

Blob getBlob(String parameterName)※6

2

ResultSet

boolean next()※5

2

1

[COUNT]

boolean previous()

2

boolean absolute(int row)

2

1

boolean relative(int rows)

2

1

void beforeFirst()

2

1

boolean first()

2

1

boolean last()

2

1

void afterLast()

2

1

boolean isBeforeFirst()

2

1

boolean isAfterLast()

2

1

boolean isLast()

2

1

void close()※5

2

1

[COUNT]

boolean isClosed()

2

2

Statement getStatement()

2

2

ResultSetMetaData getMetaData()

2

2

int getHoldability()

2

2

String getString(int columnIndex)※6

2

long getLong(int columnIndex)※6

2

byte[] getBytes(int columnIndex)※6

2

Blob getBlob(int columnIndex)※6

2

Object getObject(int columnIndex)※6

2

InputStream getAsciiStream(int columnIndex)※6

2

Reader getCharacterStream(int columnIndex)※6

2

InputStream getBinaryStream(int columnIndex)※6

2

String getString(String columnLabel)※6

2

long getLong(String columnLabel)※6

2

Blob getBlob(String columnLabel)※6

2

Object getObject(String columnLabel)※6

2

InputStream getAsciiStream(String columnLabel)※6

2

Reader getCharacterStream(String columnLabel)※6

2

InputStream getBinaryStream(String columnLabel)※6

2

Blob

long length()※6

2

2

byte[] getBytes(long pos, int length)※6

2

2

long position(byte[] pattern, long start)※6

2

2

long position(Blob pattern, long start)※6

2

2

void free()※6

1

1

DatabaseMetaData

ResultSet getProcedures(String catalog, String schemaPattern, String procedureNamePattern)

2

2

ResultSet getProcedureColumns(String catalog, String schemaPattern, String procedureNamePattern, String columnNamePattern)

2

2

ResultSet getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types)

2

2

ResultSet getSchemas()

2

2

ResultSet getCatalogs()

2

2

ResultSet getTableTypes()

2

2

ResultSet getColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern)

2

2

ResultSet getColumnPrivileges(String catalog, String schema, String table, String columnNamePattern)

2

2

ResultSet getTablePrivileges(String catalog, String schemaPattern, String tableNamePattern)

2

2

ResultSet getBestRowIdentifier(String catalog, String schema, String table, int scope, boolean nullable)

2

2

ResultSet getVersionColumns(String catalog, String schema, String table)

2

2

ResultSet getPrimaryKeys(String catalog, String schema, String table)

2

2

ResultSet getImportedKeys(String catalog, String schema, String table)

2

2

ResultSet getExportedKeys(String catalog, String schema, String table)

2

2

ResultSet getCrossReference(String parentCatalog, String parentSchema, String parentTable, String foreignCatalog, String foreignSchema, String foreignTable)

2

2

ResultSet getTypeInfo()

2

2

ResultSet getIndexInfo(String catalog, String schema, String table, boolean unique, boolean approximate)

2

2

ResultSet getUDTs(String catalog, String schemaPattern, String typeNamePattern, int[] types)

2

2

Connection getConnection()

2

2

ResultSet getSuperTypes(String catalog, String schemaPattern, String typeNamePattern)

2

2

ResultSet getSuperTables(String catalog, String schemaPattern, String tableNamePattern)

2

2

ResultSet getAttributes(String catalog, String schemaPattern, String typeNamePattern, String attributeNamePattern)

2

2

RowIdLifetime getRowIdLifetime()

2

2

ResultSet getSchemas(String catalog, String schemaPattern)

2

2

boolean supportsStoredFunctionsUsingCallSyntax()

2

2

boolean autoCommitFailureClosesAllResultSets()

2

2

ResultSet getClientInfoProperties()

2

2

ResultSet getFunctions(String catalog, String schemaPattern, String functionNamePattern)

2

2

ResultSet getFunctionColumns(String catalog, String schemaPattern, String functionNamePattern, String columnNamePattern)

2

2

DataSource

Connection getConnection()※2

1

1

Connection getConnection(String username, String password)※3

1

1

ConnectionPool

DataSource

PooledConnection getPooledConnection()※2

1

1

PooledConnection getPooledConnection(String user, String password)※3

1

1

XADataSource

XAConnection getXAConnection()※2

1

1

XAConnection getXAConnection(String user,String password)※3

1

1

PooledConnection

Connection getConnection()

1

1

void close()

1

1

void addConnectionEventListener(ConnectionEventListener listener)

2

void removeConnectionEventListener(ConnectionEventListener listener)

2

void addStatementEventListener(StatementEventListener listener)

2

void removeStatementEventListener(StatementEventListener listener)

2

XAConnection

XAResource getXAResource()

1

1

XAResource

void start(Xid xid, int flags)

3

3

void end(Xid xid, int flags)

3

3

int prepare(Xid xid)

3

3

void commit(Xid xid, boolean onePhase)

3

3

void rollback(Xid xid)

3

3

void forget(Xid xid)

3

3

Xid[] recover(int flag)

3

3

boolean isSameRM(XAResource xares)

3

3

InputStream

int read()※2

2

2

int read(byte[] data)※3

2

2

int read(byte[] b, int off, int len)※4

2

2

PrdbConnection

int checkSession (int waittime)

1

(凡例) −:出力しません。

注※1

トレース取得レベルが5の場合,内部呼び出しも含めてExceptionトレースログを取得します。

注※2

メソッド名として,「メソッド名(1)」と出力されます。

注※3

メソッド名として,「メソッド名(2)」と出力されます。

注※4

メソッド名として,「メソッド名(3)」と出力されます。

注※5

トレース取得レベルが1の場合,カーソルクローズ時だけ[COUNT]付加情報(next実行回数)付きでメソッド正常終了の履歴を出力します。トレース取得レベルが2以上の場合,メソッド呼び出しごとにメソッド開始・正常終了の履歴を出力し,[COUNT]付加情報は付けません。

注※6

対象がBLOB又はBINARY型で,位置付け子を使用している場合だけ,Exceptionトレースログを取得します。

(2) Exceptionトレースログを取得するための設定

Exceptionトレースログのファイル出力先,ファイルへの出力数,メモリ内取得情報数,及びトレース取得レベルは,システムプロパティ又はクライアント環境定義で設定します。優先順位は次のとおりです。

  1. システムプロパティ

  2. クライアント環境定義

(a) クライアント環境定義の設定

クライアント環境定義では,次の項目を指定します。

  • PDJDBFILEDIR

  • PDJDBFILEOUTNUM

  • PDJDBONMEMNUM

  • PDJDBTRACELEVEL

  • PDJDBFILESIZE

これらはJavaVMプロセスごとでの設定となるため,同一JavaVMプロセス上で接続ごとに異なる値を指定することはできません。指定した場合,最初の接続に対する指定が有効となります。

指定値の詳細は,「クライアント環境定義の設定内容」を参照してください。

なお,これらのクライアント環境定義に不正な値が指定されて,SQLExceptionを投入する際に取得するExceptionトレースログでは,これらのクライアント環境定義に値が指定されなかったものとみなされます。その場合は,次の表に示すデフォルトが仮定されます。

(b) システムプロパティの設定

システムプロパティでは,次の表に示す項目を指定します。

表17‒127 Exceptionトレースログを取得するためのシステムプロパティの設定

項目

システムプロパティ

内容

デフォルト

ファイル出力先

HiRDB_for_Java_FileDIR

Exceptionトレースログを出力するディレクトリを,絶対パスで指定します。Exceptionトレースログは,指定したディレクトリの直下に出力されます。

指定されたファイル出力先が存在しない,又は書き込み権限がない場合は,カレントディレクトリに出力します。

カレントディレクトリ

ファイルへの出力数

HiRDB_for_Java_FileOutNUM

1ファイルへ出力する情報数の上限を指定します。指定できる範囲は1〜50です。

実際に1ファイルへ出力する情報数の上限は,「ファイルへの出力数」×「メモリ内取得情報数」個となります。

ファイルへの出力数は,「出力形式」に示す形式2〜形式4をそれぞれ1個と数えます。

なお,ファイルには,メモリに蓄積した順番に出力されます。

また,上限値を超えてファイルに出力する場合は,2ファイルでラップアラウンドします。ファイル名は次のとおりです。

  • pdexc1.trc

  • pdexc2.trc

ただし,「出力形式」に示す形式1と形式2の間で出力先のファイルが切り替わることはありません。

HiRDB_for_Java_FileSizeプロパティが指定されている場合,HiRDB_for_Java_FileSizeプロパティの指定を優先し,この指定は無視します。

5

メモリ内取得情報数

HiRDB_for_Java_OnMemNUM

メモリ内で蓄積する情報数の上限を指定します。指定できる範囲は500〜10,000です。

なお,メモリ内取得情報は,表「Exceptionトレースログの取得対象であるメソッドとトレース取得レベル」で示したメソッド一つを1個と数えます。

また,上限値を超えて情報を蓄積しようとすると,古い情報から順に,新しい情報に上書きされます。

1,000

トレース取得レベル

HiRDB_for_Java_TraceLevel

トレース取得レベルを指定します。指定できる範囲は0〜5です。

5を指定すると,内部呼び出しを含めたすべてのトレース取得対象メソッドを取得します。

0を指定すると,Exceptionトレースログを取得しません。

1

最大ファイルサイズ

HiRDB_for_Java_FileSize

ファイルの最大サイズをバイト単位で指定します。指定できる範囲は4,096〜2,000,000,000です。

指定サイズを超えると出力先を切り替えます。

このプロパティを指定していない場合,HiRDB_for_Java_FileOutNUMプロパティによって出力先を切り替えます。

なし

注※

次のような場合に取得するExceptionトレースログでは,システムプロパティに値が指定されなかったものとみなされます。その場合はデフォルトが仮定されます。

  • システムプロパティに不正な値が指定され,データベース接続時にSQLExceptionを投入した場合

  • Java仮想マシンが,セキュリティマネジャによってJDBCドライバに対するシステムプロパティの受け渡しを拒否した場合

  • Java仮想マシンの,最初の接続が確立する前