InfoDirectory使用手引書 |
目次 索引 |
第5部 保守編 | > 第15章 資料採取 | > 15.2 資料採取方法 |
JNDIを使用するアプリケーションでは、JNDIの環境プロパティ"com.sun.jndi.ldap.trace.ber"の値に、java.io.OutputStreamを指定することで、そのオブジェクトに対して、LDAP ASN.1 BER の送受信パケットの 16 進ダンプを書き込むことができます。
コンソールに出力する場合
env.put("com.sun.jndi.ldap.trace.ber", System.out); |
ファイルに出力する場合
FileOutputStream fos = null; |
上記は説明を簡略化するため適切なException処理となっておりません。実際にはアプリケーション設計・作成時に適切なExceptionの型とそれに対応する適切な対処を行ってください。
推奨:JNDIアプリケーションの出力機構の追加
JNDIトレース機能は、常時採取する設定にすると通常の運用に比べて性能が劣化します。また、トレースを採取しない設定にすると、障害発生時などトレースを採取する必要がある場合に、プログラムを再コンパイルしなければなりません。この問題を解決するために、以下にJavaのシステムプロパティを使用した例を紹介します。
これを実装することにより、Javaの起動パラメタ(-Dオプション)によりトレース採取のON/OFFの指定を行うことができます。
システムプロパティ (jndi_trace_file)
トレース情報の出力先ファイル名をフルパスで指定します。この環境変数が設定されていない場合(-Dオプションを指定しない場合)は、トレースは採取されません。
実行例
javaコマンドの-Dオプションにjndi_trace_fileを指定します。C:\tmp\jndi_trace.logファイルにJNDIトレースが採取されます。
java -Djndi_trace_file=C:\tmp\jndi_trace.log xxxx
(xxxx:任意の実行モジュール)javaコマンドの-Dオプションにjndi_trace_fileを指定します。/tmp/jndi_trace.logファイルにJNDIトレースが採取されます。
java -Djndi_trace_file=/tmp/jndi_trace.log xxxx
(xxxx:任意の実行モジュール)実装例
・・・
String tracefile = null;
FileOutputStream fos = null;
Properties prop = System.getProperties();
tracefile = prop.get("jndi_trace_file"); //←システム環境変数の読み込み
if(tracefile != null) {
try {
fos = new FileOutputStream(tracefile);
env.put("com.sun.jndi.ldap.trace.ber", fos);
} catch(Exception e) {
System.out.println(e);
}
}
・・・
目次 索引 |