InfoDirectory使用手引書
目次 索引 前ページ次ページ

第5部 保守編> 第15章 資料採取> 15.2 資料採取方法

15.2.5 JNDIのトレース取得

 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;
 try {
  fos = new FileOutputStream("JNDIトレースの出力ファイル名");
 } catch(Exception e) {
  System.out.println(e);
 }
 env.put("com.sun.jndi.ldap.trace.ber", fos);

 上記は説明を簡略化するため適切な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);
   }
 }
 
 ・・・


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005