Hitachi

Cosminexus V11 BPM/ESB基盤 サービスプラットフォーム システム構築・運用ガイド


7.7.17 コマンドアダプタ実行時の障害対策

コマンドアダプタでは,システムの性能を検証したり,障害の原因を解析したりするための情報が,ログファイルまたはトレースファイルに出力されます。コマンドアダプタで出力されるログおよびトレースの種類を次の表に示します。

表7‒190 ログ・トレースの種類(コマンドアダプタの場合)

ログ・トレース

出力情報

説明

メッセージログ

コマンドアダプタで発生した各種情報が,メッセージとして出力されます。

稼働情報(起動・停止・障害など)をメッセージとして確認できます。なお,メッセージログの出力先は,アプリケーションサーバおよびサービスプラットフォーム全体で共通のため,システムの稼働状況を一括して確認できます。

メンテナンスログ

コマンドアダプタ内部の保守情報として,次の情報が出力されます。

  • 日付

  • 時刻

  • 実行クラス名

  • 内部メソッド名

  • 発生した例外

  • 指定した引数の情報

内部メソッドの発行時刻およびシーケンスを確認できます。

性能解析トレース

サービスプラットフォームシステム全体の性能解析トレース取得ポイントで,次の情報が出力されます。

  • 日付

  • 時刻

  • リクエスト情報

  • トレース取得元情報

コマンドアダプタの性能解析トレース取得ポイントでは,コマンドアダプタ固有の情報が出力されます。

サービスリクエスタから要求を受け付けて,実行結果を返却するまでの一連の処理で出力される性能解析情報を基に,サービスプラットフォームシステムの性能を検証できます。

例外ログ

コマンドアダプタで発生した例外情報(スタックトレース)が出力されます。

コマンドアダプタの例外情報を確認できます。障害要因の解析に利用できます。

〈この項の構成〉

(1) snapshotログ

mngsvrutilコマンドやsnapshotlogコマンドでの採取対象にコマンドアダプタを追加するには,snapshotログ収集対象定義ファイルの修正が必要な場合があります。

サービスプラットフォームが提供するほかのサービスアダプタと同じレベルの収集設定とする場合には,次に示す内容をそれぞれのファイルに追記してください。すでに記述されている場合は修正不要です。

(a) snapshotlog.conf

${cosminexus.home}/CC/server/public/ejb/.+/logs/CSCADP/ADPCMD/maintenance/.+/cscadpcmdexp_.*\.log
&{ejb.public.directory}/ejb/.+/logs/CSCADP/ADPCMD/maintenance/.+/cscadpcmdexp_.*\.log
&{ejb.server.log.directory}/CSCADP/ADPCMD/maintenance/.+/cscadpcmdexp_.*\.log
${cosminexus.home}/CSC/custom-adapter/Command/config/.+
${cosminexus.home}/CSC/custom-adapter/Command/config/.+/.+

(b) snapshotlog2.conf

${cosminexus.home}/CC/server/public/ejb/.+/logs/CSCADP/ADPCMD/maintenance/.+/cscadpcmdmnt_.*\.log
&{ejb.public.directory}/ejb/.+/logs/CSCADP/ADPCMD/maintenance/.+/cscadpcmdmnt_.*\.log
&{ejb.server.log.directory}/CSCADP/ADPCMD/maintenance/.+/cscadpcmdmnt_.*\.log

(c) snapshotlog.param.conf

${cosminexus.home}/CSC/custom-adapter/Command/config/.+
${cosminexus.home}/CSC/custom-adapter/Command/config/.+/.+

(2) メッセージログ

メッセージログのJ2EEサーバの稼働ログに,コマンドアダプタで発生した各種情報がメッセージとして出力されます。

メッセージログの出力内容や出力先については,「7.4.1 メッセージログ」を参照してください。

(a) 出力レベル設定

コマンドアダプタが出力するメッセージのうち,どのレベルまでメッセージログに出力するかを設定できます。メッセージの情報種別と,設定値との対応を次に示します。

