Cosminexus システム構築ガイド

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

5.3 障害検知時コマンドによる資料取得の設定

障害検知時コマンドは,Management Serverで管理している論理サーバにトラブルが発生した場合に,システムによって実行されるコマンドです。この節では,トラブルシューティングの資料を障害検知時コマンドで取得するための設定について説明します。障害検知時コマンドを利用して,トラブル発生時のスレッドダンプやユーザダンプの取得などの処理を実行することで,トラブル発生時のタイムリーな資料を取得できるようになります。また,障害検知時コマンドを利用している場合,次のどちらかのタイミングでsnapshotログを自動収集することもできます。

なお,障害検知時コマンドで取得した資料はsnapshotログとして収集できます。

障害検知時コマンドには,システムで提供しているコマンドとユーザが作成したコマンドの2種類があります。障害検知時コマンドの種類を次の表に示します。

表5-4 障害検知時コマンドの種類

コマンドの種類 コマンドの動作 コマンドを利用するための設定
システム提供の障害検知時コマンド 論理サーバにトラブルが発生したときに,トラブルが発生した論理サーバのスレッドダンプや性能解析トレースなどを取得できます。
ただし,J2EEサーバまたはSFOサーバのプロセスが存在しない場合は,スレッドダンプを取得できません。また,パフォーマンストレーサのプロセスが存在しない場合は,性能解析トレースを取得できません。

  • Management Serverでの環境設定((1)参照)
  • 運用管理エージェントでの環境設定((2)参照)
ユーザ作成の障害検知時コマンド 論理サーバにトラブルが発生したときに,任意の処理を記述したコマンドファイルを実行できます。
例えば,コマンドファイルにdrwtsn32コマンドまたはkillコマンドの実行を記述しておくことで,J2EEサーバにトラブルが発生したときに,ユーザダンプまたはcoreダンプを取得できます。

  • Management Serverでの環境設定((1)参照)
  • 運用管理エージェントでの環境設定((2)参照)
  • ユーザ作成の障害検知時コマンドのコマンドファイル作成((3)参照)

デフォルトの設定では,論理サーバにトラブルが発生した場合にシステム提供の障害検知時コマンドが実行されて,スレッドダンプや性能解析トレースなどが取得されます。また,トラブルが発生した論理サーバの停止前にsnapshotログが収集されます。

システム提供の障害検知時コマンドで取得できる情報について,次の表に示します。

表5-5 システム提供の障害検知時コマンドで取得できる情報

論理サーバ OS 取得できる情報
プロセスダウンを検出した場合 ハングアップを検出した場合
論理パフォーマンストレーサ Windows
UNIX

  • バッファの内容を出力したPRFトレースファイル
論理J2EEサーバ Windows
  • 性能解析トレースファイル

  • スレッドダンプ
  • 性能解析トレースファイル
UNIX
  • JavaVMのスタックトレース情報
  • 性能解析トレースファイル

  • スレッドダンプ
  • 性能解析トレースファイル
論理SFOサーバ Windows
  • 性能解析トレースファイル

  • スレッドダンプ
  • 性能解析トレースファイル
UNIX
  • JavaVMのスタックトレース情報
  • 性能解析トレースファイル

  • スレッドダンプ
  • 性能解析トレースファイル
論理Webサーバ Windows
UNIX

  • 性能解析トレースファイル

  • 内部トレース
  • 性能解析トレースファイル
ほかの論理サーバ Windows
UNIX

  • 性能解析トレースファイル

  • 性能解析トレースファイル

システム提供の障害検知時コマンドの動作設定を変更する場合,またはユーザ作成の障害検知時コマンドを利用する場合に必要な設定について,(1)〜(3)で説明します。

注意
ユーザ作成の障害検知時コマンドで取得した資料をsnapshotログとして収集するためには,その資料の取得先をsnapshotログの収集先に追加する必要があります。snapshotログの収集先の追加については,「5.2(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.point snapshotログの収集タイミングとして,次のどちらかを指定します。
  • 論理サーバの停止前
  • J2EEサーバの再起動前
デフォルトは,論理サーバの停止前です。

(凡例)
システム:システム提供の障害検知時コマンドでの設定の要否を示す。
ユーザ:ユーザ作成の障害検知時コマンドでの設定の要否を示す。
○:設定は必要。
△:デフォルトの設定を変更する場合だけ必要。
−:設定は不要。

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

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

adminagent.propertiesの次のキーで,障害検知時コマンドで取得する資料の数や取得の有無,障害検知時コマンドのパスなどを設定します。なお,snapshotログの収集先を定義するためのリストファイルについては,「5.2(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) ユーザ作成の障害検知時コマンドのコマンドファイル作成

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

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

環境変数 説明
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_HWS Hitachi Web Serverのインストールディレクトリ。

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

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

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

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

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

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