3.3.1 障害検知時コマンドによる資料取得の設定(J2EEアプリケーションを実行するシステム)

ここでは,トラブルシューティングの資料を障害検知時コマンドで取得するための設定について説明します。障害検知時コマンドで取得した資料はsnapshotログとして収集できます。

障害検知時コマンドには,システムで提供しているコマンドとユーザが作成したコマンドの2種類があります。デフォルトの設定では,論理サーバにトラブルが発生した場合にシステム提供の障害検知時コマンドが実行されて,スレッドダンプや性能解析トレースなどが取得されます。また,トラブルが発生した論理サーバの停止前にsnapshotログが収集されます。システム提供の障害検知時コマンドで取得できる情報については,「2.3.2(1) システムで提供されている障害検知時コマンドで取得できる情報」を参照してください。

システム提供の障害検知時コマンドの動作設定を変更する場合には,「(1) Management Serverでの環境設定」および「(2) 運用管理エージェントでの環境設定」が必要です。また,ユーザ作成の障害検知時コマンドを利用する場合は,「(1) Management Serverでの環境設定」,「(2) 運用管理エージェントでの環境設定」および「(3) ユーザ作成の障害検知時コマンドのコマンドファイル作成」が必要です。それぞれの設定内容について,(1)~(3)で説明します。

注意
ユーザ作成の障害検知時コマンドで取得した資料をsnapshotログとして収集するためには,その資料の取得先をsnapshotログの収集先に追加する必要があります。snapshotログの収集先の追加については,「3.3.3(3) snapshotログの収集先のカスタマイズ」を参照してください。
<この項の構成>
(1) Management Serverでの環境設定
(2) 運用管理エージェントでの環境設定
(3) ユーザ作成の障害検知時コマンドのコマンドファイル作成

(1) Management Serverでの環境設定

mserver.properties(Management Server環境設定ファイル)で,障害検知時コマンドの動作を設定します。

次のキーで,障害検知時コマンドの動作を設定します。

キー説明設定の要否
システムユーザ
com.cosminexus.mngsvr.sys_cmd.abnormal_end.enabledシステム提供の障害検知時コマンドを利用するかどうかを指定します。デフォルトは,true(利用する)です。
com.cosminexus.mngsvr.usr_cmd.abnormal_end.enabledユーザ作成の障害検知時コマンドを利用するかどうかを指定します。デフォルトは,false(利用しない)です。
com.cosminexus.mngsvr.sys_cmd.abnormal_end.timeoutシステム提供の障害検知時コマンドの終了を待つ時間を指定します。指定時間を経過してもコマンドが終了しない場合は,ユーザ回復処理を続行します。
com.cosminexus.mngsvr.usr_cmd.abnormal_end.timeoutユーザ作成の障害検知時コマンドの終了を待つ時間を指定します。
com.cosminexus.mngsvr.snapshot.auto_collect.enabled障害発生時,または一括再起動時にsnapshotログを取得するかどうかを指定します。デフォルトは,true(snapshotログを取得する)です。
com.cosminexus.mngsvr.snapshot.collect.pointsnapshotログの収集タイミングとして,次のどちらかを指定します。
  • 論理サーバの停止前
  • J2EEサーバの再起動前
デフォルトは,論理サーバの停止前です。
(凡例)
システム:システム提供の障害検知時コマンドでの設定の要否を示す
ユーザ:ユーザ作成の障害検知時コマンドでの設定の要否を示す
○:設定は必要
△:デフォルトの設定を変更する場合だけ必要
-:設定は不要

(2) 運用管理エージェントでの環境設定

adminagent.properties(運用管理エージェントプロパティファイル)で,障害検知時コマンドで取得する資料を設定します。

adminagent.propertiesの次のキーで,障害検知時コマンドで取得する資料の数や取得の有無,障害検知時コマンドのパスなどを設定します。なお,snapshotログの収集先を定義するためのsnapshotログ収集対象定義ファイルについては,「3.3.3(3) snapshotログの収集先のカスタマイズ」を参照してください。

