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