ログに出力される項目のカスタマイズ方法について説明します。
ISIが出力するログに、規定の出力項目以外のユーザデータ(たとえば、ISI呼び出しをするカスタムアダプタで採番したメッセージ番号)を埋め込むことができます。指定できるユーザデータは、5つまでです。
ログに出力するユーザデータを指定するには、以下の方法があります。
ISI呼び出しをするカスタムアダプタの指定(サービス利用側アプリケーション)
ISI呼び出しをするカスタムアダプタを利用して、入力Recordのヘッダにユーザデータを指定します。
シーケンス情報の指定
ISI Studioを利用して、シーケンス情報の変数にユーザデータの取得情報を指定します。
ユーザプログラムの指定
ユーザプログラムを利用して、共通メッセージのヘッダにユーザデータを指定します。
ログ出力項目カスタマイズの主な特長は、以下のとおりです。
ユーザデータを埋め込んだログが出力されるのは、以下の条件を両方とも満たす場合だけです。それ以外の場合は、規定の出力形式でログが出力されます。
シーケンスエンジン実行時のログ
ESIMessageのIDが設定されている
シーケンス開始からシーケンスエンジンの初期化処理終了までは、ISI呼び出しをするカスタムアダプタで指定したユーザデータが、ログに出力されます。
シーケンスエンジンの初期化処理が終了してからは、ISI呼び出しをするカスタムアダプタで指定したユーザデータ、およびシーケンス情報で指定したユーザデータが、ログに出力されます。
ユーザプログラムでユーザデータを指定した後は、ISI呼び出しをするカスタムアダプタで指定したユーザデータ、シーケンス情報で指定したユーザデータ、およびユーザプログラムで指定したユーザデータが、ログに出力されます。
ユーザデータは、以下の並び順でログに出力されます。
ISI呼び出しをするカスタムアダプタで指定したユーザデータは、入力Recordのヘッダに設定した順番に出力されます。
ユーザプログラムで指定したユーザデータは、共通メッセージのヘッダに指定した順番に出力されます。
シーケンス情報で指定したユーザデータは、シーケンス情報の変数に設定した順番に出力されます。
ただし、ISI呼び出しをするカスタムアダプタとユーザプログラムにおいて、同じキー名を使用してユーザデータを指定した場合、ユーザプログラムで指定したユーザデータがログに出力されます。
図4.1 ログ出力項目カスタマイズの機能
注意
ISI呼び出しをするカスタムアダプタおよびユーザプログラムで指定したユーザデータと、シーケンス情報で指定したユーザデータの合計が6つ以上になった場合、警告が出力され、ISI呼び出しをするカスタムアダプタおよびユーザデータプログラムで指定したユーザデータが優先されて出力されます。
値が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 ### ### |