キー説明設定の要否
システムユーザ
adminagent.snapshotlog.num_snapshots一次送付資料として収集する,論理サーバごとのsnapshotログファイルの数を指定します。
adminagent.snapshotlog.listfile.2.num_snapshots二次送付資料として収集する,論理サーバごとのsnapshotログファイルの数を指定します。
adminagent.j2ee.sys_cmd.abnormal_end.threaddumpシステム提供の障害検知時コマンドで,スレッドダンプを取得するかどうかを指定します。
adminagent.sys_cmd.abnormal_end.prftraceシステム提供の障害検知時コマンドで,性能解析トレースファイルを取得するかどうかを指定します。
adminagent.<論理サーバの種類>.usr_cmd.abnormal_end論理サーバの種類ごとに,実行する障害検知時コマンドのパスを指定します。
(凡例)
システム:システム提供の障害検知時コマンドでの設定の要否を示す
ユーザ:ユーザ作成の障害検知時コマンドでの設定の要否を示す
○:設定は必要
△:デフォルトの設定を変更する場合だけ必要
-:設定は不要

(3) ユーザ作成の障害検知時コマンドのコマンドファイル作成

ユーザ作成の障害検知時コマンドは,コマンドファイル(バッチファイルまたはシェルスクリプトファイル)に記述できます。このとき,次の表に示す環境変数をコマンドファイルに記述しておくことで,障害の発生した論理サーバの情報や障害に関する情報を利用してコマンドを実行できます。

表3-5 ユーザ作成の障害検知時コマンドのコマンドファイルに記述できる環境変数

環境変数説明
COSMI_MNG_LSNAME障害の発生した論理サーバの論理サーバ名。なお,論理CTM内のネーミングサービスで障害が発生した場合は,論理CTMの論理サーバ名が設定されます。
COSMI_MNG_RSNAME障害の発生した論理サーバの実サーバ名。J2EEサーバまたはSFOサーバ以外の論理サーバの場合,論理サーバ名が設定されます。
COSMI_MNG_LSPID論理サーバのプロセスID。
COSMI_MNG_LSARGS論理サーバを起動したときのコマンドライン。
COSMI_MNG_TIME_SUSPENDEDハングアップを検知した時刻。万国標準時(UTC)の1970年1月1日午前0時からの経過時間(単位:ms)。なお,無応答を検知しない場合,値は設定されません。
COSMI_MNG_TIME_TERMINATED異常停止(プロセスダウン)を検知した時刻。万国標準時(UTC)の1970年1月1日午前0時からの経過時間(単位:ms)。なお,ハングアップの場合,値は設定されません。
COSMI_MNG_WEB_SYSTEM障害が発生した論理サーバが所属するWebシステム。Smart Composer機能を使用しない場合,値は設定不要です。
COSMI_MNG_TIER障害が発生した論理サーバが所属する物理ティア。Smart Composer機能を使用しない場合,値は設定不要です。
COSMI_MNG_UNIT障害が発生した論理サーバが所属するサービスユニット。Smart Composer機能を使用しない場合,値は設定不要です。
COSMI_MNG_HWSHitachi Web Serverのインストールディレクトリ。

なお,障害検知コマンドとして実行するコマンドから出力される標準出力,標準エラー出力は,Management Serverでは取得しません。このため,コマンドの標準出力,標準エラー出力を取得する場合は,コマンドの中でファイルに出力する必要があります。

(a) コマンドファイルの例

J2EEサーバの障害発生時にdrwtsn32コマンドまたはkillコマンドを実行してユーザダンプまたはcoreダンプを取得する場合の例を次に示します。

(b) ユーザ作成の障害検知時コマンドの動作

論理CTMでは,グローバルCORBAネーミングサービスとCTMデーモンの二つのプロセスが起動,停止,監視されます。そのため,論理CTM内のグローバルCORBAネーミングサービスの障害を検知した場合とCTMデーモンの障害を検知した場合とでは,実行するコマンドが異なります。

また,論理CTM内の二つのプロセス(CTMデーモン,グローバルCORBAネーミングサービス)のどちらのプロセスで障害を検知しても,Management Serverのログには,論理サーバ(CTM)の障害検知時コマンドの開始を通知するログが出力されます。