|
|
WebOTX Manual V10.4 (第4版) 目次を表示 |
本章では、WebOTX ESBが出力するメッセージログについて説明します。メッセージログ機能を利用すると、各BC/SEとNormalized Message Router(NMR)間で交換されるメッセージの内容をログとして出力することが出来ます。出力される項目の一覧を以下に示します。
| フィールド名 | 説明 |
|---|---|
| 日付 | Message Exchange採取時の日付 |
| 時間 | Message Exchange採取時の時間 |
| Trace-ID | 1メッセージングごとにユニークなID |
| Unique-ID | 1メッセージ(1ダンプログ)ごとにユニークなID |
| Message-ID | Message ExchangeのMessage ID |
| State | Message ExchangeのStatusがActiveの時はメッセージの種別(in/out/Fault) それ以外の時はMessage ExchangeのStatus(Error/Done) |
| エンドポイント名 | Message Exchangeの宛先エンドポイント名 |
| サービス名 | エンドポイントに対応するサービス名 |
| インタフェース名 | サービスに含まれるインタフェース名 |
| オペレーション名 | 宛先エンドポイントのサービスで実行するオペレーション名 |
| 送信先サービスユニット名 | Message Exchangeの宛先が属しているサービスユニット名 |
| 送信先サービスアセンブリ名 | 宛先サービスユニットが属しているサービスアセンブリ名 |
| 送信先コンポーネント名 | 宛先のコンポーネントの名前 |
| 送信元コンポーネント名 | 送信元のコンポーネントの名前 |
| MEP | MessageExchangeのMEP (In-Only/In-OUT/Robust In-Only/In Optional-Out) |
| 送信元ロール | 送信元のロール (CONSUMER/PROVIDER) |
| Error Message | 通信中に発生したエラー本体 |
| Session-ID | Sequencing SEで設定されるID |
メッセージログの出力方法は、ファイル出力とデータベース出力の二種類に対応しています。ファイル出力に関しては[ 2.1. メッセージログの出力(ファイル) ] 、データベース出力に関しては[ 2.2. メッセージログの出力(データベース) ] を参照してください。
また、[ 2.4. メッセージログのフィルタ機能 ] で説明するフィルタ機能を設定すると、選択したサービスユニットが宛先となるメッセージをログ出力から除外することができます。
メッセージログをファイルに出力する場合、ログファイルにはトレースファイルとダンプファイルの二種類が作成されます。
・トレースファイル
トレースファイルには、メッセージトレースの内容を通信順に出力します。
| 日付 | 時間 | MEP | State | 送信元ロール | 送信元コンポーネント名 | 送信先コンポーネント名 | エンドポイント名 | Trace-ID | Unique-ID |
トレースファイルの例(me_trace.log)
|
2010-02-04 13:13:11.322 in-out in CONSUMER FileBinding UserProcessorEngine ep_TestSA_002 1265256791322-35222416 126972e7d1a015 |
・ ダンプファイル
ダンプファイルは、トレースIDをファイル名として1シーケンスのメッセージ群が1ファイルに連結されて出力されます。
ファイルにはまず送信メッセージの各属性とメッセージ本体が出力され、
続いて応答メッセージがあれば応答メッセージの各属性とメッセージ本体が出力されます。
トレースファイルとダンプファイルはトレースIDとユニークIDによって対応付けられています。
|
------<ランダムUUID>------ 日付 時間 MEP State 送信元ロール 送信元コンポーネント名 送信先コンポーネント名 送信先サービスユニット名 送信先サービスアセンブリ名 エンドポイント名 サービス名 インタフェース名 オペレーション名 Message-ID Session-ID Trace-ID Unique-ID <メッセージ本体(メッセージがフォルトの場合はフォルトメッセージ、エラーの場合はエラーメッセージ)> ------<ランダムUUID>------ (以下、繰り返し) ・ ・ ・ |
ダンプファイルの例(1265265908503-11424803.log)
|
------2C2CE674_3ACF_1A1E_8EFE_F68CF0CEA150------ |
メッセージログレベル、出力先の設定:
1.[アプリケーションサーバ]-[ESB]-[サービスアセンブリ]を選択し、[ログ関連]タブを開きます。

