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

[目次][用語][索引][前へ][次へ]

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

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

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

ログ・トレース 出力情報 説明
メッセージログ コマンドアダプタで発生した各種情報が,メッセージとして出力されます。 稼働情報(起動・停止・障害など)をメッセージとして確認できます。なお,メッセージログの出力先は,アプリケーションサーバおよびサービスプラットフォーム全体で共通のため,システムの稼働状況を一括して確認できます。
メンテナンスログ コマンドアダプタ内部の保守情報として,次の情報が出力されます。
  • 日付
  • 時刻
  • 実行クラス名
  • 内部メソッド名
  • 発生した例外
  • 指定した引数の情報
内部メソッドの発行時刻およびシーケンスを確認できます。
性能解析トレース サービスプラットフォームシステム全体の性能解析トレース取得ポイントで,次の情報が出力されます。
  • 日付
  • 時刻
  • リクエスト情報
  • トレース取得元情報
コマンドアダプタの性能解析トレース取得ポイントでは,コマンドアダプタ固有の情報が出力されます。
サービスリクエスタから要求を受け付けて,実行結果を返却するまでの一連の処理で出力される性能解析情報を基に,サービスプラットフォームシステムの性能を検証できます。
例外ログ コマンドアダプタで発生した例外情報(スタックトレース)が出力されます。 コマンドアダプタの例外情報を確認できます。障害要因の解析に利用できます。
<この項の構成>
(1) snapshotログ
(2) メッセージログ
(3) メンテナンスログ
(4) 性能解析トレース(PRFトレース)
(5) 例外ログ
(6) 外部コマンドプロセスの標準エラー出力ログ
(7) 外部コマンドプロセス起動後に例外が発生した場合の対処
(8) スレッドの解放
(9) ファイルディスクリプタの解放

(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-182 メッセージの情報種別と出力レベルとの対応関係

情報種別 出力レベル
0 10 20
エラーメッセージ
  • 例外や障害の発生時
警告メッセージ
  • システムを運用する上で確認する必要があるもの
インフォメーションメッセージ
  • コマンドアダプタの状態変更(起動・停止)
  • イベント通知(外部コマンドの起動・終了)

(凡例)
○:すべて出力されます。
△:重要なメッセージだけ出力されます。

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

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

設定 キー デフォルト値 指定可能値
メッセージログの出力レベル adpcmd.log.messagelog.level 10 0
10
20
(b) 出力先

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

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

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

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

表7-184 メッセージログのログファイル名

ログファイルの出力モード ログファイル名
ラップアラウンドモードの場合 cjmessage<面数>.log
シフトモードの場合 cjmessage.log

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

(c) ファイル面数

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

(d) ファイルサイズ

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

(3) メンテナンスログ

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

(a) 出力レベル設定

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

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

情報種別 出力レベル
1 2 3 4 5
エラー情報,例外発生原因
主要外部モジュールのインターフェース情報
  • カスタムアダプタフレームワーク関連
×
外部モジュールのインターフェース情報
  • 外部コマンドプロセス関連
× ×
主要なコンポーネント内インターフェース情報 × × ×
デバッグ情報 × × × ×

(凡例)
○:出力されます。
×:出力されません。

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

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

設定 キー デフォルト値 指定可能値
メンテナンスログの出力レベル adpcmd.log.methodtrace.level 3 1
2
3
4
5
(b) 出力形式

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

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

[図データ]

(c) 出力される内容

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

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

項目 内容
番号 メンテナンスログの出力通番が表示されます。
日付 メンテナンスログの取得日付が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-188 メンテナンスログのログファイル名(コマンドアダプタ)

ログファイルの出力モード ログファイル名
ラップアラウンドモードの場合 cscadpcmdmnt_<HCSCサーバ名>_<面数>.log
シフトモードの場合 cscadpcmdmnt_<HCSCサーバ名>_.log

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

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

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

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

(a) 出力形式

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

(b) 出力先

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

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

トレースの出力先パス トレースファイル名
<環境変数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-147 性能解析トレースの取得ポイント(コマンドアダプタ)

[図データ]

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

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

イベントID 図中の番号 トレース取得ポイント レベル※1
0xab06 1 リクエスト受付時 標準
0xab08 2 外部コマンド起動時 標準
0xab09 3 外部コマンドプロセス完了時※2 標準
0xab07 4 レスポンス送信時 標準

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

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

(5) 例外ログ

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

(a) 出力形式

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

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

[図データ]

(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-191 例外ログのログファイル名(コマンドアダプタ)

ログファイルの出力モード ログファイル名
ラップアラウンドモードの場合 cscadpcmdexp_<HCSCサーバ名>_<面数>.log
シフトモードの場合 cscadpcmdexp_<HCSCサーバ名>_.log

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

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

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

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

(a) 出力可否の設定

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

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

設定 キー デフォルト値 指定可能値
標準エラー出力ログの有効または無効の設定 adpcmd.log.stderr.enable true true
false

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

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

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

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

設定 キー デフォルト値 指定可能値
標準エラー出力の文字コードの設定 adpcmd.log.stderr.charset UTF-8 UTF-8
MS932
EUC-JP
(c) 出力形式

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

図7-149 標準エラー出力ログの出力形式

[図データ]

(d) 出力される内容

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

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

項目 内容
番号 標準エラー出力ログの出力通番が表示されます。
日付 標準エラー出力ログの取得日付が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-195 標準エラー出力ログのログファイル名(コマンドアダプタ)

ログファイルの出力モード ログファイル名
ラップアラウンドモードの場合 cscadpcmdstderr_<HCSCサーバ名>_<面数>.log
シフトモードの場合 cscadpcmdstderr_<HCSCサーバ名>_.log

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

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

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

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

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

(8) スレッドの解放

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

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

表7-196 生成するスレッドとスレッド数

スレッドの用途 生成スレッド数
外部コマンド実行中に必要なスレッド 2
強制終了用スレッド※1 プロセスタイムアウト発生時※2 1
外部コマンドプロセス起動後の例外発生時 1

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

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

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

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

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

発生メッセージと条件 残留スレッド数 対処方法
KDEC81553-Eが発生,
かつタイムアウト発生時の外部コマンドプロセス強制終了可否が無効のとき
2 必要に応じて起動したプロセスを停止してください。
KDEC81561-Eが発生 2 コマンドプロセスからのサブプロセスをバックグラウンドで起動することは禁止事項です。コマンドアダプタから指定するコマンドの処理を見直してください。
バックグラウンドで実行されているサブプロセスを外部から終了させてください。
KDEC81557-Eが発生 1 起動したプロセスの状態を確認してください。また,必要に応じて起動したプロセスを停止してください。
KDEC81560-Eが発生 1 起動したプロセスの状態を確認してください。また,必要に応じて起動したプロセスを停止してください。
注意
コマンドアダプタで指定した外部コマンドプロセスから,サブプロセスをバックグラウンドで起動することは禁止事項です。サブプロセスをバックグラウンドで起動した場合,メッセージの出力の有無に関係なくスレッドが残留するおそれがあります。

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

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

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