6.11.2 サーバの停止コマンドの作成

サーバの停止コマンドは,プログラムを自動停止するためのコマンドです。サーバの停止コマンドの作成は任意です。連動系切り替えなどでプログラムを自動停止したい場合に作成してください。

ここでは,サーバの停止コマンドが呼び出されるタイミング,およびサーバの停止コマンドの作成方法について説明します。

<この項の構成>
(1) サーバの停止コマンドが呼び出されるタイミング
(2) サーバの停止コマンドの作成方法

(1) サーバの停止コマンドが呼び出されるタイミング

作成したサーバの停止コマンドは,HAモニタがスーパユーザの権限で実行します。

サーバの停止コマンドは,次の場合に,共有リソースの切り離しをする前に呼び出されます。

HAモニタは,サーバの停止コマンドに,呼び出される場合に応じた引数を渡します。引数には,"-e","-w",および"-c"があります。それぞれの引数に対応する次のような処理を記述してください。

表6-9 サーバの停止コマンドの引数と記述する処理

引数引数が渡された時に記述する処理
-eサーバの正常停止。
-wサーバを計画切り替えするための計画停止。
-c異常終了したサーバを再起動できるようにするための処理。

サーバの停止コマンドの起動条件と引数の関係を,次の表に示します。

表6-10 サーバの停止コマンドの起動条件と渡される引数

サーバの停止コマンドの起動条件渡される引数
termcmd_at_abort=nouseの場合termcmd_at_abort=useの場合
モニタモードのサーバ停止コマンド(monendコマンド)でサーバを停止。-e-e
サーバ障害時,モニタモードのサーバ停止コマンド(monendコマンド)で待機サーバがない実行サーバを停止。-e-c
サーバ障害によるサーバの系切り替え処理。-w-c
計画系切り替えコマンド(monswapコマンドまたはmonswap -gコマンド)を実行。-w-w
待機サーバがない実行サーバの障害時,待機サーバを起動したあと計画系切り替えコマンド(monswapコマンドまたはmonswap -gコマンド)を実行。-w-c
連動系切り替えに伴って,実行サーバを強制停止・系切り替え。-w-w
サーバ障害時,連動系切り替えに伴って,待機サーバがない実行サーバを強制停止。-w-c
待機サーバがない実行サーバの障害時,連動系切り替えに伴って,待機サーバを起動したあと,系切り替え。-w-c
サーバ障害時の実行サーバ再起動前処理。-c-c
サーバの起動コマンド失敗による,サーバの起動中止。-c
(凡例)
-:サーバの停止コマンドを発行しません。
注※
渡される引数は,サーバ対応の環境設定のtermcmd_at_abortオペランドに何を指定するかによって異なります。termcmd_at_abortオペランドについては,「8.3.1 HAモニタの環境設定(sysdef)」を参照してください。

(2) サーバの停止コマンドの作成方法

サーバの停止コマンドは,プログラムの停止処理を記述したシェルなどを指定します。必要に応じて,シェルの中でプログラムの終了に必要な動作環境を設定してください。

モニタモードのプログラム管理機能使用時に,APIを発行するUAPをサーバの停止コマンドで停止する場合は,UAPの環境変数にプログラム名を設定する必要があります。また,サーバの停止コマンドには,対象となるすべてのUAPの停止処理を記述してください。UAPがプロセスを生成する場合は,生成したプロセスの停止処理も記述してください。UAPの環境変数については,「6.13.2 UAPの環境変数の設定」を参照してください。

作成したサーバの停止コマンドは,サーバ対応の環境設定のtermcommandオペランドに指定します。また,サーバの停止コマンドが起動してから終了するまでのタイムアウト時間を,サーバ対応の環境設定のstop_timeoutオペランドで指定できます。

実行サーバの正常終了時,計画停止時に呼び出されるサーバの停止コマンドの戻り値によって,HAモニタの動作が変わることはありません。一方,サーバの再起動時に呼び出されるサーバの停止コマンドでは,処理が正常終了した場合は戻り値として0を必ず返すように,処理を記述してください。戻り値が0以外の場合,サーバの再起動に失敗します。再起動に失敗した場合の対処については,「7.4.2 サーバの再起動失敗に対処する」を参照してください。

また,複数のプログラムの停止処理をサーバの停止コマンドに記述することで,複数のプログラムを一つのサーバとして使用できます。