2.メッセージログレベル、出力先を設定します。
メッセージログレベルによって出力内容を変更します。 トレースログとダンプログの出力有無を○(出力される)、×(出力されない)で以下に示します。
(ファイル出力の場合の設定項目一覧)
| メッセージログレベル (LogLevel) |
トレースログ出力 | ダンプログ出力 |
|---|---|---|
| ALL | ○ | ○ |
| TRACE | ○ | ○ |
| DETAIL | ○ | △(FaultかErrorの時のみ出力) |
| DEBUG | ○ | △(Errorの時のみ出力) |
| CONFIG | ○ | × |
| INFO | × | × |
| WARN | × | × |
| ERROR | × | × |
| OFF | × | × |
| 属性名(attribute-name) | 説明 | 既定値 |
|---|---|---|
| 出力先(Output) | FILE:メッセージログをファイルに出力します。 DB:メッセージログをDBに出力します。DB出力の詳細は [ 2.2. メッセージログの出力(データベース)] を参照してください。 |
FILE |
バックアップ数、サイズの設定の変更:
log4otx.xmlの設定を変更することで、ログファイルのバックアップ数やサイズを変更することができます。変更した場合はドメイン(マルチプロセスの場合はプロセスグループ)の再起動が必要です。
(Expressの場合)
ドメインルート/config/log4otx.xml
(Standardの場合)
ドメインルート/config/tpsystem/logconf/<アプリケーショングループ名>/<プロセスグループ名>/log4otx.xml
| 変更内容 | Appender名 | パラメータ | デフォルト値 |
|---|---|---|---|
| トレースファイルのバックアップ数 | ESBFILETRACELOG | MaxBackupIndex | 3 |
| トレースファイルのサイズ | ESBFILETRACELOG | MaxFileSize | 1MB |
非同期出力時の設定:
メッセージログ動作モードを"asynchronous"にすると非同期出力が有効になります。このとき、下記の設定値が有効になります。
|
設定内容 |
説明 |
デフォルト値 |
|---|---|---|
|
トレースログ出力用キューサイズ[1-2147483647] |
メッセージログのトレースログ出力用のキューサイズを設定します。このキューサイズ値を超えて要求されたトレースログ出力要求は破棄されます。 この設定値は動的に反映されます(ドメインの再起動は不要です)。 |
300 |
|
ダンプログ出力用キューサイズ[1-2147483647] |
メッセージログのダンプログ出力用のキューサイズを設定します。このキューサイズ値を超えて要求されたダンプログ出力要求は破棄されます。 この設定値は動的に反映されます(ドメインの再起動は不要です)。 |
300 |
|
キューがフルの時の動作モード[wait/discard] |
ダンプログ出力用のキューがフルの時の動作モードを設定します。 |
wait |
|
ダンプログ出力用スレッド数[1-10000] |
メッセージログのダンプログ出力用スレッドの多重度を設定します。 この設定値を変更した場合、ドメイン(マルチプロセスの場合はプロセスグループ)の再起動が必要です。 |
5 |
ログファイルにはトレースファイルとダンプファイルの二種類があります。
Expressでのファイル名と出力場所は以下の通りです。
|
ログ |
ファイル名 |
場所 |
|---|---|---|
|
トレースファイル |
me_trace.log |
<domain_root>/logs/esb/esb_message |
|
ダンプファイル |
<trace-ID>.log |
<domain_root>/logs/esb/esb_message/me_dump |
Standardでのログ出力はプロセス毎にファイルが作成されます。
|
ログ |
ファイル名 |
場所 |
|---|---|---|
|
トレースファイル |
me_trace.log |
<domain_root>/logs/esb/esb_message/<アプリケーショングループ名>/<プロセスグループ名>/<プロセスID> |
|
ダンプファイル |
<trace-ID>.log |
<domain_root>/logs/esb/esb_message/<アプリケーショングループ名>/<プロセスグループ名>/<プロセスID>/me_dump |
ダンプログおよびトレースログそれぞれの合計容量を一定時間ごとに確認し、 指定した容量に収まるようファイルを削除することができます。 ファイル削除スレッドの動作はシングルプロセス環境とマルチプロセス環境で異なります。
ファイル削除スレッドは、設定した処理時刻になると上記対象ログファイルについて、それぞれ保存されているファイルの合計サイズを計測します。計測されたサイズが設定されている閾値を超過していた場合は、最終更新日時が古いファイルから順番に超過分を削除します。その後、ファイル削除スレッドは次回の処理時刻までスリープします。
(設定項目一覧)
Dotted-name:server.jbi.service-assemblies.(attribute-name)| 属性名(attribute-name) | 説明 | 既定値 |
|---|---|---|
| 定期ファイル削除(MessageLogDeleteEnabled) | ON:定期ファイル削除機能をONにします。ただしメッセージログレベルがCONFIG以上の時のみ処理を実行します。 OFF:定期ファイル削除機能をOFFにします。 |
OFF |
| ダンプログ合計ファイルサイズ(DumpCapacity) | ダンプログ合計ファイルサイズの閾値を設定します。処理時刻に計測されたサイズが閾値を越えていると超過分のファイルが削除されます。(単位:MB) | 100 |
| トレースログ合計ファイルサイズ(TraceCapacity) |
トレースログ合計ファイルサイズの閾値を設定します。処理時刻に計測されたサイズが閾値を越えていると超過分のファイルが削除されます。(単位:MB) (※この項目は運用管理ツールのシステム設定で"属性の表示レベル"を"全レベルの情報を表示"に設定しなければ表示されません) |
30 |
| 削除処理間隔(MessageLogDeleteSpan) | メッセージログを削除する時間間隔を設定します。(単位:分) | 1440 |
| 初回削除処理時刻(MessageLogFirstDeleteTime) | メッセージログの初回削除日時を設定します。(書式:HH:MM) | 00:00 |
メッセージログはデータベースに出力することもできます。メッセージログの内容は監査や障害解析に役立てることができます。出力したメッセージログは運用管理ツールを利用して閲覧することができます。
ここでは、メッセージログをデータベースに出力するための設定方法について説明します。
データベースの用意
メッセージログをデータベースに出力するために、出力先としてのデータベースを用意する必要があります。
サポートするデータベースは以下の通りです。
JDBCドライバの配置
インストール対象のドメインが起動されているときは、一旦終了します。
データベースのドライバライブラリを、<WebOTX_DIR>/domains/<ドメイン名>/lib/ext
へコピーします。
| データベース名 | JDBCドライバ |
|---|---|
|
Oracle 9i |
ojdbc14.jar、nls_charset12.jar |
|
Oracle 10g |
ojdbc14.jar、orai18n.jar |
|
Oracle 11g |
ojdbc5.jar(Java5)またはojdbc6.jar(Java6)、orai18n.jar |
|
Microsoft SQL Server 2005 |
sqljdbc.jar |
|
Apache Derby 10.2.2.0, 10.5.3.0 |
derbyclient.jar |
JDBCデータソースの登録
ログをデータベースに出力するために使用するJDBCデータソースをWebOTX統合運用管理ツールを用いて登録します。
統合運用管理ツールの画面上でインストール対象のドメイン(例えば[domain1])-[リソース]をクリックします。次に「JDBCデータソース」を右クリックして「JDBCデータソースの登録」を選択します。
「リソースの操作」画面が開きます。この画面を用いてJDBCデータソースを登録します。このとき、次の1点のチェックを解除してから登録します。
「一般」タグの「JTA連携有無」のチェックを解除する。
otxadminコマンドでJDBCデータソースを登録することもできます、詳細はWebOTXマニュアル[ otxadminサブコマンド一覧 ] よりcreate-jdbc-datasourceをご参照ください。
データベースのユーザ登録
メッセージログをデータベースに出力する際に使用するデータベースのユーザ登録を行います。
Oracleでは、以下のSQL文を実行します。「ユーザ名」の部分には前述のJDBCデータソースの登録で指定したユーザ名を指定します。
SQL> CREATE USER ユーザ名 IDENTIFIED BY
ユーザ名;
SQL> GRANT CREATE SESSION, CREATE TABLE, unlimited tablespace
TO ユーザ名;
SQL> GRANT EXECUTE ON SYS.DBMS_SYSTEM TO ユーザ名;
SQL> GRANT CREATE TYPE, CREATE PROCEDURE, EXECUTE ANY
PROCEDURE, EXECUTE ANY TYPE TO ユーザ名;
SQL> GRANT CREATE SEQUENCE TO ユーザ名;
設定方法について説明します。
メッセージログレベル、出力先の設定:
1.[アプリケーションサーバ]-[ESB]-[サービスアセンブリ]を選択し、[ログ関連]タブを開きます。

