2.3.2 障害検知時コマンドによる資料取得
障害検知時コマンドは,Management Serverが論理サーバの障害を検知したときに,システムによって実行されるコマンドです。障害検知時コマンドは,システム構築時にmserver.properties(Management Server環境設定ファイル)のキーに値を指定することで実行されます。
- 注意事項
-
運用管理エージェントが停止している状態で,論理サーバのプロセスが異常終了した場合,そのあとに運用管理エージェントを起動しても障害検知時コマンドは実行されません。この場合,運用管理エージェントの起動時に,詳細情報が「The command is not defined.」のKEOS20071-Eメッセージが出力されます。メッセージについては,マニュアル「アプリケーションサーバ メッセージ(構築/運用/開発用)」を参照してください。
障害検知時コマンドを利用して,トラブル発生時のスレッドダンプやユーザダンプの取得などの取得処理を実行することで,トラブル発生時のタイムリーな資料を取得できるようになります。また,障害検知時コマンドを利用すると,次のどちらかのタイミングでsnapshotログを自動収集することもできます。収集するタイミングは設定によって決められます。
-
論理サーバにトラブルが発生した場合,障害検知時コマンドが実行されて,論理サーバの停止前にsnapshotログが収集されます。
-
J2EEサーバまたはバッチサーバにトラブルが発生した場合,障害検知時コマンドが実行されて,J2EEサーバまたはバッチサーバの再起動前にsnapshotログが収集されます。
障害検知時コマンドには,システム提供の障害検知時コマンドとユーザ作成の障害検知時コマンドの2種類があります。
- システム提供の障害検知時コマンド
-
あらかじめアプリケーションサーバで定義されているコマンドです。システム提供の障害検知時コマンドでは,論理サーバにトラブルが発生した場合に,トラブルが発生した論理サーバのJavaVMのスレッドダンプや性能解析トレースなどを取得します。システム提供の障害検知時コマンドで取得した資料は,snapshotログとして収集できます。
デフォルトの設定では,論理サーバにトラブルが発生した場合にシステム提供の障害検知時コマンドが実行されて,トラブルが発生した論理サーバの停止前にsnapshotログが収集されます。
- ユーザ作成の障害検知時コマンド
-
障害検知時コマンドはユーザが作成することもできます。資料取得に必要な任意の処理を記述したバッチファイルやシェルスクリプトを,障害検知時コマンドとして実行できます。
なお,ユーザ作成の障害検知時コマンドで取得した資料をsnapshotログとして収集するためには,その資料の取得先をsnapshotログの収集先として定義しておく必要があります。
システム提供の障害検知時コマンドの動作設定を変更する場合,またはユーザ作成の障害検知時コマンドを利用する場合に必要な設定については,「3.3.1 障害検知時コマンドによる資料取得の設定(J2EEアプリケーションを実行するシステム)」または「3.3.2 障害検知時コマンドによる資料取得の設定(バッチアプリケーションを実行するシステム)」を参照してください。
- ポイント
-
障害検知時コマンドは,システム構築時に必要な設定がされていない場合,実行されません。次の設定内容を確認してください。
-
mserver.properties(Management Server環境設定ファイル)のcom.cosminexus.mngsvr.sys_cmd.abnormal_end.enabledキーに「true」が設定されている場合,システムで提供されている障害検知時コマンドが実行されます。
-
mserver.properties(Management Server環境設定ファイル)のcom.cosminexus.mngsvr.usr_cmd.abnormal_end.enabledキーに「true」が設定されている場合,ユーザが作成した障害検知時コマンドが実行されます。
-
ここでは,それぞれで取得できる情報について説明します。
(1) システムで提供されている障害検知時コマンドで取得できる情報
システムで提供されている障害検知時コマンドで取得できる情報について,次の表に示します。障害検知時コマンドで取得できる情報は,障害の種類(システムダウン,またはハングアップ)および使用しているOSによって異なります。
なお,snapshotログでこれらの情報を取得するためには,adminagent.properties(運用管理エージェントプロパティファイル)に必要な設定がされていることが必要です。
障害検知時コマンドで取得できる情報を次に示します。
論理サーバ |
OS |
取得できる情報 |
J2EEアプリケーション |
バッチアプリケーション |
|
---|---|---|---|---|---|
プロセスダウンを検出した場合 |
ハングアップを検出した場合 |
||||
論理パフォーマンストレーサ |
Windows UNIX |
|
− |
○ |
○ |
論理J2EEサーバ※ |
Windows |
|
|
○ |
○ |
UNIX |
|
|
○ |
○ |
|
論理Webサーバ |
Windows UNIX |
|
|
○ |
− |
ほかの論理サーバ |
Windows UNIX |
|
|
○ |
− |
-
トラブルが発生したJ2EEサーバまたはバッチサーバのスレッドダンプ
adminagent.properties(運用管理エージェントプロパティファイル)のadminagent.j2ee.sys_cmd.abnormal_end.threaddumpキーに「true」が設定されている場合に取得できます。
-
性能解析トレース
adminagent.properties(運用管理エージェントプロパティファイル)のadminagent.sys_cmd.abnormal_end.prftraceキーに「true」が設定されている場合に取得できます。性能解析トレースファイルは<Application Serverのインストールディレクトリ>/manager/tmpに出力されます。なお,出力先はadminagent.properties(運用管理エージェントプロパティファイル)のadminagent.prftrace_dirキーで変更できます。
- 注意事項
-
トラブルが発生したJ2EEサーバのプロセスが存在しないと判断された場合,スレッドダンプは出力されません。また,パフォーマンストレーサのプロセスが存在しないと判断された場合,性能解析トレースは出力されません。
(2) ユーザが作成した障害検知時コマンドで取得できる情報
ユーザが作成した障害検知時コマンドとして,資料取得に必要な任意の処理を記述したバッチファイルまたはシェルスクリプトを実行できます。例えば,ユーザダンプまたはcoreダンプは,このコマンドの中でdrwtsn32コマンドなどを実行して取得できます。障害検知時コマンドの作成方法については,「3.3.1 障害検知時コマンドによる資料取得の設定(J2EEアプリケーションを実行するシステム)」または「3.3.2 障害検知時コマンドによる資料取得の設定(バッチアプリケーションを実行するシステム)」を参照してください。
なお,ユーザ作成の障害検知時コマンドは,adminagent.properties(運用管理エージェントプロパティファイル)のadminagent.<serverkind>.usr_cmd.abnormal_endキーに指定されているものが実行されます。