2.4.3 論理サーバの自動再起動
ここでは,障害が発生した場合の論理サーバの自動再起動について説明します。
障害が発生した場合,Management Serverを使用して,停止した論理サーバを自動再起動できます。
自動再起動は,Management Serverによって正しく起動された論理サーバから,起動後の状態として「障害」が検出された場合に実行されます。「障害」とは,停止要求を受け付けていないのに論理サーバが停止したことが検出された状態です。
運用管理エージェントでは,論理サーバに対してプロセス監視および動作確認をしています。プロセスのダウン,およびハングアップなどの論理サーバの障害を検出すると,運用管理エージェントは異常を検知し,Management Serverに通知します。Management Serverは,障害検知時コマンドおよびsnapshotログ収集を実行してトラブルシューティング用の資料を収集したあとで,論理サーバを自動再起動します。
ユーザからの起動要求に対する起動処理の途中で障害が発生した場合は,自動再起動をしないでユーザに起動の失敗が通知されます。
自動再起動は,システムの構築時に設定した,自動再起動回数および自動再起動リトライ間隔に従って実行されます。なお,自動再起動回数として「0回」を設定している場合,自動再起動は実行されません。
自動再起動回数を超えたときに,<Managerのログ出力ディレクトリ>/mngsvr<ファイル面数>.logにメッセージが出力され,論理サーバのステータスは障害状態になります。
mserver.properties(Management Server環境設定ファイル)のcom.cosminexus.mngsvr.logical_server_abnormal_stop.exitキーにtrueを設定している場合,論理サーバのステータスが異常停止状態に遷移したタイミングでManagement Serverは停止します。異常停止状態とは自動再起動回数を超えたとき,または自動再起動回数の設定が0で障害を検知したとき,論理サーバが停止した状態です。
障害発生時の自動再起動の流れと論理サーバのステータスについて次の図に示します。
なお,前提となる論理サーバで自動再起動をした場合には,前提となる論理サーバの自動再起動の完了後に,該当する論理サーバを前提として設定している論理サーバも再起動されます。
- ポイント
-
障害検出について
論理サーバの稼働状態の確認は,運用管理エージェントでの論理サーバのプロセス監視および動作確認で実施しています。例えば,プロセス監視では,論理サーバプロセスのプロセスIDが存在するかどうかを確認します。プロセスIDが存在しない場合は,運用管理エージェントはプロセスダウンを検知し,Management Serverに異常を通知します。
なお,プロセス監視および動作確認の内容は,論理サーバの種類によって異なります。詳細については,「2.3 論理サーバの起動・停止の仕組み」を参照してください。
- 注意事項
-
論理サーバの起動に成功した直後に論理サーバのプロセスが終了すると,障害検出と自動再起動が繰り返し実行されることがあります。この場合,adminagent.propertiesのadminagent.<サーバ種別>.watch.start_timeキー(論理サーバの起動コマンドを実行してから動作確認を開始するまでの時間)に,論理サーバのプロセスが起動されてから終了するまでの時間以上の値を設定することで回避できます。
論理J2EEサーバは,J2EEアプリケーションの起動時間を考慮してJ2EEサーバの起動監視時間を設定してください。論理サーバの自動再起動時にJ2EEアプリケーションの起動に時間が掛かり,自動再起動に失敗するおそれがあります。J2EEサーバ起動後にJ2EEアプリケーションを起動する運用であっても,論理サーバの自動再起動前にJ2EEアプリケーションが開始されていた場合,自動再起動時にJ2EEサーバの起動と同時にJ2EEアプリケーションが開始されます。ただし,論理J2EEサーバの環境設定で「コマンドオプションの追加 」※に-nostartappを指定して運用している場合は,論理サーバの自動再起動時にJ2EEサーバの起動と同時にJ2EEアプリケーションが開始されません。
注※ SmartComposerの場合,additional.startcmdパラメタで指定します。