2.メッセージログレベル、出力先、データベースベンダを設定します。

メッセージログレベルによって出力内容を変更します。
(DB出力の場合の設定項目一覧)
| メッセージログレベル (LogLevel) |
ログ出力 |
|---|---|
| ALL | ○ |
| TRACE | ○ |
| DETAIL | △(FaultかErrorの時のみ出力) |
| DEBUG | △(Errorの時のみ出力) |
| CONFIG | × |
| INFO | × |
| WARN | × |
| ERROR | × |
| OFF | × |
| 属性名(attribute-name) | 説明 | 既定値 |
|---|---|---|
| 出力先(Output) | FILE:メッセージログをファイルに出力します。ファイル出力の詳細は [ 2.1. メッセージログの出力(ファイル)] を参照してください。 DB:メッセージログをDBに出力します。 |
FILE |
| データベースベンダ(DBType) | 使用するデータベースに合わせて、以下から選択します。 Oracle、Microsoft SQL Server、Apache Derby |
- |
|
ダンプログ出力用スレッド数[1-10000] |
メッセージログのダンプログ出力用スレッドの多重度を設定します。 この設定値を変更した場合、ドメイン(マルチプロセスの場合はプロセスグループ)の再起動が必要です。 |
5 |
ログ設定ファイル(log4otx.xml)の設定
ドメイン毎のログ設定ファイル(log4otx.xml)の設定方法については、WebOTXマニュアル[ ログ ] を参照してください。
アペンダに設定できるパラメータは下記の通り。
| パラメータ | 既定値 | 説明 |
|---|---|---|
|
maxBufferSize |
DB出力の際に使用するバッファのサイズ(KB) |
|
|
schema |
|
データベースのスキーマ |
|
jndiName |
jdbc/ESBLOG |
JDBCデータソースのJNDI名 |
|
hostName |
|
ホスト名 |
|
bufferFlushInterval |
1000 |
バッファのポーリング間隔(ms) |
アペンダ設定例:
<appender name="ESBDBLOG"
class="com.nec.webotx.logging.OTXDBAppender">
<errorHandler
class="com.nec.webotx.logging.OTXDBLogErrorHandler">
<appender-ref ref="ESBFILELOG" />
</errorHandler>
<param name="schema"
value="schemaname" />
<param
name="maxBufferSize" value="2000"
/>
<param name="jndiName"
value="jdbc/ESBLOG" />
<param name="hostName"
value="OTXhost" />
<param
name="bufferFlushInterval" value="2000" />
</appender>
(Expressの場合)
ドメインルート/config/log4otx.xml
(Standardの場合)
ドメインルート/config/tpsystem/logconf/<アプリケーショングループ名>/<プロセスグループ名>/log4otx.xml
設定に応じて、NMRとBC/SE間を流れるメッセージは、データベースに記録されます。
ログの見方は[ 2.3. メッセージログの閲覧 ] をご参照ください。
ここでは、統合運用管理ツールでのデータベースに記録されたメッセージログの閲覧方法について、説明します。
データベースドライバの配置
データベースドライバを配置します。
Oracle
9i、10g、11gの場合、データベースドライバは<ORACLE_HOME>/jdbc/lib
ディレクトリにあるojdbc14.jarです。
SQL Server 2005
の場合、データベースドライバはMicrosoftのウェブページにあるsqljdbc.jarです。
Derby 10.2.2.0, 10.5.3.0の場合、データベースドライバは<DERBY_HOME>/lib
ディレクトリにあるderbyclient.jarです。
統合運用管理ツールが起動されているときは、一旦終了します。
スタンドアロン版統合運用管理ツールの場合
データベースドライバライブラリを用意します。
<WebOTX_DIR>/configディレクトリにあるasenv.batファイルに
|
set AS_ADMINGUI_LIB=データベースドライバライブラリ名(パスを含め) |
Oracleの設定例:
set AS_ADMINGUI_LIB=C:\WebOTX\lib\admingui\ojdbc14.jar
プラグイン版統合運用管理ツールの場合
[ウインドウ]-[設定]をクリックして、下図のように、右側の設定タブに「参照」ボタンを押し、JDBCドライバを指定できます。

