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

検証時における DAS コンポーネント用障害モニターの処理

Sun Cluster HA for Sun Java System Application Server の DAS コンポーネントの障害モニター検証機能は、Sun Java System Application Server サーバーの健全性を照会する要求をサーバーに送信します。障害モニターの処理は、Monitor_Uri_List 拡張プロパティーの設定によって異なります。

Monitor_Uri_List プロパティーが設定されている場合の障害モニターの処理

Monitor_Uri_List 拡張プロパティーが単一の URI または複数の URI に設定されている場合、障害モニターの検証機能は次の手順を実行します。

  1. 障害モニターは、Probe_timeout リソースプロパティーに設定されているタイムアウト値に従って Sun Java System Application Server インスタンスの検証を行います。

  2. 検証機能は、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 プロパティーに構成ミス (不正なポートまたはホスト名の指定) があると、失敗を引き起こす可能性があります。たとえば、アプリケーションサーバーインスタンスが論理ホスト schost-1 で待機していて、URI が http://schost-2/servlet/monitor と指定されていると、検証機能は schost-2 に接続して /servlet/monitor を要求しようとします。

  3. Probe_timeout に指定された制限時間内に応答がない場合、検証機能は履歴ログに失敗を記録します。検証機能はこの状況を Sun Java System Application Server データサービスに属す障害とみなします。Sun Java System Application Server の検証障害は、完全障害の場合もあれば、部分障害の場合もあります。

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

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

    • サーバーとの接続に失敗すると、次のエラーメッセージが出されます。%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.
  4. モニターは、完全障害と等しくなるまで、すなわち、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
  5. 障害が発生すると、障害の履歴と検証パラメータの設定にもとづき、データサービスのローカルな再起動またはフェイルオーバーが発生します。

Monitor_Uri_List プロパティーが設定されていない場合の障害モニターの処理

Monitor_Uri_List 拡張プロパティーが設定されていない場合、障害モニターの検証機能は次の手順を実行します。

  1. 障害モニターは、Probe_timeout リソースプロパティーに設定されているタイムアウト値に従って Sun Java System Application Server インスタンスの検証を行います。

  2. 障害モニターの検証機能は、次に示すように asadmin コマンドを使用して Domain Administration Server (DAS) の状態を取得します。


    $INSTALL_DIR/appserver/bin/asadmin list-domains --domaindir $DOMAIN_DIR

    次の環境変数が設定されます。

    • INSTALL_DIR は、Confdir_list 拡張プロパティーを使用して設定されているインストールの場所です。

    • DOMAIN_DIR は、ドメインディレクトリのフルパスです。

    • DOMAIN_NAME はドメインの名前です。

  3. 検証機能が DAS が稼働していないと判断した場合、完全な障害として通知されます。

  4. 障害が発生すると、障害の履歴と検証パラメータの設定にもとづき、データサービスのローカルな再起動またはフェイルオーバーが発生します。