DB2逆引きリファレンス目次】 【DB2逆引きリファレンス目次#運用監視編】 【DB2逆引きリファレンス目次#トレース情報

前提

解説

ユニバーサルJDBCドライバーを利用する場合にJDBCトレースを取得するには、接続の作成時に以下のプロパティを設定します。

traceFile
: トレースを記録するためのファイルのパスを指定します。

traceLevel
: トレースレベルを整数値で指定します。指定できる値の一覧は表5-3-1に示すとおりです。

トレースレベル 取得される情報
com.ibm.db2.jcc.DB2BaseDataSource.TRACE_NONE トレースは取得しない
com.ibm.db2.jcc.DB2BaseDataSource.TRACE_CONNECTION_CALLS 接続に対する呼び出し情報
com.ibm.db2.jcc.DB2BaseDataSource.TRACE_STATEMENT_CALLS ステートメントに対する呼び出し情報
com.ibm.db2.jcc.DB2BaseDataSource.TRACE_RESULT_SET_CALLS 結果セットに対する呼び出し情報
com.ibm.db2.jcc.DB2BaseDataSource.TRACE_DRIVER_CONFIGURATION ドライバー設定に関する情報
com.ibm.db2.jcc.DB2BaseDataSource.TRACE_CONNECTS 接続の情報
com.ibm.db2.jcc.DB2BaseDataSource.TRACE_DRDA_FLOWS クライアントとサーバーの接続に用いられるDRDAプロトコルの制御情報
com.ibm.db2.jcc.DB2BaseDataSource.TRACE_RESULT_SET_META_DATA 結果セットのメタデータ情報
com.ibm.db2.jcc.DB2BaseDataSource.TRACE_PARAMETER_META_DATA パラメータのメタ情報
com.ibm.db2.jcc.DB2BaseDataSource.TRACE_DIAGNOSTICS 各種診断情報
com.ibm.db2.jcc.DB2BaseDataSource.TRACE_SQLJ SQLJに関するトレース情報
com.ibm.db2.jcc.DB2BaseDataSource.TRACE_XA_CALLS XA制御に関するトレース情報(Type2の接続を利用している場合のみ取得可能)
com.ibm.db2.jcc.DB2BaseDataSource.TRACE_ALL すべての情報

表5-3-1: トレースレベル一覧

TRACE_NONEおよびTRACE_ALLを除き、これらの整数値は複数指定することが可能です。 その場合は、指定するすべての整数値の論理和を指定してください。

使用例

接続、ステートメントおよび結果セットに対する呼び出しをトレースログ(ここでは/tmp/trace.log)に出力するように設定する例。

import java.sql.;
import java.io.
;
import java.util.;
import com.ibm.db2.jcc.
;

public class TraceSample {

private final static String PATH = "/tmp/trace.log";

public static void main(String[] args) {

try {
Class.forName("com.ibm.db2.jcc.DB2Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
return;
}

Connection conn = null;
PreparedStatement ps = null;
ResultSet result = null;
PrintWriter out = null;

try {

Properties props = new Properties();

props.setProperty("user", "user");
props.setProperty("password", "password");
props.setProperty("traceFile", PATH);
props.setProperty("traceLevel",
String.valueOf(
DB2BaseDataSource.TRACE_CONNECTION_CALLS |
DB2BaseDataSource.TRACE_STATEMENT_CALLS |
DB2BaseDataSource.TRACE_RESULT_SET_CALLS
)
);

conn =
DriverManager.getConnection(
"jdbc:db2://localhost:50000/sample",
props);

ps = conn.prepareStatement("SELECT * FROM employee");
result = ps.executeQuery();

while (result.next()) {
System.out.print(result.getInt("EMPNO"));
System.out.print(" ");
System.out.println(result.getString("FIRSTNME"));
}

} catch (Exception e) {
e.printStackTrace();
} finally {
if (result != null) {
try {
result.close();
} catch (SQLException e) {
}
}
if (ps != null) {
try {
ps.close();
} catch (SQLException e) {
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
}
}
if (out != null) {
out.close();
}
}
}
}

注意

参照