第3章 トラブルシューティング
3.4 ログ出力項目カスタマイズ
ログに出力される項目のカスタマイズ方法について説明します。
ISIが出力するログに、規定の出力項目以外のユーザデータ(たとえば、サービス利用側のアプリケーションで採番したメッセージ番号) を埋め込むことができます。指定できるユーザデータは、5つまでです。
ログに出力するユーザデータを指定するには、以下の方法があります。
・ サービス利用側アプリケーションの指定
サービス利用側のアプリケーションを利用して、共通メッセージのヘッダにユーザデータを指定します。
・ シーケンス情報の指定
ISI Studioを利用して、シーケンス情報の変数にユーザデータの取得情報を指定します。
ログ出力項目カスタマイズの主な特長は、以下のとおりです。
・ ユーザデータを埋め込んだログが出力されるのは、以下の条件を両方とも満たす場合だけです。それ以外の場合は、規定の出力 形式でログが出力されます。
- シーケンスエンジン実行時のログ
- ESIMessageのIDが設定されている
・ シーケンス開始からシーケンスエンジンの初期化処理終了までは、サービス利用側のアプリケーションで指定したユーザデータ が、ログに出力されます。
シーケンスエンジンの初期化処理が終了してからは、サービス利用側アプリケーションで指定したユーザデータ、およびシーケン ス情報で指定したユーザデータが、ログに出力されます。
・ ユーザデータは、以下の並び順でログに出力されます。
1. サービス利用側のアプリケーションで指定したユーザデータは、共通メッセージのヘッダに設定した順番に出力されます。
2. シーケンス情報で指定したユーザデータは、シーケンス情報の変数に設定した順番に出力されます。
図3.1 ログ出力項目カスタマイズの機能
・ サービス利用側のアプリケーションとシーケンス情報で指定したユーザデータの合計が6つ以上になった場合、警告が出力され、
サービス利用側アプリケーションで指定したユーザデータが優先されて出力されます。
・ 値がnullのユーザデータを指定した場合、ログには文字列「null」が出力されます。
・ ユーザデータの長さは、128バイト以内で指定してください。128バイトを超えた場合、ログが正しく出力されない可能性があります。
・ ユーザデータの取得中に例外が発生し、取得が失敗した場合、警告が出力され、ログには文字列「null」が出力されます。
grep機能を利用すると、ログに出力されたユーザデータをキーワードに、エラー情報のトレースが容易にできます。シーケンスログのス テップログ採取を利用すると、各ステップの実行成功/失敗が出力されるので、ISIの正常動作を判断しやすくなります。
出力形式
最大5つまでのユーザデータが、以下の形式で出力されます。ユーザデータが出力される位置は、ESI-MessageIDの次です。
USERDATA[ユーザデータ1,ユーザデータ2,…]USERDATA
出力例(シーケンスログ)
2009-09-16T20:25:02.703 1208777102703 xxx null ### SEQUENCE-START ### ESI-xxx-20090916000121148-12785 USERDATA[aaa,bbb]USERDATA ### ### ### 1773 ### ###
2009-09-16T20:25:02.703 1208777102703 xxx null ### INITIALIZE-START ### ESI-xxx-20090916000121148-12785 USERDATA[aaa,bbb]USERDATA ### ### ### 1773 ### ###
2009-09-16T20:25:02.875 1208777102875 xxx null ### INITIALIZE-END SUCCESS ESI-xxx-20090916000121148-12785 USERDATA[aaa,bbb,ccc]USERDATA ### ### ### 1773 ### ###
2009-09-16T20:25:02.937 1208777102937 xxx null ### SEQUENCE-END FAILURE ESI-xxx-20090916000121148-12785 USERDATA[aaa,bbb,ccc]USERDATA ### ### ### 1773 ### ###
3.4.1 サービス利用側アプリケーションの指定
サービス利用側のアプリケーションで共通メッセージ操作APIを利用し、ログに出力させるユーザデータを指定します。
共通メッセージのヘッダに「com.fujitsu.esi.logcustom.value*」をキーとして、ユーザデータを指定します。「*」には、1~5までの整数値 を半角数字で指定します。
共通メッセージ操作APIの詳細については、“ISI アプリケーション開発ガイド”を参照してください。
共通メッセージのヘッダにユーザデータを設定する場合の指定例は、以下のとおりです。
:
ESIMessage msg = new ESIMessage();
//プロパティの設定
msg.getHeader().getParameter().put("com.fujitsu.esi.logcustom.value1", "aaa");
msg.getHeader().getParameter().put("com.fujitsu.esi.logcustom.value2", "bbb");
:
3.4.2 シーケンス情報の指定
ISI Studioを利用し、ログに出力させるユーザデータの取得情報を指定します。
シーケンス情報の変数に、ユーザデータ取得情報のキー名と値を指定します。ISI Studioの操作については、“ISI Studio ヘルプ”を参 照してください。
画面例
図3.2 XMLデータの画面例
図3.3 FLATデータの画面例
図3.4 CSVデータの画面例
指定例
表3.3 キー名と情報
キー名 説明 備考/指定例
com.fujitsu.esi.logcustom.dataType ユーザデータを指定した共通メッ
セージのデータタイプを、半角英大 文字で指定します。以下のどれかを 指定します。
・ XML
XMLデータです。
・ FLAT
FLATデータです。
・ CSV
CSVデータです。
必須
・ XMLデータの場合
XML
・ FLATデータの場合
FLAT
・ CSVデータの場合
CSV
com.fujitsu.esi.logcustom.position*
“*”には、1~5の範囲の整数を半角数字で指定してく ださい。
ログに出力させるユーザデータの取 出し位置を指定します。
・ XMLデータの場合
XPathを指定します。
・ FLATデータの場合
取得開始位置、取得けた数を
「,」(半角カンマ)で区切って指定 します。
取得開始位置、取得けた数は 半角数字で指定してください。
・ CSVデータの場合
取得ライン番号、取得カラム番 号を「,」(半角カンマ)で区切って 指定します。
取得ライン番号、取得カラム番 号は半角数字で指定してくださ い。
必須
複数(5つまで)指定可
・ XMLデータの場合 /data1/text()
・ FLATデータの場合
10,15
・ CSVデータの場合
1,2
com.fujitsu.esi.logcustom.charCode 取得元がFLATデータ、CSVデータ
の場合に、文字コードを指定します。
必須 Shift-JIS
・ ファイル転送機能を利用している場合、ファイルのデータタイプがFLATの場合だけ利用できます。データタイプがXMLまたはCSV の場合は、利用できません。
・ 文字コードにUTF-16を使用する場合、リトルエンディアンは“UTF-16LE”、ビックエンディアンは“UTF-16BE”を指定してください。