4.7.2 プログラムの再起動制御
モニタモードのプログラム管理機能を使用する場合,プログラムの障害検出後にプログラムの再起動コマンドを実行することで,プログラム単位で再起動ができます。プログラムの再起動コマンドはユーザが作成します。作成したプログラムの再起動コマンドは,モニタモードのプログラム対応の環境設定のrestartcommandオペランドに指定します。
プログラムの再起動コマンドの作成方法については,「6.15 プログラムの再起動コマンドの作成(プログラム管理機能使用時)」を参照してください。
(1) 再起動する単位
プログラムを再起動する単位は,サーバ単位かプログラム単位かを選択できます。例えば,UAP障害が発生したときに,障害が発生したUAPだけを再起動するか,障害が発生したUAPを含むサーバを再起動するかを選択できます。
再起動する単位は,モニタモードのプログラム対応の環境設定のrestartcommandオペランドで指定します。このオペランドを指定するとプログラム単位で再起動し,省略するとサーバ単位で再起動します。
(2) プログラムの再起動時の処理の流れ
ここでは,プログラム単位で再起動する場合の処理の流れについて説明します。
プログラムに障害が発生すると,HAモニタはプログラムの再起動限界に指定された回数だけプログラムの再起動を試みます。プログラムの再起動限界とは,プログラムを再起動させる上限のことです。プログラムの再起動限界は,モニタモードのプログラム対応の環境設定のexec_retryオペランドに指定します。また,プログラム再起動時のタイムアウト時間も指定できます。プログラムの再起動コマンドがタイムアウトすると,プログラムの再起動コマンドは再実行されます。プログラム再起動時のタイムアウト時間は,モニタモードのプログラム対応の環境設定のrestart_timeoutオペランドに指定します。
プログラムの障害発生時に,HAモニタはプログラムの再起動限界まで,次の処理を繰り返します。
-
すでにプログラムの再起動コマンドが実行中の場合は,プログラムの再起動コマンドを強制停止する。
-
複数のプロセスで構成されているUAPを監視している場合は,APIを発行したすべてのプロセスを強制停止する。
-
プログラムの再起動コマンドを実行する。
(3) 再起動失敗時の対処
HAモニタが再起動限界を検出し,プログラムが停止した場合,系切り替えできる状態であれば系切り替えをし,系切り替えができない状態であればユーザが手動でプログラムを再起動します。