統合運用管理ツールのメニューバーより「コンポーネント(C)」メニューから[ESB]-[メッセージログ]を選択すると、「データベース接続」ダイアログが表示されます。「データベース接続」ダイアログに必要な情報を入力し「接続」ボタンを押すと、「メッセージログ」ダイアログが表示されます。
「メッセージログ」ダイアログでは、ログの検索やログのエクスポート、インポート、DBからログの削除などの操作ができます。
統合運用管理ツールのメニューバーより「コンポーネント(C)」メニューから[ESB]-[メッセージログ]を選択すると、「データベース接続」ダイアログが表示されます。必要な情報を入力し「接続」ボタンを押すと、メッセージログのメイン画面を表示します。

「データベース接続」で入力する項目は下記の通りです。
| 項目 | 説明 |
|---|---|
|
URL |
データベースに接続するURL(例:jdbc:oracle:thin:@10.20.30.40:1521:LOGDB) |
|
ユーザ名 |
データベースにアクセスするユーザ名 |
|
パスワード |
データベースにアクセスするパスワード |
|
スキーマ |
データベースのスキーマ |
|
データベース |
データベースの種別 |
メッセージログのメイン画面で、「検索開始」のボタンを押す、

「オプション」画面に設定された検索条件に合うメッセージログを検索し画面に表示できます。
メッセージログのメイン画面で、「オプション」ボタンを押すと、「オプション」画面が開かれます。 メッセージログの検索やエクスポートCSV、DBから削除を行う際に、検索条件を指定する必要があります。設定されている条件に合う記録を検索・エクスポート・削除します。検索条件として以下の条件を設定することができます。