表7‒191 メッセージの情報種別と出力レベルとの対応関係

情報種別

出力レベル

0

10

20

エラーメッセージ

  • 例外や障害の発生時

警告メッセージ

  • システムを運用する上で確認する必要があるもの

インフォメーションメッセージ

  • コマンドアダプタの状態変更(起動・停止)

  • イベント通知(外部コマンドの起動・終了)

(凡例)

○:すべて出力されます。

△:重要なメッセージだけ出力されます。

出力レベルは,コマンドアダプタ実行環境プロパティファイルで設定できます。プロパティキーを次の表に示します。

表7‒192 メッセージログの出力レベル設定

設定

キー

デフォルト値

指定可能値

メッセージログの出力レベル

adpcmd.log.messagelog.level

10

0

10

20

(b) 出力先

メッセージログの出力先を次に示します。

J2EEサーバ稼働ログの出力先に指定されたパス

J2EEサーバ稼働ログの出力先は,HCSCサーバが動作するJ2EEサーバ用オプション定義ファイル(usrconf.cfg)のejb.server.log.directoryキーで指定します。詳細は,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.2.2 usrconf.cfg(J2EEサーバ用オプション定義ファイル)」,および「2.2.3 usrconf.properties(J2EEサーバ用ユーザプロパティファイル)」を参照してください。

メッセージログのログファイル名を次の表に示します。

表7‒193 メッセージログのログファイル名

ログファイルの出力モード

ログファイル名

ラップアラウンドモードの場合

cjmessage<面数>.log

シフトモードの場合

cjmessage.log

注※

ログファイルはアプリケーションサーバおよびサービスプラットフォーム全体で共通です。HCSCサーバ上にあるすべての製品の運用情報および障害情報のメッセージログが出力されます。

(c) ファイル面数

出力ファイル面数は,HCSCサーバが動作するJ2EEサーバ用ユーザプロパティファイル(usrconf.properties)のejbserver.logger.channels.define.<チャネル名>.filenumキーで指定します。詳細については,次に示すマニュアルを参照してください。

(d) ファイルサイズ

出力ファイルサイズは,HCSCサーバが動作するJ2EEサーバ用ユーザプロパティファイル(usrconf.properties)のejbserver.logger.channels.define.<チャネル名>.filesizeキーで指定します。詳細については,次に示すマニュアルを参照してください。

(3) メンテナンスログ

コマンドアダプタの内部メソッド発行の時刻やシーケンスを確認できます。保守員が障害解析のために使用します。

(a) 出力レベル設定

どのレベルまでメンテナンスログに出力するかを設定できます。出力する情報種別と,設定値との対応を次の表に示します。

表7‒194 メンテナンスログの出力情報種別と出力レベルとの対応関係

情報種別

出力レベル

1

2

3

4

5

エラー情報,例外発生原因

主要外部モジュールのインターフェース情報

  • カスタムアダプタフレームワーク関連

×

外部モジュールのインターフェース情報

  • 外部コマンドプロセス関連

×

×

主要なコンポーネント内インターフェース情報

×

×

×

デバッグ情報

×

×

×

×

(凡例)

○:出力されます。

×:出力されません。

出力レベルは,コマンドアダプタ実行環境プロパティファイルで設定できます。プロパティキーを次の表に示します。

表7‒195 メンテナンスログの出力レベル設定

設定

キー

デフォルト値

指定可能値

メンテナンスログの出力レベル

adpcmd.log.methodtrace.level

3

1

2

3

4

5

(b) 出力形式

メンテナンスログの出力形式を次の図に示します。

図7‒152 メンテナンスログの出力形式(コマンドアダプタ)

[図データ]

(c) 出力される内容

メンテナンスログに出力される内容を次の表に示します。

表7‒196 メンテナンスログに出力される内容(コマンドアダプタ)

項目

内容

