7.7.1 JDBCインタフェースメソッドトレース
トラブルシュート情報として,JDBCインタフェースのメソッド呼び出し時に,JDBCインタフェースメソッドトレースを取得できます。
(1) 環境設定
(a) DriverManagerクラスによる接続の場合
環境設定手順を次に示します。
- 手順
-
-
DriverManagerクラスのsetLogWriterメソッドを実行して,有効なログライターを指定します。
-
DriverManagerクラスのgetConnectionメソッドを実行してHADBサーバに接続します。その際,getConnectionメソッドの引数urlまたはinfoに,JDBCインタフェースメソッドトレースを取得する指定をします(methodtraceおよびtracenumを指定します)。
getConnectionメソッドの引数urlの指定については,「7.3.1 DriverManagerクラスのgetConnectionメソッドでHADBサーバに接続する方法」の「(2) getConnectionメソッドによるHADBサーバへの接続」の「(a) 引数urlの指定内容(接続用のURLの指定)」を参照してください。
getConnectionメソッドの引数infoの指定については,「7.3.1 DriverManagerクラスのgetConnectionメソッドでHADBサーバに接続する方法」の「(2) getConnectionメソッドによるHADBサーバへの接続」の「(d) 引数infoの指定内容(ユーザプロパティの指定)」を参照してください。
-
(b) DataSourceクラスによる接続の場合
環境設定手順を次に示します。
- 手順
-
-
DataSourceまたはConnectionPoolDataSourceインタフェースのsetLogWriterメソッドを実行して,有効なログライターを指定します。
-
接続情報設定および取得インタフェースのsetInterfaceMethodTraceおよびsetTraceNumberメソッドを実行して,JDBCインタフェースメソッドトレースを取得する指定をします。
DataSourceインタフェースのsetLogWriterメソッドについては「10.2.7 setLogWriter(PrintWriter out)」を,ConnectionPoolDataSourceインタフェースのsetLogWriterメソッドについては「10.3.7 setLogWriter(PrintWriter out)」を参照してください。
setInterfaceMethodTraceメソッドについては「10.5.14 setInterfaceMethodTrace(boolean flag)」を,setTraceNumberメソッドについては「10.5.18 setTraceNumber(int num)」を参照してください。
-
(2) JDBCインタフェースメソッドトレースの取得規則
JDBCインタフェースメソッドトレースの取得規則を次に示します。
-
JDBCインタフェースのメソッドの呼び出し時,およびメソッドからの戻り時に,トレース情報が取得されます。ただし,データベース接続前に実行できるメソッドついては,トレース情報が取得されません。トレース情報が取得されないメソッドを次に示します。
Driverインタフェース
-
acceptsURL(String url)
-
getMajorVersion()
-
getMinorVersion()
-
getPropertyInfo(String url, Properties info)
-
jdbcCompliant()
DataSourceインタフェースおよびConnectionPoolDataSourceインタフェース
-
getLoginTimeout()
-
getLogWriter()
-
setLoginTimeout(int seconds)
-
setLogWriter(PrintWriter out)
Wrapperインタフェース
-
isWrapperFor(Class<?> iface)
-
unwrap(Class<T> iface)
-
-
トレース情報はエントリ数分保持され,次に示すタイミングで指定したログライターに出力されます。
-
Connection.closeメソッドの呼び出し時(正常終了時)
-
SQLExceptionの投入時(エラー発生時)
-
BatchUpdateExceptionの投入時(エラー発生時)
-
SQLClientInfoExceptionの投入時(エラー発生時)
-
UnsupportedOperationExceptionの投入時(エラー発生時)
-
-
トレース情報の数がエントリ数を超えた場合,保持されていたトレース情報は古い順に破棄され,新しいトレース情報が保持されます。
-
JDBCインタフェースメソッドトレースは,EntryおよびReturnでそれぞれ1エントリのトレース領域を使用します。
(3) 出力例
JDBCインタフェースメソッドトレースの出力例を次に示します。図中の番号は,説明の項番と対応しています。
出力例
説明
-
[Hitachi Advanced Data Binder JDBC Driver]
JDBCドライバの名称
-
[JDBC Interface Entry ],[JDBC Interface Return]
[JDBC Interface Entry ]:JDBCメソッドの呼び出し
[JDBC Interface Return]:JDBCメソッドからの戻り
-
[XXXXX.YYYYY]
XXXXXクラスのYYYYYメソッド
-
select * from pp
JDBCメソッドの引数(パスワードを示す引数については,"password=*"のように,"*"1個を出力)
-
com.hitachi.hadb.jdbc.Adb...
JDBCメソッドの戻り値