|
検索内容 |
ホスト名 |
|
時間範囲 |
ME採取時の時間範囲(既定値:指定しない) |
|
結果表示 |
最大取得件数(既定値:999件) |
|
日付の表示順序 |
降順(既定値)/昇順 |
|
表示内容 |
全て表示(既定値)/Stateの種類を選択して表示 |
検索条件を設定して「検索開始」を押すと、設定されている条件に合うログを検索します。
検索処理中に「検索中止」を押すと、検索を中止することができます。
メッセージログのメイン画面で「ツリー表示」ボタンを押すと、検索されたメッセージログをツリーモードで表示できます。最上位層はSAの昇順で表示し、二階層目はTrace-IDの昇順で表示し、三階層目は時間の昇順やメッセージログのStateの順で表示します。

ツリーモードで表示している時、「行表示」ボタンを押すとまた標準のモードでメッセージログを表示します。
メッセージログのメイン画面で、表示リストの列名をクリックすると、押された列の降順や昇順でメッセージログを表示します。
以下のいずれかの操作により、メッセージログの詳細情報を表示できます。

メッセージログのメイン画面で「インポート」ボタンを押すと、「インポート」ダイアログが表示され、メッセージログファイルをDBへインポートすることができます。

| 項目 | 説明 |
|---|---|
|
入力ディレクトリ |
インポートするメッセージログのディレクトリパス |
|
移動先ディレクトリ |
インポートされたメッセージログ移動先ディレクトリパス。 |
|
ホスト名 |
メッセージログを出力したWebOTXのホスト名 |
|
ドメイン名 |
メッセージログを出力したWebOTXのドメイン名 |
|
入力ファイルの文字コード |
入力するファイルの文字コード。サポートする文字コードは以下です。(既定値:デフォルト):
|
|
エラーが発生しても処理を続行する |
インポート中にエラーが発生した時に、インポート処理を続行するかどうかを指定します。(既定値:選択しない) |
<AS_INSTALL>\jbi\binディレクトリにあるesbmelogadm.batファイル(Unix系OSの場合はesbmelogadmファイル)を利用してメッセージログをDBへインポートすることができます。
詳細はWebOTXマニュアル[ リファレンス集 運用管理・設定編 > 3. 運用管理コマンドリファレンス > 3.2. esbmelogadm > 3.2.1. import ] をご参照ください。
メッセージログのメイン画面で「エクスポート」ボタンを押すと、「エクスポート」ダイアログが表示され。入力した検索条件に合致するログをDBからディレクトリにエクスポートすることできます。

