2.3.2 サーバ障害の検出(サーバモードの場合)
サーバがサーバモードの場合,HAモニタがサーバを監視し,サーバ障害が発生したら,系切り替えをします。ここでは,HAモニタが行うサーバ障害の検出方法と,障害を検出したあとのHAモニタの動作について説明します。
(1) サーバ障害の検出方法
サーバ障害は,サーバ自身が検知できる障害と,検知できない障害とに分けられます。
- サーバ自身が検知できる障害が発生した場合
-
HAモニタはサーバから障害連絡を受けて,サーバ障害を検出します。
- サーバ自身が検知できない障害が発生した場合
-
実行サーバでは,HAモニタが障害を検出します。サーバの監視方法は,使用するプログラムによって異なります。
- TP1/Server BaseまたはHiRDBを使用するとき
-
サーバの稼働報告をHAモニタが監視する方法によって,障害を検出します。サーバの稼働報告を監視するためには,サーバ対応の環境設定のpatrolオペランドでサーバ障害監視時間を指定します。サーバは定期的に稼働報告を実施し,HAモニタは1秒間隔でサーバからの稼働報告があったかを確認します。指定したサーバ障害監視時間を超えてもサーバからの稼働報告がなかった場合,HAモニタはサーバ障害が発生したと判断します。サーバの稼働報告を監視するには,サーバ対応の環境設定のserver_typeオペランドに"A"を指定するか,またはserver_typeオペランドの指定を省略します。
- TP1/EEを使用するとき
-
サーバのプロセスをHAモニタが1秒間隔で監視する方法によって,障害を検出します。この方法では,HAモニタはサーバのスローダウンを障害として検出しません。サーバのプロセスを監視するには,サーバ対応の環境設定のserver_typeオペランドに"B"を指定します。
なお,待機サーバでは,HAモニタは障害を検出しません。ユーザが必要に応じて待機サーバを再起動したり,停止したりします。
(2) サーバ障害を検出したあとのHAモニタの動作
HAモニタが実行サーバに発生したサーバ障害を検出すると,系切り替えができる状態の場合,次のどれかの動作をします。この動作は,サーバ対応の環境設定のswitchtypeオペランドでユーザがあらかじめ指定します。
-
系切り替えをする。
障害が発生した実行サーバを強制停止したあとに,系切り替えをして,待機系の待機サーバに業務を切り替えます。
-
実行サーバの再起動を待ち,再起動できなければ系切り替えをする。
障害が発生した実行サーバをいったん停止させ,再起動するのを待ちます。実行サーバの再起動に失敗したままの場合,HAモニタが待機系に系切り替えをします。
-
実行サーバの再起動を待ち,再起動できなければオペレータの操作を待つ。
障害が発生した実行サーバをいったん停止させ,再起動するのを待ちます。実行サーバの再起動に失敗したままの場合,HAモニタは実行サーバを停止させて,オペレータの操作を待ちます。
ただし,この設定にした場合,HAモニタは実行サーバのスローダウンをサーバ障害と認識しません。実行サーバのスローダウンを検出したときは,HAモニタはメッセージを出力してサーバの監視を続けます。
それぞれの動作について,詳細を説明します。
(a) 系切り替えをする場合
サーバ障害を検出すると,実行系のHAモニタが実行サーバを強制停止して,待機系に系切り替えをします。稼働報告がなかったケースを例にして,サーバ障害検出時のHAモニタの動作を,次の図に示します。
(b) 実行サーバの再起動を待ち,再起動できなければ系切り替えをする場合
サーバ障害を検出すると,HAモニタは,サーバ障害が発生した実行サーバの再起動を待ちます。この実行サーバが再起動するまでの実行サーバの状態を,再起動待ち状態と呼びます。
実行サーバが再起動できた場合は,HAモニタは系切り替えをしないため,障害発生後も業務を実行する系は変わりません。実行サーバが再起動に失敗した場合,サーバに対応するプログラムは,プログラムのリトライ回数だけ,再起動を試みます。実行サーバが再起動に失敗し,HAモニタが実行サーバの再起動限界を検出した場合は,HAモニタが待機系に系切り替えをします。系切り替え時のHAモニタの動作は「(a) 系切り替えをする場合」と同様です。
実行サーバの再起動限界とは,実行サーバを再起動させる上限のことです。実行サーバの再起動限界としてHAモニタが検出するのは,次のとおりです。
-
プログラムのリトライ回数の限界
再起動をリトライする回数の上限のことです。プログラムに指定します。
-
実行サーバの再起動監視時間の限界
実行サーバに発生したサーバ障害を検出してから,実行サーバが再起動するまでの監視時間のことです。サーバ対応の環境設定に指定します。
(c) 実行サーバの再起動を待ち,再起動できなければオペレータの操作を待つ場合
サーバ障害を検出したあと,実行サーバの再起動を待ち,再起動できなければオペレータの操作を待つ場合について説明します。
実行サーバの再起動を実施する動作は,「(b) 実行サーバの再起動を待ち,再起動できなければ系切り替えをする場合」と同様です。しかし,オペレータの操作を待つ場合は,実行サーバの再起動限界として,プログラムのリトライ回数だけを指定できます。
実行サーバが再起動に失敗し,HAモニタが実行サーバの再起動限界を検出すると,HAモニタは,実行系の実行サーバを停止させます。また,待機系では,障害が発生した実行サーバに対応する待機サーバを,いったん停止させたあとに再起動して,実行サーバの起動待ち状態にします。このとき,ユーザは,実行サーバの起動待ち状態になっている待機サーバを,実行サーバとして起動するか,または停止する必要があります。待ち状態のサーバを操作する方法については,「7.4.1 待ち状態のサーバを起動して業務を再開する」を参照してください。