6.2.4 運用コマンドによるプロセス監視
この方法では,「6.2.2 直接起動によるプロセス監視」で示したプロセス監視定義ファイルに設定されたプロセスを起動して監視対象とする場合と,プロセス監視定義ファイルに設定されていないプロセスを起動して監視対象とする場合があります。
- 注
-
この方法では,プロセス監視定義ファイルに設定されていない間接起動方式のプロセスを起動および監視することはできません。
- 〈この項の構成〉
(1) 監視方法
運用コマンドによるプロセス監視方法の概要を次の図に示します。
-
admstartprcコマンドを入力します。
-
指定されたプロセスがプロセス監視定義ファイルに設定されているかチェックします。
-
プロセスを起動します。
-
プロセスの監視を開始します。
(2) 監視対象プロセスの起動方法
TPBrokerが提供するadmstartprcコマンドを入力し,TPBrokerに対してプロセスの起動を依頼し,プロセスを起動します。
(3) 監視対象プロセスの起動のタイミング
admstartprcコマンドが入力されたときです。
(4) 監視対象プロセスの起動成功の判断基準
起動したプロセスのプロセスIDを取得でき,プロセスの監視を開始できた場合に,起動成功と判断します。
(5) 監視対象プロセスの起動失敗時のアクション
admstartprcコマンドを使用した場合,プロセス監視定義ファイルにすでに設定されているプロセスとそうでないプロセスを起動できます。
すでにプロセス監視定義ファイルに設定されているプロセスの起動に失敗した場合は,次のどれか一つをプロセス監視定義ファイルで選択できます。
-
TPBrokerの運用支援機能を終了させます。
-
起動に失敗したプロセスを再起動します。
-
何もしないで処理を続行します。
プロセス監視定義ファイルに設定されていないプロセスの起動に失敗した場合は,admstartprcコマンドのオプションで次のどちらかを選択できます。
-
TPBrokerをダウンさせます(-fオプション)。
-
何もしないで処理を続行します(デフォルト)。
(6) 監視区間
admstartコマンドを発行してからadmstopコマンドを発行するまで,またはadmstartprcコマンドを発行してからadmstopprcコマンドを発行するまでの間です。
(7) 監視対象プロセス異常終了時のアクション
プロセス監視定義ファイルに設定されたプロセスが起動または監視時に異常終了した場合は,次のどれか一つをプロセス監視定義ファイルで選択できます。
-
TPBrokerの運用支援機能を終了させます。
-
異常終了したプロセスを再起動します。
-
何もしないで処理を続行します。
-
コマンドなどのプロセスを起動します。
このコマンドはプロセス監視定義ファイルでユーザが設定します。
プロセス監視定義ファイルに設定されていないプロセスが起動または監視時に異常終了した場合は,admstartprcコマンドのオプションで次のどちらかを選択できます。
-
TPBrokerをダウンさせます(-fオプション)。
-
何もしないで処理を続行します(デフォルト)。
(8) 連続異常終了についての考慮
プロセス監視定義ファイルに指定されたプロセスの監視では,起動したプロセスが異常終了を繰り返す場合を考慮して,一定時間内(10分間)に異常終了する回数の最大値をプロセス監視定義ファイルに設定できます。TPBrokerは,異常終了検知後にそのプロセスを再起動することになっている場合でも,プロセスの連続異常終了回数が最大値に達しているときは,プロセスを再起動しません。
プロセス監視定義ファイルに指定されていないプロセスの場合,異常終了しても再起動されないため,連続異常終了は起こりません。
(9) 監視対象プロセスの停止方法
プロセス監視定義ファイルに指定されたプロセスを起動または監視した場合は,「6.2.2(9) 監視対象プロセスの停止方法」で示した方法で停止させます。
プロセス監視定義ファイルに指定されていないプロセスを起動または監視した場合は,admstopprcコマンドの-oオプションで指定されたプロセス停止用コマンドをTPBrokerから発行して停止させます。このオプションに指定がない場合は,システムコール(UNIXの場合はkill(),Windowsの場合はTerminateProcess())で直接プロセスを停止させます。admstopprcコマンドの-oオプションで指定されたプロセス停止用コマンドは,次に示す条件を満たす必要があります。
-
プロセス停止用コマンド終了時には,監視対象プロセスが停止している。
(10) 監視対象プロセスの停止のタイミング
TPBrokerが提供するadmstopprcコマンドで,監視中のプロセスを停止させます。また,admstopコマンドでTPBrokerを終了させる場合は次のようにします。
-
プロセス監視定義ファイルに設定されたプロセスの場合は,定義の設定によって監視中のプロセスを停止させます。
-
プロセス監視定義ファイルに設定されていないプロセスの場合は,プロセス停止用コマンドが未設定であるため,システムコール(UNIXの場合はkill(),Windowsの場合はTerminateProcess())で直接プロセスを停止させます。
(11) 運用コマンドによるプロセス監視機能が異常終了したときの考慮
ADMデーモンはWindows版の場合はWindowsのサービスとして,UNIX版の場合はinittabに登録されています。ADMデーモンが異常終了した場合,ADMデーモンは自動的に再開始されます。
UNIX版の場合,inittabから起動されたADMデーモンが5分間に11回連続で異常終了すると,プロセス監視機能は使用できなくなります。
監視対象プロセス異常終了時のアクションで「TPBrokerの運用支援機能を終了させる」を選択した場合,そのほかの監視中のプロセスは停止されません。ADMデーモンが再開始したときに,再び監視対象プロセスに参加させます。この場合は,起動中の監視対象プロセスはADMデーモンの子プロセスではありません。そのほかのプロセスも異常終了している場合は,プロセスを再起動します。
(12) 注意事項
-
admstopprcコマンドの-oオプションの引数で指定されたプロセス停止用コマンドで監視対象プロセスを停止できなかった場合,監視対象プロセスに対するプロセス監視を終了し,一定時間(約20秒)経過後,監視対象プロセスをシステムコール※で強制停止させます。このとき,メッセージKFCB29186-Wがログファイルおよびシステムログに出力されます。
-
プロセスID取得用コマンドおよびプロセス停止用コマンドの終了は,5分間待ちます。それでも停止しない場合,コマンドプロセスをシステムコール※で強制停止させます。
-
UNIX版の場合,監視対象プロセスやコマンドプロセスをkill()システムコールで停止させるときには,SIGTERMを使用します。SIGTERMで停止しない場合は,SIGKILLを使用して強制停止させます。
-
UNIX版の場合,プロセス監視定義ファイルに設定する監視対象プロセスやコマンド,admstartprcコマンドおよびadmstopprcコマンドの-oオプションの引数で指定する監視対象プロセスやコマンドがシェルスクリプトのときは,必ず先頭の2バイトに文字「#!」を記述してください。「#!」を記述しない場合,シェルスクリプトの起動に失敗します。
- 注※
-
UNIXの場合のシステムコールはkill(),Windowsの場合のシステムコールはTerminateProcess()です。