番号

メンテナンスログの出力通番が表示されます。

日付

メンテナンスログの取得日付がyyyy/mm/ddの形式で出力されます。

  • yyyy:西暦年

  • mm:月

  • dd:日

時刻

メンテナンスログの取得時刻がhh:mm:ss.SSSの形式で出力されます。

  • hh:時

  • mm:分

  • ss:秒

  • SSS:ミリ秒

製品ID

製品を特定するための識別子として,コマンドアダプタを示す「ADPCMD」と,バージョン情報が出力されます。

バージョン情報の形式は次のとおりです。

  • 正規版製品:VV-RR

  • 修正版製品:VV-RR-SS

pid

プロセスを識別するためのIDが出力されます。

tid

スレッドを識別するためのIDが出力されます。

ID,種別

表示されません。

出力種別

メンテナンスログの取得ポイント情報(取得位置)が出力されます。

  • BGN:メソッドの開始

  • END:メソッドの終了

  • CAL:メソッドの呼び出し

  • RET:メソッドの戻り

  • THR:例外のスロー

  • CTH:例外のキャッチ

クラス名

メンテナンスログを取得するクラス名が出力されます。

メソッド名

メンテナンスログを取得するメソッド名が出力されます。

入出力情報

メンテナンスログを取得するメソッドの入出力情報またはスタックトレースが出力されます。

CRLF

レコードの終端符号が出力されます。

(d) 出力先

メンテナンスログの出力先を次に示します。

<J2EEサーバのログ出力ディレクトリ>/CSCADP/ADPCMD/maintenance/<サービスID>

メンテナンスログのログファイル名を次の表に示します。

表7‒197 メンテナンスログのログファイル名(コマンドアダプタ)

ログファイルの出力モード

ログファイル名

ラップアラウンドモードの場合

cscadpcmdmnt_<HCSCサーバ名>_<面数>.log

シフトモードの場合

cscadpcmdmnt_<HCSCサーバ名>_.log

なお,ログファイルの面数はコマンドアダプタ実行環境プロパティファイル,またはコマンドアダプタ実行環境共通プロパティファイルのadpcmd.log.methodtrace.filenumプロパティ,ログファイルのサイズはadpcmd.log.methodtrace.filesizeプロパティで指定します。

コマンドアダプタ実行環境プロパティファイルの詳細は,マニュアル「サービスプラットフォーム リファレンス」の「6.15.3 コマンドアダプタ実行環境プロパティファイル」を参照してください。コマンドアダプタ実行環境共通プロパティファイルについては,マニュアル「サービスプラットフォーム リファレンス」の「6.15.4 コマンドアダプタ実行環境共通プロパティファイル」を参照してください。

(4) 性能解析トレース(PRFトレース)

サービスリクエスタから要求を受け付けて,実行結果を返却するまでの一連の処理で出力される性能解析情報を基に,アプリケーションサーバおよびサービスプラットフォームシステムの性能を検証できます。コマンドアダプタの性能解析トレース取得ポイントでは,コマンドアダプタ固有の情報が出力されます。保守員が性能ボトルネックの解析のために使用します。

(a) 出力形式

性能解析トレースファイルに出力される形式は,J2EEサーバの性能解析トレースと同様です。詳細は,マニュアル「アプリケーションサーバ 機能解説 保守/移行編」の「7.3 Management Serverを利用した性能解析トレースファイルの収集」を参照してください。

(b) 出力先

性能解析トレースの出力先およびトレースファイル名を次の表に示します。

表7‒198 性能解析トレースの出力先およびトレースファイル名

トレースの出力先パス

トレースファイル名

<環境変数PRFSPOOLの設定ディレクトリ>\utt\prf\<PRF識別子>\dcopltrc

prf_<n>

(凡例)

n:001からファイル面数の最大値までの整数が入ります。

注※

