障害モニターは、障害を検出して処理を行います。 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 拡張プロパティが設定されている場合には、この拡張プロパティに設定されたスクリプトを起動してデータベースの検証が行われます。 データベースが起動している場合は、pmf 下の拡張プロパティ Start_script に構成されている START スクリプトを呼び出すことによって 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 に設定しないかぎり、WLS_USER と WLS_PW を START スクリプトから削除できません。