8.5.1 モニタモードのプログラム対応の環境設定programs

モニタモードのプログラム対応の環境を設定する定義ファイルは,HAモニタの環境設定用ディレクトリの下にprogramsというファイル名で作成します。

また,HAモニタのサンプルファイル用ディレクトリの下に,programsファイルのサンプルが用意されています。このファイルをHAモニタの環境設定用ディレクトリにコピーし,書き換えて使用すると,定義ファイルを最初から作成する手間が省けます。

なお,この定義ファイルは系ごとに作成します。太字部分は,系間で同じ値を指定してください。太字以外の部分は,系間で矛盾がないように設定してください。

モニタモードのプログラム対応の環境設定をする定義ファイルを,次に示します。

/*    モニタモードのプログラム対応の環境設定    */
program  name  モニタモードのプログラム名
       ,alias モニタモードのプログラム識別名
       ,server_alias
              モニタモードのサーバ識別名
     〔,restartcommand
              プログラムの再起動コマンドの絶対パス名
     〔,patrol
              プログラムのスローダウン監視時間
     〔,restart_timeout
              プログラムの再起動監視時間
     〔,exec_retry
            {プログラムの再起動リトライ数2}〕
     〔,retry_stable
            {プログラムの安定稼働経過時間60}〕;

<この項の構成>
(1) program定義文

(1) program定義文

プログラム管理機能を使用するプログラムの動作環境を定義します。program定義文のオペランドを,次に示します。

name~<1~1,000文字のパス名>
モニタモードのプログラムを識別するために使用する名称を指定します。パス名でも指定できます。すべての系の中で一意となる名称を指定してください。使用するプログラムがUAPの場合,ここに指定した名称をHAMON_UAPNAME環境変数に指定します。
また,系切り替え構成内のすべての系で同じ値を指定してください。
alias~<1~8文字の英数字>
HAモニタで使用するコマンドや,出力するメッセージのための,モニタモードのプログラム識別名(プログラムの別名)を指定します。すべての系の中で一意となる名称を指定してください。また,系切り替え構成内のすべての系で同じ値を指定してください。
server_alias~<1~8文字の英数字>
このプログラムが管理するモニタモードのサーバ識別名(サーバ対応の環境設定のaliasオペランドの指定値)を指定します。系切り替え構成内のすべての系で同じ値を指定してください。
restartcommand~<1~1,000文字のパス名>
シェルなどで作成したプログラムの再起動コマンドを絶対パス名で指定します。系切り替え構成内のすべての系で同じ値を指定してください。
オペランドの指定値を"(引用符)で囲むことで,タブと改行コード以外の文字を含めて指定できます。"(引用符)は文字数にカウントされません。
このオペランドを省略した場合は,プログラムの障害時にサーバ単位で再起動または系切り替えをします。
patrol~<符号なし整数>((60~3600))(単位:秒)
UAPからの稼働報告を監視する時間(プログラムのスローダウン監視時間)を指定します。系切り替え構成内のすべての系で同じ値を指定してください。patrolオペランドに指定した時間を超えてもUAPからの稼働報告がなかった場合,HAモニタはUAP障害と判断します。
このオペランドを省略した場合,HAモニタはUAPの稼働報告を監視しません。
restart_timeout~<符号なし整数>((60~3600))(単位:秒)
プログラム再起動時のタイムアウト値を指定します。プログラムの再起動コマンドの起動から終了,およびhamon_patrolstart関数の発行までの時間を指定します。系切り替え構成内のすべての系で同じ値を指定してください。
タイムアウトした場合,プログラムの再起動コマンドが再実行されます。
なお,restartcommandオペランドを省略した場合は,指定しても無視されます。
exec_retry~<符号なし整数>((0~9999))《2》(単位:回)
実行サーバのプログラムの障害を検出した場合にプログラムの再起動コマンドを再実行する回数を指定します。系切り替え構成内のすべての系で同じ値を指定してください。
HAモニタが実行サーバのプログラム障害を検出した場合,指定した回数分だけrestartcommandオペランドに指定したプログラムの再起動コマンドの再実行を試みます。指定回数内でプログラムの再起動処理が完了した場合は,そのまま正常動作として処理が続行されます。指定回数内にプログラムの再起動処理が完了しない場合は,HAモニタはプログラム障害と判断し,プログラムの再起動を中止し,系切り替えをします。
このオペランドに9999を指定した場合は,プログラムの再起動処理が完了するまで,または実行サーバを停止させるまで無制限にプログラムを再起動します。
このオペランドを省略した場合は,サーバ対応の環境設定のservexec_retryオペランドの指定値に従ってサーバを再起動します。また,このオペランドに0を指定した場合は,プログラムの再起動はしないで,すぐに系切り替えを実行します。
なお,restartcommandオペランドを省略した場合は,指定しても無視されます。
retry_stable~<符号なし整数>((60~9999))《60》(単位:秒)
プログラムの再起動に成功した場合,そのプログラムの動作が安定したと判断するための監視時間を秒数で指定します。系切り替え構成内のすべての系で同じ値を指定してください。
プログラムが再起動したあと,このオペランドに指定した時間内に障害が検出されなかった場合,HAモニタはプログラムが安定して稼働したと判断し,再起動回数を0にリセットします。再起動成功後,再び0秒から安定稼働のために経過が監視されます。
このオペランドに9999を指定した場合,プログラムが正常終了するか,系切り替えによって終了するまで,再起動回数を0にリセットしません。
プログラムが再起動したあと,このオペランドに指定した時間が経過する前に再度障害が発生すると,再起動回数が更新され,プログラムが再起動されます。更新された再起動回数がモニタモードのプログラム対応の環境設定のexec_retryオペランドに指定した値を超えた場合は,プログラムの再起動はされないで系切り替え動作をします。