性能解析トレースの出力先は,アプリケーションサーバおよびサービスプラットフォーム全体で共通です。詳細は,マニュアル「アプリケーションサーバ 機能解説 保守/移行編」の「7.3 Management Serverを利用した性能解析トレースファイルの収集」を参照してください。

(c) ファイル面数

出力ファイル面数のデフォルトは4面です。出力ファイル面数は,運用管理ポータルまたはcprfコマンドで変更できます。運用管理ポータルの詳細はマニュアル「アプリケーションサーバ 運用管理ポータル操作ガイド」を,cprfコマンドの詳細はマニュアル「アプリケーションサーバ リファレンス コマンド編」を参照してください。

(d) ファイルサイズ

運用管理ポータルでファイルサイズを設定した場合,ファイルサイズのデフォルトは32MBです。cprfコマンドでファイルサイズを設定した場合,ファイルサイズのデフォルトは8MBです。ファイルサイズは,運用管理ポータルまたはcprfコマンドで変更できます。運用管理ポータルの詳細はマニュアル「アプリケーションサーバ 運用管理ポータル操作ガイド」を,cprfコマンドの詳細はマニュアル「アプリケーションサーバ リファレンス コマンド編」を参照してください。

(e) 性能解析トレースの取得ポイント

性能解析トレースの取得ポイントを次の図に示します。

図7‒153 性能解析トレースの取得ポイント(コマンドアダプタ)

[図データ]

イベントID,トレース取得ポイント,および性能解析トレース取得レベルを次の表に示します。表の「図中の番号」は,図中の番号と対応しています。

表7‒199 性能解析トレース取得ポイント(コマンドアダプタ)

イベントID

図中の番号

トレース取得ポイント

レベル※1

0xab06

1

リクエスト受付時

標準

0xab08

2

外部コマンド起動時

標準

0xab09

3

外部コマンドプロセス完了時※2

標準

0xab07

4

レスポンス送信時

標準

注※1

性能解析トレースのレベルの変更方法については,「トレース取得レベルの変更」,マニュアル「アプリケーションサーバ リファレンス コマンド編」,およびマニュアル「アプリケーションサーバ 機能解説 保守/移行編」を参照してください。デフォルトは標準です。

注※2

外部コマンドの処理中にタイムアウトが発生した場合も,トレース取得ポイントは外部コマンドプロセス完了時と同様です。

(5) 例外ログ

例外ログは,メンテナンスログと同じタイミングで開始・終了し,例外情報(スタックトレース)を採取してファイルに出力します。例外ログファイルの出力先はコマンドアダプタのメンテナンスログと同じディレクトリであるため,個別には変更できません。

(a) 出力形式

例外ログに出力される形式を次に示します。

図7‒154 例外ログの出力形式(コマンドアダプタ)

[図データ]

(b) 出力される内容

例外ログに出力される内容を次の表に示します。

項目

内容

番号

例外ログの出力通番が表示されます。

日付

例外ログの取得日付がyyyy/mm/ddの形式で出力されます。

  • yyyy:西暦年

  • mm:月

  • dd:日

時刻

例外ログの取得時刻がhh:mm:ss.SSSの形式で出力されます。

  • hh:時

  • mm:分

  • ss:秒

  • SSS:ミリ秒

製品ID

製品を特定するための識別子として,コマンドアダプタを示す「ADPCMD」が出力されます。

pid

プロセスを識別するためのIDが出力されます。

tid

スレッドを識別するためのIDが出力されます。

ID

空白

スタックトレース情報

スタックトレース情報が出力されます。

CRLF

レコードの終端符号が出力されます。

(c) 出力先

例外ログの出力先を次に示します。

<J2EEサーバのログ出力ディレクトリ>/CSCADP/ADPCMD/maintenance/<サービスID>

例外ログのログファイル名を次の表に示します。

表7‒200 例外ログのログファイル名(コマンドアダプタ)

ログファイルの出力モード

ログファイル名

ラップアラウンドモードの場合

