この節では、Sun Cluster HA for BEA WebLogic Server 障害モニターについて解説します。
障害モニターは、障害を検出して処理を行います。BEA WebLogic Server 内で障害を検出すると、障害モニターは初めに BEA WebLogic Server の再起動を行います。一定の時間内に BEA WebLogic Server が一定の回数停止すると (時間と回数は管理者が設定可能)、BEA WebLogic Server を含んでいるリソースグループは動作中のほかのクラスタノードにフェイルオーバーして再起動します。
Fault Monitor メソッドは、デフォルトでは拡張プロパティー Server_url に設定されているサーバー URL の検証を行います。この検証メソッドはホスト名とポートに接続し、続いて URL に対して HTTP GET 要求を実行します。接続が失敗する場合は完全な障害とみなされ、BEA WebLogic Server を含むリソースグループの再起動が行われるか、あるいは動作中のほかのクラスタノードにフェイルオーバーし、再起動します。接続が成功したが http 応答コードが 500 (内部的なサーバーエラー) の場合も完全な障害とみなされ、リソースグループの再起動またはフェイルオーバーが行われます。ほかの http 応答コードはすべて正常とみなされます。
monitor_uri_list 拡張プロパティーを設定すると、検証メソッドはリスト内に示された URI に接続し、障害が発生している場合は処理を行います。検証メソッドは、指定された URI (1 つ以上) に対して HTTP GET を実行します。
BEA WebLogic Server インスタンスの完全な障害が検証 (URL または URI の検証) によって検出された場合、かつ、拡張プロパティー db_probe_script にデータベース検証スクリプトが指定されている場合、検証メソッドは BEA WebLogic Server リソースに対して処理を行う前に、まず、データベースを検証します。データベース検証スクリプトが成功を示すコードを返す (データベースが稼動している) 場合は、BEA WebLogic Server リソースに対して処理が行われます。データベース検証スクリプトが障害を示すコードを返す (データベースが停止している) 場合は、BEA WebLogic Server 検証メソッドはデータベースが起動するまで何の処理 (再起動またはフェイルオーバー) も行いません。
リソース内で構成された BEA WebLogic Server が起動する前に、BEA WebLogic Server 構成とリソース拡張プロパティーが検証されます。db_probe_script 拡張プロパティーが設定されている場合には、この拡張プロパティーに設定されたスクリプトを起動してデータベースの検証が行われます。データベースが起動している場合は、拡張プロパティー Start_script に構成されている START スクリプトを pmf の制御下で呼び出すことによって、BEA WebLogic Server が起動されます。データベースが起動していない場合は、START メソッドは成功を示すコードを返し、検証メソッドに BEA WebLogic Server ソフトウェアの起動処理を任せます。検証メソッドは、データベースが起動して BEA WebLogic Server を起動するまで待機します (「検証アルゴリズムと機能」を参照)。
pmf 下の START スクリプトを起動したあと、START メソッドは BEA WebLogic Server が RUNNING モードになるのを待ってから、成功を宣言します。BEA WebLogic Server の稼動を待機する間、検証メソッドはサーバーの起動をチェックするためにサーバーに接続を試みます。起動時に、コンソールにはメッセージが表示されます。メッセージ「Failed to connect to host logical-host-1 and port 7001: Connection refused」は、BEA WebLogic Server が完全に起動するまで継続して表示されます。BEA WebLogic Server が RUNNING モードになった時点で、START メソッドはステータスを「Started Successfully」に設定します。
STOP メソッドは、リソース内で構成された BEA WebLogic Server を停止します。デフォルトでは、STOP メソッドは SIGKILL を BEA WebLogic プロセスに送信して、BEA WebLogic Server を強制終了します。smooth_shutdown 拡張プロパティーが TRUE に設定されている場合、STOP メソッドは次のコマンドを実行して、BEA WebLogic インスタンスを停止しようとします。
java weblogic.Admin -url hostname:port -username $WLS_USER -password $WLS_PW SHUTDOWN |
このコマンドが失敗した場合、BEA WebLogic Server は SIGKILL で停止されます。このコマンドが成功した場合でも、STOP メソッドは SIGKILL を BEA WebLogic プロセスを送信して、確実に停止しようとします。
拡張プロパティー smooth_shutdown を TRUE に設定する場合は、必ず WLS_USER と WLS_PW を BEA WebLogic Server START スクリプトに設定してください。Smooth_shutdown を TRUE に設定した場合、この拡張プロパティーをもう一度 FALSE に設定するまで、START スクリプトからWLS_USER と WLS_PW を削除してはいけません。