| 項目 | 説明 |
|---|---|
|
出力ディレクトリ |
エクスポート先のメッセージログのディレクトリパス |
|
ホスト名 |
メッセージログを出力したWebOTXのホスト名 |
|
ドメイン名 |
メッセージログを出力したWebOTXのドメイン名 |
|
トレースログのサイズ |
出力するトレースログの最大サイズ。単位はKB/MB/GB。(既定値:1MB) |
|
トレースログの世代数 |
出力するトレースログの世代数。(既定値:3) |
|
出力ファイルの文字コード |
出力するファイルの文字コード。サポートする文字コードは以下です。(既定値:デフォルト):
|
|
検索条件 |
開始日時 |
|
エラーが発生しても処理を続行する |
エクスポート中にエラーが発生した時に、エクスポート処理を続行するかどうかを指定します。(既定値:選択しない) |
<AS_INSTALL>\jbi\binディレクトリにあるesbmelogadm.batファイル(Unix系OSの場合はesbmelogadmファイル)を利用してメッセージログをDBへインポートすることができます。
詳細はWebOTXマニュアル[ リファレンス集 運用管理・設定編 > 3. 運用管理コマンドリファレンス > 3.2. esbmelogadm > 3.2. esbmelogadm > 3.2.2. export ] をご参照ください。
検索条件を設定して「エクスポートCSV」を押すと、「エクスポートの場所」ダイアログが表示されます。ファイル名を指定し「OK」ボタンを押すことで、設定されている条件に合致するログをエクスポートします。

出力するファイルのタイプはCSVファイル形式です。
「メッセージダンプの出力」をチェックすると、ダンプ情報も含めて出力します。
検索条件を設定して「DBから削除(D)」を押すと、設定されている条件に合致する記録をデータベースから削除します。
一度削除したデータは元に戻すことができませんのでご注意下さい。
フィルタ機能を設定すると、選択したサービスユニットが宛先となるメッセージをログ出力から除外することができます。 ログが大量になる時や、必要なものだけ出力したい場合にフィルタ機能を有効にすることで、出力時や閲覧時の負荷を減らすことができます。
設定は統合運用管理ツールと管理コマンドのいずれかで行います。
統合運用管理ツール:
1.[ドメイン名]-[アプリケーションサーバ]-[ESB]-[サービスアセンブリ]-各サービスアセンブリを選択
2.[ログ関連]タブを開く
3.フィルタするサービスユニットのリストから[追加]ボタンを押し、ログ出力から除外したいサービスユニット名を入力する。

管理コマンド:
otxadminコマンドから設定する。
(シングルプロセスの場合)
|
server.jbi.service-assemblies.<サービスアセンブリ名>.sulist |
(マルチプロセスの場合)
|
server.jbi.service-assemblies.applicationGroups.<アプリケーショングループ>.processGroups.<プロセスグループ名>.<サービスアセンブリ名>.sulist |
設定例
(シングルプロセスの場合)
|
set server.jbi.service-assemblies.<サービスアセンブリ名>.sulist = “<SU名>” |
(マルチプロセスの場合)
|
set server.jbi.service-assemblies.applicationGroups.<アプリケーショングループ>.processGroups.<プロセスグループ名>.<サービスアセンブリ名>.sulist = “<SU名>” |