cscadpcmdexp_<HCSCサーバ名>_<面数>.log

シフトモードの場合

cscadpcmdexp_<HCSCサーバ名>_.log

なお,ログファイルの面数はコマンドアダプタ実行環境プロパティファイル,またはコマンドアダプタ実行環境共通プロパティファイルのadpcmd.log.exptrace.filenumプロパティで,ログファイルのサイズはadpcmd.log.exptrace.filesizeプロパティで指定します。なお,これらのプロパティはコマンドアダプタ実行環境共通プロパティファイルでも指定できます。

コマンドアダプタ実行環境プロパティファイルについては,マニュアル「サービスプラットフォーム リファレンス」の「6.15.3 コマンドアダプタ実行環境プロパティファイル」を参照してください。コマンドアダプタ実行環境共通プロパティファイルについては,マニュアル「サービスプラットフォーム リファレンス」の「6.15.4 コマンドアダプタ実行環境共通プロパティファイル」を参照してください。

(6) 外部コマンドプロセスの標準エラー出力ログ

外部コマンドプロセスの標準エラー出力への出力内容を,ログファイルで確認できます。

(a) 出力可否の設定

コマンドアダプタごとに,標準エラー出力ログ機能の有効または無効を設定できます。コマンドアダプタ実行環境プロパティファイルのプロパティキーを次の表に示します。

表7‒201 標準エラー出力ログの有効または無効の設定

設定

キー

デフォルト値

指定可能値

標準エラー出力ログの有効または無効の設定

adpcmd.log.stderr.enable

true

true

false

標準エラー出力ログを有効にするには,trueを設定します。

(b) 標準エラー出力の文字コード

コマンドアダプタごとに,標準エラー出力の内容を読み込む際の文字コードを設定できます。コマンドアダプタ実行環境プロパティファイルのプロパティキーを次の表に示します。

表7‒202 標準エラー出力の文字コードの設定

設定

キー

デフォルト値

指定可能値

標準エラー出力の文字コードの設定

adpcmd.log.stderr.charset

UTF-8

UTF-8

MS932

EUC-JP

(c) 出力形式

標準エラー出力ログの出力形式を次の図に示します。

図7‒155 標準エラー出力ログの出力形式

[図データ]

(d) 出力される内容

標準エラー出力ログに出力される内容を次の表に示します。

表7‒203 標準エラー出力ログに出力される内容(コマンドアダプタ)

項目

内容

番号

標準エラー出力ログの出力通番が表示されます。

日付

標準エラー出力ログの取得日付がyyyy/mm/ddの形式で出力されます。

  • yyyy:西暦年

  • mm:月

  • dd:日

時刻

標準エラー出力ログの取得時刻がhh:mm:ss.SSSの形式で出力されます。

  • hh:時

  • mm:分

  • ss:秒

  • SSS:ミリ秒

製品ID

製品を特定するための識別子として,コマンドアダプタを示す「ADPCMD」と,バージョン情報が出力されます。

バージョン情報の形式は次のとおりです。

  • 正規版製品:VV-RR

  • 修正版製品:VV-RR-SS

pid

プロセスを識別するためのIDが出力されます。

tid

スレッドを識別するためのIDが出力されます。

ID

標準エラー出力の内容の場合:空白

外部コマンド起動直後:KDEC81622-Iメッセージ

標準エラー出力

標準エラー出力の内容の場合:

  • LF(0x0a)を検出したとき,LFの1バイト前までを文字列に変換して出力します。

    ただし,1バイト前がCR(0x0d)だったとき,CRは出力しません。

  • 1024バイトまでLFを検出しないまま,1024バイトを超過したとき, 1024バイトまでを文字列に変換して出力します。

  • 外部コマンドプロセスが終了したとき,未出力データを文字列に変換して出力します。

外部コマンド起動直後メッセージの場合:メッセージとパラメタを出力します。

CRLF

レコードの終端符号が出力されます。

注※

スレッドIDはほかのログと一致しません。

