Sun Cluster Data Service for Sun Java System Application Server ガイド (Solaris OS 版)

検証アルゴリズムと機能

Sun Cluster HA for Sun Java System Application Server の検証機能は、Sun Java System Application Server サーバーに要求を送ることにより、その状態を照会します。 検証機能は、次の作業を行います。

  1. Probe_timeout リソースプロパティで設定されたタイムアウト値に基づいて、Sun Java System Application Server インスタンスを検証します。

  2. ネットワークリソース構成とリソースグループの Port_list 設定によって定義された IP アドレスとポートの組に接続します。 リソースに Port_list も指定されている場合、この手順は省略されます。 正常に接続できた場合、検証機能は切り離されます。 接続に失敗した場合は、障害が記録されます。

    大量のネットワークトラフィック、高システム負荷、構成の誤りは、問い合わせが失敗する原因になることがあります。 Sun Java System Application Server サーバーが検証対象のすべての IP アドレスとポートの組み合わせで待機するように構成されていないと、構成ミスになります。 Sun Java System Application Server サーバーは、このリソースに指定したすべての IP アドレスのすべてのポートに対応するように構成します。

  3. Sun Java System Application Server サーバーに接続し、Monitor_Uri_List の各 URI に対して HTTP 要求を送り、応答を受け取ることによって、HTTP 1.1 GET チェックを実行します。

    HTTP 要求の結果は、失敗か成功のいずれかです。 すべての要求に対して、Sun Java System Application Server サーバーから応答があった場合、検証機能は復帰して次の検証とスリープのサイクルを続けます。

    大量のネットワークトラフィック、大きなシステム負荷、不正な構成は、HTTP GET 検証の失敗の原因になります。 Monitor_Uri_List プロパティを正しく構成しないと、Monitor_Uri_List の URI が不正なポートまたはホスト名を含むため失敗の原因になります。 たとえば、アプリケーションサーバーインスタンスが論理ホスト schost-1 で待ち受けていて、URI が http://schost-2/servlet/monitor として指定されていた場合、検証機能は schost-2 に接続して /servlet/monitor を要求しようとします。

  4. Probe_timeout 内に検証機能が応答を受け取らなかった場合、履歴ログに障害が記録されます。 検証機能はこの状況を Sun Java System Application Server データサービスに属す障害とみなします。 Sun Java System Application Server の検証障害は、完全障害の場合もあれば、部分障害の場合もあります。

    Probe_timeout 内に検証機能が応答を受け取らなかった場合、HTTP 応答コードを調べます。 応答コードが 500 (“Internal Server Error”) だった場合、検証は完全障害とみなされます。 それ以外の応答コードはすべて無視されます。

    完全検証障害は、次のとおりです。

    • サーバーとの接続に失敗すると、次のエラーメッセージが出されます。 %s はホスト名、%d はポート番号を表します。


      Failed to connect to the host <%s> and port <%d>. Receiving a response code of 500 “Internal Server Error” HTTP GET Response Code for probe of %s is 500. Failover will be in progress

    • サーバーに検証文字列を正常に送信できなかった場合は、次のエラーメッセージが出されます。 最初の %s はホスト名、%d はポート番号、2 番めの %s はエラーの詳細を表します。


      Write to server failed: server %s port %d: %s.

  5. モニターは、完全障害と等しくなるまで、すなわち、Retry_interval リソースプロパティで設定された値になるまで、発生した部分障害を累積します。

    部分検証障害は、次のとおりです。

    • Probe_timeout で設定された時間が経過するまでに、切断できなかった場合は、次のエラーメッセージが出されます。 最初の %d はポート番号、%s はリソース名です。


      Failed to disconnect from port %d of resource %s.

    • Probe_timeout の時間内ですべての検証手順を完了できないと、部分障害になります。

    • その他の理由でサーバーからデータを読み取ることができなかった場合は、次のエラーメッセージが出されます。 %s はホスト名、%d はポート番号を表します。 2 番めの %s はエラーの詳細を意味します。


      Failed to communicate with server %s port %d: %s

  6. 異常履歴に基づいて、データサービスのローカルでの再起動、またはデータサービスのフェイルオーバーのいずれかを実行します。