(e) 出力先

外部コマンドプロセスの標準エラー出力ログの出力先を次に示します。

<J2EEサーバのログ出力ディレクトリ>/CSCADP/ADPCMD/maintenance/<サービスID>

標準エラー出力ログのログファイル名を次の表に示します。

表7‒204 標準エラー出力ログのログファイル名(コマンドアダプタ)

ログファイルの出力モード

ログファイル名

ラップアラウンドモードの場合

cscadpcmdstderr_<HCSCサーバ名>_<面数>.log

シフトモードの場合

cscadpcmdstderr_<HCSCサーバ名>_.log

なお,ログファイルの面数はコマンドアダプタ実行環境プロパティファイル,またはコマンドアダプタ実行環境共通プロパティファイルのadpcmd.log.exptrace.filenumプロパティで,ログファイルのサイズはadpcmd.log.exptrace.filesizeプロパティで指定します。なお,これらのプロパティはコマンドアダプタ実行環境共通プロパティファイルでも指定できます。

(7) 外部コマンドプロセス起動後に例外が発生した場合の対処

外部コマンドの起動から,タイムアウト待ちの間でJavaの例外が内部で発生した場合,外部コマンドプロセスの強制終了を試みます。

強制終了に成功した場合,メッセージログに警告メッセージ(KDEC81559-W)が出力されます。

強制終了に失敗した場合,メッセージログにエラーメッセージ(KDEC81560-E)が出力されます。この場合,外部コマンドプロセスの状態については,システム運用者が確認する必要があります。

(8) スレッドの解放

コマンドアダプタでは,1リクエストに対して最大3つのスレッドを生成します。

生成するスレッドとスレッド数を次の表に示します。

表7‒205 生成するスレッドとスレッド数

スレッドの用途

生成スレッド数

外部コマンド実行中に必要なスレッド

2

強制終了用スレッド※1

プロセスタイムアウト発生時※2

1

外部コマンドプロセス起動後の例外発生時

1

注※1

生成スレッドは,1リクエストに対して最大1つです。

注※2

タイムアウト発生時の外部コマンドプロセス強制終了が有効のときだけ生成されます。

条件によってはコマンドアダプタ応答後にスレッドが残留します。そのためJ2EEサーバのリソースが枯渇しないように,適切に対処する必要があります。

発生するメッセージと対処方法を次の表に示します。

表7‒206 発生メッセージと残留スレッドへの対処

発生メッセージと条件

残留スレッド数

対処方法

KDEC81553-Eが発生,

かつタイムアウト発生時の外部コマンドプロセス強制終了可否が無効のとき

2

必要に応じて起動したプロセスを停止してください。

KDEC81561-Eが発生

2

コマンドプロセスからのサブプロセスをバックグラウンドで起動することは禁止事項です。コマンドアダプタから指定するコマンドの処理を見直してください。

バックグラウンドで実行されているサブプロセスを外部から終了させてください。

KDEC81557-Eが発生

1

起動したプロセスの状態を確認してください。また,必要に応じて起動したプロセスを停止してください。

KDEC81560-Eが発生

1

起動したプロセスの状態を確認してください。また,必要に応じて起動したプロセスを停止してください。

注意事項

コマンドアダプタで指定した外部コマンドプロセスから,サブプロセスをバックグラウンドで起動することは禁止事項です。サブプロセスをバックグラウンドで起動した場合,メッセージの出力の有無に関係なくスレッドが残留するおそれがあります。

(9) ファイルディスクリプタの解放

コマンドアダプタでは,1リクエストに対して最大3つのファイルディスクリプタを消費します。また,コマンドアダプタ応答後も,外部コマンドプロセスが終了しないかぎりファイルディスクリプタは解放されません。必要に応じて起動したプロセスを停止してください。

ファイルディスクリプタ数の見積もり方法については,「付録I.1 ファイルディスクリプタ数の見積もり」を参照してください。