プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle WebLogic Serverプロキシ・プラグインの使用
12c (12.2.1.2.0)
E82686-02
目次へ移動
目次

前
次

2 Oracle HTTP Server用プラグインの構成

Oracle WebLogic Serverプロキシ・プラグイン()を構成します。これは、Oracle HTTP ServerからOracle WebLogic Serverにリクエストをプロキシするためのプラグインです。Oracle WebLogic Serverプロキシ・プラグインは、Oracle HTTP Server 12c (12.2.1.1.0)インストールに含まれます。別途ダウンロードしてインストールする必要はありません。

注意:

Oracle WebLogic Serverプロキシ・プラグインには、Apache HTTP Server用のプラグインと同じ機能が用意されています。

Oracle WebLogic Serverプロキシ・プラグインは、Fusion Middleware Controlを使用するか、mod_wl_ohs.conf構成ファイルを手動で編集することで構成できます。

この章には次のトピックが含まれます:

2.1 Oracle HTTP Serverのサポートに関する注意事項

Oracle HTTP Server用Oracle WebLogic Serverプロキシ・プラグインは、WebSocketアプリケーションのフロントエンドとなることができるようになりました。

2.2 Oracle WebLogic Serverプロキシ・プラグインの構成準備

Oracle WebLogic Serverプロキシ・プラグインを構成する前に、一部のインストールおよび検証タスクを完了する必要があります。

  • Oracle WebLogic Serverがインストールされ、ドメインが作成されており、Oracle WebLogic Serverの管理コンソールにアクセスできることを確認します。Oracle HTTP ServerとWebLogic Serverは、同一ドメインにインストールすることも、別ドメインにインストールすることもできます。

  • Fusion Middleware Controlがインストールされており、Enterprise Managerコンソールにアクセスできることを確認します。これは、Fusion Middleware Controlに用意されているグラフィカル・インタフェースを使用してOracle WebLogic Serverプロキシ・プラグインを構成する場合に必要になります。Fusion Middleware Controlは、WebLogic管理対象ドメインにのみ利用できます。

  • 構成をテストできるようにするには、必要なJavaアプリケーションがOracle WebLogic Server (単一の管理対象サーバーまたはクラスタ)にデプロイされており、アクセス可能であることを確認します。

2.2.1 「WebLogicプラグインの有効化」パラメータの設定

バックエンドのOracle WebLogic Serverインスタンスがバージョン10.3.4以降の場合は、「WebLogicプラグインの有効化」パラメータを設定する必要があります。

  1. Oracle WebLogic Server管理コンソールにログインします。
  2. 「ドメイン構造」ペインで「環境」ノードを開きます。
    • Oracle HTTP Serverからリクエストをプロキシするサーバー・インスタンスがクラスタにある場合は、「クラスタ」を選択します。

    • それ以外の場合は、「サーバー」を選択します。

  3. Oracle HTTP Serverからリクエストをプロキシするサーバーまたはクラスタを選択します。
  4. 「WebLogic Server」ドロップダウン・メニュー、「管理」、「一般」設定の順に選択します。

    「構成」→「一般」タブが表示されます。

  5. 下にスクロールして「詳細」セクションを開き、「WebLogicプラグインの有効化」ドロップダウン・リストから「はい」を選択します。

    WebLogicプラグインをWebLogic Serverと使用する場合には、「はい」を選択する必要があります。詳細は、「「WebLogicプラグインの有効化」パラメータの理解」を参照してください。

  6. 手順2で「サーバー」を選択した場合は、Oracle HTTP Serverからのリクエストをプロキシするその他のサーバーに対して手順3と4を繰り返します。
  7. 「保存」をクリックします。

変更内容を有効にするには、サーバー・インスタンスを再起動する必要があります。

2.2.1.1 「WebLogicプラグインの有効化」パラメータの理解

「WebLogicプラグインの有効化」ドロップダウン・リストには次の値が含まれます。

  • はい: WebLogicプラグインをWebLogic Serverと使用する場合には、「はい」を選択する必要があります。サーバーで「はい」に設定すると、このサーバーで独自のWL-Proxy-Client-IPヘッダーを使用することを指定することになります。サーバー・インスタンスがプロキシ・プラグインからリクエストを受信する場合は、設定することをお薦めします。

    クラスタで「はい」に設定すると、クラスタがプロキシ・プラグインまたはHttpClusterServletからのリクエストを受信することを指定することになります。getRemoteAddrを呼び出すと、Webサーバーではなく、独自のWL-Proxy-Client-IPヘッダーからブラウザ・クライアントのアドレスが戻されます。

  • いいえ: サーバーまたはクラスタで「いいえ」を選択すると、config.xmlファイルのweblogic-plugin-enabledパラメータが無効になります(weblogic-plugin-enabled=false)。

  • デフォルト: サーバー・ページの「WebLogicプラグインの有効化」「デフォルト」を選択すると、サーバーはクラスタの「WebLogicプラグインの有効化」に選択した値を継承します。クラスタ・ページの「WebLogicプラグインの有効化」「デフォルト」を選択すると、クラスタはドメインの「WebLogicプラグインの有効化」に選択した値を継承します。

2.3 Fusion Middleware Controlを使用したOracle WebLogic Serverプロキシ・プラグインの構成

Fusion Middleware Controlを使用して、モジュールを構成します。モジュールを構成するには、次のタスクを実行します。

2.3.1 タスク1: 「mod_wl_ohs構成」ページに移動

「mod_wl_ohs構成」ページには、Oracle WebLogic Serverプロキシ・プラグインを構成するためのパラメータがあります。

  1. 「Oracle WebLogic Serverプロキシ・プラグインの構成準備」に示されている前提条件が満たされていることを確認します。
  2. 「Oracle HTTP Server」メニューから「管理」を選択します。
  3. 「管理」メニューから「構成」を選択します。「構成」ページが表示されます。

    次の表では、mod_wl_ohsページのフィールドについて説明します。


    フィールド 説明

    WebLogicクラスタ詳細の指定

    ロード・バランシングに使用可能なOracle WebLogicクラスタのリスト。サーバーまたはクラスタのリストは、host:portエントリのリストです。クラスタとシングル・サーバーを組み合せて指定した場合、このパラメータに対して返される動的リストには、クラスタ化されたサーバーのみが含まれます。

    適切なクラスタかどうかがわからない場合は、検索アイコンをクリックして、関連付けられたすべてのクラスタのリストを表示できます。詳細は、「検索機能の使用」を参照してください。

    このモジュールは、すべての使用可能なサーバーの間の単純なラウンドロビンを実行します。このプロパティで指定したサーバー・リストが、サーバーとモジュールが保持する動的サーバー・リストの開始点となります。Oracle WebLogicサーバーおよびこのモジュールの連携により、このサーバー・リストは新規、失敗およびリカバリされたクラスタ・メンバーで自動的に更新されます。

    動的クラスタ・リストの使用を無効にするには、「動的サーバー・リストをオン」フィールドを無効にします。このモジュールはCookie、URLエンコード済セッション、またはPOSTデータに格納されたセッションを含むHTTPリクエストを、最初にCookieを作成したクラスタ内のサーバーに送信します。

    WebLogic Serverホストおよびポート詳細の指定

    • WebLogicホスト

      HTTPリクエストが転送される、Oracle WebLogic Serverホスト(またはOracle WebLogic Serverに定義されている仮想ホスト名)。WebLogicクラスタを使用している場合は、「WebLogicホスト」ではなく「WebLogicクラスタ」パラメータを使用します。

      適切なサーバーかどうかがわからない場合は、検索アイコンをクリックして、関連付けられたすべてのクラスタのリストを表示できます。詳細は、「検索機能の使用」を参照してください。

    • WebLogicポート

      Oracle WebLogic Serverホストがモジュール(または他のサーバー)からの接続リクエストをリスニングするポート。(モジュールとOracle WebLogic Serverの間でSSLを使用している場合、このパラメータをSSLリスニング・ポートに設定します。)

    動的サーバー・リストをオン | オフ

    オフに設定すると、モジュールはプロキシ設定されたロード・バランシング・リクエストに使用される動的クラスタ・リストを無視し、WebLogicクラスタ・パラメータで指定された静的リストのみを使用します。通常は、このパラメータをオンに設定してください。

    このパラメータをオフに設定した場合、次のような影響があります。

    • 静的リスト内の1つ以上のサーバーが失敗した場合、モジュールは終了したサーバーへの接続を試行し無駄な時間を費やすことがあるため、パフォーマンスが低下します。

    • クラスタに新しいサーバーを追加した場合、このパラメータを再定義しないかぎりモジュールは新しいサーバーへリクエストをプロキシ設定できません。Oracle WebLogic Serverは、新しいサーバーがクラスタの一部になると、これらのサーバーを動的サーバー・リストへ自動的に追加します。

    エラー・ページ

    WebサーバーでリクエストをOracle WebLogic Serverに転送できない場合に表示されるよう、独自のエラー・ページを作成できます。

    WebLogic一時ディレクトリ

    ポスト・データ・ファイル用の_wl_proxyディレクトリの場所を指定します。

    パスまたはMIMEタイプの除外

    このパラメータを使用すると、特定のリクエストをプロキシ処理から除外できます。

    このパラメータは、グローバルに定義することも、「場所」タグ・レベルでローカルに定義することもできます。このプロパティをローカルに定義した場合、グローバルなプロパティがオーバーライドされるのではなく、2つのパラメータの集合が定義されます。

    一致式

    このリージョンを使用して、式のオーバーライドを指定します。たとえば、MIMEタイプでプロキシしている場合には、次のように入力できます。

    *.jsp WebLogicHost=myHost|paramName=value

    次の構文を使用することで、「一致式」の新しいパラメータを定義できます。

    *.jsp PathPrepend=/test|PathTrim=/foo 

    (パラメータは|で区切られます)

    ロケーション

    この表を使用して、ロケーションのオーバーライドを指定します。「タスク3: 式のオーバーライドまたはロケーションのオーバーライドの構成(省略可)」を参照してください。

    クロス・コンポーネント・ワイヤリングの追加

    このボタンは、Oracle HTTP Serverを完全JRFモード(コロケート)でインストールし、バッキング・データベースがある場合にのみ表示されます。

    このボタンを選択すると、サービス表ページが開きます。サービス表を使用して、サービス・プロバイダはサービスのエンドポイント情報を公開し、これらのサービスのクライアントはこれらのサービスに問い合せてバインドすることができます。サービス表はデータベース・スキーマの単一の表です。パブリッシュされる各エンドポイントに対して1行あります。サービス表スキーマは、最初にリポジトリ作成ユーティリティにより作成されます。

    詳細は、Oracle Fusion Middlewareの管理のクロス・コンポーネント・ワイヤリングを参照してください


2.3.2 タスク2: 構成設定の指定

Oracle WebLogic Serverプロキシ・プラグインの構成設定を指定します。「一般」セクションで、WebLogicクラスタまたはWebLogicサーバーのmod_wl_ohsを構成できます。

  • 「WebLogicクラスタ詳細の指定」ラジオ・ボタンを選択する場合、「WebLogicクラスタ」、「動的サーバー・リストをオン」、「エラー・ページ」、「WebLogic一時ディレクトリ」、「パスまたはMIMEタイプの除外」の各フィールドに値を指定します。

  • 「WebLogic Serverホストおよびポート詳細の指定」ラジオ・ボタンを選択する場合、「WebLogicホスト」、「WebLogicポート」、「動的サーバー・リストをオン」、「エラー・ページ」、「WebLogic一時ディレクトリ」、「パスまたはMIMEタイプの除外」の各フィールドに値を指定します。

2.3.3 タスク3: 式のオーバーライドまたはロケーションのオーバーライドの構成(省略可)

必要に応じて、式のオーバーライドやロケーションのオーバーライドを構成に追加できます。

  1. 「一致式」フィールドで式のオーバーライドを追加します。

  2. 「ロケーション」表でロケーションのオーバーライドを追加します。

    1. 「行の追加」をクリックして新規行を作成します。

    2. 関連付けられているディレクティブが有効になる、ベースURIを入力します。

    3. 「WebLogicクラスタ」「WebLogicホスト」および「WebLogicポート」フィールドにすべて入力します。「自動入力」をクリックすることで、これらのフィールドに自動入力できます(「自動入力機能の使用」を参照)。

    4. 「パスの切捨て」フィールドに入力します。

      RFC仕様に従うと、URLの汎用構文は次のとおりです。

      [PROTOCOL]://[HOSTNAME]:{PORT}/{PATH}/{FILENAME};{PATH_PARAMS}/{QUERY_STRING}...
      

      「パスの切捨て」は、リクエストがWebLogic Serverに転送される前に、モジュールによって元のURLの{PATH}/{FILENAME}部分から切り捨てられる文字列を指定します。たとえば、URLが次のとおりだとします。

      http://myWeb.server.com/weblogic/foo
      

      このURLは、解析のためにモジュールに渡されます。また「パスの切捨て」がURLをWebLogic Serverに渡す前に/weblogicを切り捨てるように設定されている場合、WebLogic Serverには次のURLが転送されます。

      http://myWeb.server.com:7002/foo

      注意:

      既存のサード・パーティ製サーバーを変更し、初めてこのモジュールを使用してWebLogic Serverにリクエストをプロキシする場合は、/fooへのアプリケーション・パスをweblogic/fooを含むよう変更する必要があります。「パスの切捨て」と「パスの付加」を併用することで、このパスを変更できます。

    5. 「パスの付加」フィールドに入力します。

      RFC仕様に従うと、URLの汎用構文は次のとおりです。

      [PROTOCOL]://[HOSTNAME]:{PORT}/{PATH}/{FILENAME};{PATH_PARAMS}/{QUERY_STRING}...
      

      「パスの付加」は、「パスの切捨て」の値が切り捨てられてからリクエストがWebLogic Serverに転送されるまでの間に、モジュールによって元のURLの{PATH}部分の先頭に付加されるパスを指定します。

      注意:

      ファイル名を付加する必要がある場合は、「パスの付加」ではなくDefaultFileNameモジュール・パラメータを使用してください。

    6. 再度「行の追加」をクリックして、新しい行を保存します。

2.3.4 タスク4: 変更の適用

「mod_wl_ohs構成」ページに変更を適用して、Oracle HTTP Serverを再起動します。

  1. 設定に問題がない場合、「適用」をクリックして変更を適用します。設定に問題がある場合、または変更を適用しない場合、「元に戻す」をクリックして元の設定に戻します。
  2. Oracle HTTP Serverメニューで「制御」「起動」を選択し、Oracle HTTP Serverを再起動します。

モジュール構成が保存され、「構成」ページに表示されます。

2.3.5 検索機能の使用

検索機能を使用すると、選択したOracle HTTP Serverインスタンスで利用可能な特定のWebLogicクラスタまたはWebLogicホストを検索できます。検索アイコン拡大鏡をクリックすることで、選択したOracle HTTP Serverインスタンスで使用可能なクラスタまたはサーバーのリストを表示できます。検索機能を使用する手順は、次のとおりです。

  1. 「WebLogicクラスタ」または「WebLogicホスト」の検索アイコンをクリックします。「WebLogicクラスタの選択」または「WebLogic Serverの選択」ダイアログ・ボックスが表示されます。
  2. 使用するクラスタまたはサーバーを選択して、「OK」をクリックします。

選択したクラスタまたはサーバーの名前が、該当するフィールドに表示されます。

2.3.6 自動入力機能の使用

注意:

「自動入力」機能は、完全JRFモードでOracle WebLogic Serverを使用する場合のみ利用できます。制限JRFを使用する場合は利用できません。

「自動入力」ボタンを使用することで、指定したベースURLに対する有効なWebLogic Serverおよびエンドポイントの場所をOracle WebLogic Serverプロキシ・プラグインの「構成」画面の「ロケーション」表に簡単に追加できます。このための手順は、次のとおりです。

  1. 「追加」をクリックして、新しいロケーションを追加します。
  2. 「ロケーション」フィールドにロケーション名を入力します。
  3. 「自動入力」をクリックします。

同一名の場所のデータは更新され、新しい場所は表に追加されます。

2.4 Oracle WebLogic Serverプロキシ・プラグインの手動による構成

mod_wl_ohs.confファイルにディレクティブを指定して、Oracle WebLogic Serverプロキシ・プラグインを手動で構成します。

  1. 「Oracle WebLogic Serverプロキシ・プラグインの構成準備」に示されている前提条件が満たされていることを確認します。
  2. テキスト・エディタでmod_wl_ohs.confファイルを開きます。

    mod_wl_ohs.confファイルは次のディレクトリにあります。

    DOMAIN_HOME/config/fmwconfig/components/OHS/componentHome

  3. 構成ファイルの<IfModule weblogic_module>要素内にディレクティブを追加します。

    たとえば、「<IfModule weblogic_module>要素の構成例」を参照してください。

    mod_wl_ohs.confファイル内で指定できるその他のディレクティブの詳細は、Webサーバー・プラグインのパラメータを参照してください。

  4. Oracle HTTP Serverの管理のOracle HTTP Serverの起動で説明されているいずれかの方法でOracle HTTP Serverを再起動します。

2.4.1 <IfModule weblogic_module>要素の構成例

事前定義済の<IfModule weblogic_module>要素の構成によって、リクエストがどのようにOracle WebLogic Serverに送信されるかが決まります。次の例は、この要素を構成できる様々な方法を示しています。

注意:

事前定義済の<IfModule weblogic_module>要素内でディレクティブを指定することをお薦めします。

事前定義済の<IfModule weblogic_module>要素の外や、追加された<IfModule weblogic_module>要素内、またはmod_wl_ohs.conf以外の構成ファイル内でディレクティブを指定した場合、Oracle WebLogic Serverプロキシ・プラグインは機能したとしても、Fusion Middleware Controlで表示されるモジュールの構成状態は、mod_wl_ohs.conf構成ファイル内で指定したディレクティブと矛盾する可能性があります。

単一のOracle WebLogic Serverインスタンスにリクエストを転送する場合

単一のOracle WebLogic Serverインスタンス上で実行されるアプリケーションにリクエストを転送するには、その宛先サーバーの詳細を<location>要素内で指定します。

構文:

<IfModule weblogic_module>
<Location path>
WLSRequest On
WebLogicHost host
WeblogicPort port
</Location>
</IfModule>

:

次のように構成すると、Oracle HTTP Serverのリスニング・ポートで受信された/myapp1 URIのリクエストは、リスニング・ポートlocalhost:7001のOracle WebLogic Serverの/myapp1に転送されます。

<IfModule weblogic_module>
<Location /myapp1>
WLSRequest On
WebLogicHost localhost
WeblogicPort 7001
</Location>
</IfModule>

Oracle WebLogic Serverインスタンスのクラスタにリクエストを転送する場合

Oracle WebLogic Serverインスタンスのクラスタ上で実行されているアプリケーションにリクエストを転送するには、その宛先クラスタの詳細を新しい<location>要素内で指定します。

構文:

<IfModule weblogic_module>
<Location path>
WLSRequest On
WebLogicCluster host:port,host:port,...
</Location>
</IfModule>

:

次のように構成すると、Oracle HTTP Serverリスニング・ポートで受信された/myapp2 URIのリクエストは、リスニング・ポートlocalhost:8002およびlocalhost:8003の管理対象サーバーを含むOracle WebLogic Serverクラスタ/myapp2へ転送されます。

<IfModule weblogic_module>
<Location /myapp2>
WLSRequest On
WebLogicCluster localhost:8002,localhost:8003
</Location>
</IfModule>

複数の宛先を構成する場合

単一のOracle WebLogic Serverインスタンス上で実行されているアプリケーションとクラスタ上で実行されている別のアプリケーションなど、複数の宛先を構成するには、各宛先を個別の<location>子要素内で指定する必要があります。次の構文で示すように、<IfModule weblogic_module>要素内のすべての<location>子要素は同じレベルに存在する必要があります。

<IfModule weblogic_module>
#For an application running on a single server instance
<Location path1>
WLSRequest On
WebLogicHost host
WeblogicPort port
</Location>

#For an application running on a cluster
<Location path2>
WLSRequest On
WebLogicCluster host:port,host:port,...
</Location>

</IfModule>

管理対象サーバーにリンクする場合

たとえばOracle HTTP Serverの高可用性デプロイメントを有効にするため、Oracle WebLogic Serverプロキシ・プラグインを管理対象サーバーにリンクできるように構成するには、mod_wl_ohs.confファイルを次のように編集します。

<IfModule mod_weblogic.c>
      WebLogicCluster apphost1.mycompany.com:7050,apphost2.mycompany.com:7050
      MatchExpression *.jsp
 </IfModule>
  
<Location /weblogic>
  WLSRequest On
  WebLogicCluster apphost1.mycompany.com:7050,apphost2.com:7050
  DefaultFileName index.jsp
</Location>

注意:

SSL終端を使用しており、リクエストをWebLogicにルーティングする場合は、さらに次の構成が必要です。

WebLogicコンソールで、ドメイン、クラスタまたは管理対象サーバーのレベルで「WebLogicプラグインの有効化」を「true」に設定する必要があります。

WebLogic管理対象サーバーにリクエストを送信するLocationブロックに、次の行のどちらかを追加することも必要です。

WLProxySSL ON
WLProxySSLPassThrough ON

(使用するパラメータの決定には、「Webサーバー・プラグインのSSLパラメータ」を参照してください。)

次にその例を示します。

<Location /weblogic>
  WLSRequest On
  WebLogicCluster apphost1.mycompany.com:7050,apphost2.com:7050
  WLProxySSL On
  WLProxySSLPassThrough ON
  DefaultFileName index.jsp
</Location>

WebLogicプラグインを有効化した後、管理サーバーを再起動します。

詳細は、『Oracle HTTP Serverの管理』のSSLリクエストの終了に関する項を参照してください。

この例は、Oracle WebLogic管理対象サーバーにリクエストをルーティングする2つの方法を示しています。

  • <IfModule>ブロックでは、*.jspで終わるすべてのリクエストがApphost1およびApphost2上にあるWebLogic管理対象サーバーのクラスタに送信されます。

  • <Location>ブロックでは、/weblogicで始まるURLのすべてのリクエストがApphost1およびApphost2上にあるWebLogic管理対象サーバーのクラスタに送信されます。

一方向および双方向SSLを構成する場合

Oracle HTTP ServerとOracle WebLogic Serverとの間の一方向SSLおよび双方向SSLをサポートするようOracle WebLogic Serverプロキシ・プラグインを構成する方法の詳細は、「プラグインでのSSLの使用」を参照してください。

2.5 Oracle WebLogic Serverプロキシ・プラグインのパフォーマンス・メトリックの理解

Oracle HTTP Serverには、リクエストがバックエンドWebLogicサーバーにプロキシされるOracle WebLogic Serverプロキシ・プラグイン(mod_wl_ohs)モジュールに固有のパフォーマンス・メトリックが用意されています。

これらのメトリックは、Oracle Dynamic Monitoring Service (DMS)経由で提供されます。これを使用すると、Oracle Fusion Middlewareのコンポーネントは、Fusion Middleware Controlなどの管理ツールに、コンポーネントのパフォーマンス、状態および進行中の動作に関するデータを提供できるようになります。たとえば、Oracle WebLogic Serverプロキシ・プラグイン・モジュールの場合、プロキシされたリクエストの数、失敗したリクエストの数、その他固有のメトリックが返されます。DMSの詳細は、『パフォーマンスのチューニング・ガイド』のOracle Dynamic Monitoring Serviceの使用に関する項を参照してください。

注意:

Oracle WebLogic Serverプロキシ・プラグイン・モジュールのメトリックは、Oracle HTTP ServerおよびApache Serverプラグインにのみ利用できます。Microsoft IISおよびiPlanet Serverプラグインでは利用できません。

この項では、DMSメトリックに関する次の情報について説明します。

2.5.1 Oracle HTTP Serverプロキシ・プラグイン用のDMSメトリックの構成

Oracle WebLogic Serverプロキシ・プラグイン用のDMSメトリックは、admin.confファイルでデフォルトで有効です。これらは、通常のDMSメトリック・コレクションの一部として含まれます。

2.5.2 Oracle HTTP Serverプロキシ・プラグイン用のパフォーマンス・メトリックの表示

パフォーマンス・メトリックを表示するには、管理ポート、WLSTコマンドまたはFusion Middleware Controlのいずれかを使用します。各パフォーマンス・メトリックの詳細は、「DMS状態メトリック」「DMSイベント・メトリック」および「DMS PhaseEventメトリック」を参照してください。

管理コンソールを使用する場合:

たとえば、127.0.0.1:9999で管理ポートを構成する場合、生のDMSメトリックをURL http://127.0.0.1/dms/で表示できます。

セクション/WebLogicProxy [type=OHSWebLogic]のメトリックは、Oracle WebLogic Serverプラグインからのメトリックになります。

WLSTの使用(コロケート・モードのみ)

WLSTコマンドdisplayMetricTablesを使用して、パフォーマンス・メトリックを表示します。たとえば、次のようになります。

displayMetricTables(servertype="OHS", servers=<instancename>)

セクション/WebLogicProxy [type=OHSWebLogic]のメトリックは、Oracle WebLogic Serverプロキシ・プラグインからのメトリックになります。

Fusion Middleware Controlの使用(コロケート・モードのみ)

Fusion Middleware Controlでパフォーマンス・メトリックを表示するには、「Oracle HTTP Server」、「モニタリング」、「パフォーマンス・サマリー」の順に選択します。このページの下部にあるメトリックには、Oracle WebLogic Serverプロキシ・プラグインに固有のメトリックがあります。『Oracle HTTP Serverの管理』のパフォーマンス・メトリックの表示に関する項を参照してください。

2.5.3 DMS状態メトリック

状態メトリックは、システムのステータス情報や、イベントに関係のないメトリックを追跡します。表2-1では、Oracle WebLogic Serverプロキシ・プラグイン・モジュールに利用可能な状態メトリックについて説明します。

これらのメトリックは、Oracle WebLogic ServerおよびApache HTTP Serverプラグインの場合に返されます。


表2-1 Oracle WebLogic Serverプロキシ・プラグイン・モジュールの状態メトリック

メトリック名 説明

totalDeclines

拒否された(mod_wl_ohsで処理されない)リクエストの合計数。この数は、構成されないリクエストまたはプラグインで拒否されるリクエスト(カスタムHTTPメソッドが常にプラグインで拒否される場合など)を表します。

totalErrors

正常に処理できなかったリクエストの数。エラーについては、イベント・メトリックを参照してください。

totalHandled

mod_wl_ohsプラグインにより処理されたリクエストの合計数。

totalRequests

mod_wl_ohsにより受信されたリクエストの合計数。この数には、プラグインの対象となるすべてのリクエストに加えて、任意のモジュールの対象とならない(構成されない)リクエストが含まれます。

totalRetries

リクエストが再試行された回数。リクエストは、通常、失敗すると再試行されます(構成により異なる)。これまでにリクエストが再試行された場合、このメトリックは増分します(リクエストが再試行された回数に関係なく、リクエストごとに1回)。

totalSuccess

処理に成功したリクエストの数。リクエストの処理が成功した場合(Oracle WebLogic Serverにプロキシされてレスポンスがクライアントに返される)、このメトリックは増分します。

websocketActive

現在アクティブなWebSocketアップグレード・リクエストの数。

websocketClose

終了したWebSocketアップグレード・リクエストの数。WebSocketセッションを(なんらかの理由で)終了する場合、このメトリックが更新されます。

websocketMax

アクティブの可能性がある同時WebSocketリクエストの最大数。

WLMaxWebSocketClientsパラメータを構成する場合、次の値よりも低くなります。

  • 構成値または

  • MaxRequestWorkersの値の0.75 (Oracle HTTP ServerおよびApache 2.4)または

  • MaxClientsの値の0.75 (Apache 2.2)または

  • ThreadsPerChildの値の0.75 (Oracle HTTP ServerおよびApache 2.2/2.4、Windowsのみ)

WLMaxWebSocketClientsパラメータを構成しない場合、値は次のようになります。

  • MaxRequestWorkersの値の0.5 (Oracle HTTP ServerおよびApache 2.4)または

  • MaxClientsの値の0.5 (Apache 2.2)または

  • ThreadsPerChildの値の0.5 (Oracle HTTP ServerおよびApache 2.2/2.4、Windowsのみ)

WLMaxWebSocketClientsパラメータの詳細は、「WebSocketアップグレード・リクエストの高スループットに対するOracle HTTP ServerおよびApache HTTP Serverのチューニング」を参照してください。

websocketPercent

この値を定義するには、次のように、アクティブなWebSocketsの数(websocketActive)を同時WebSocketリクエストの最大数(websocketMax)で除算した値に100を掛けます。

(websocketActive/webocketMax)*100.

websocketRequests

作成されたWebSocketアップグレード・リクエストの数。リクエストURIがWebSocketアップグレード・リクエストの場合、このメトリックは増分します。

websocketSuccess

正常に完了したWebSocketアップグレード・リクエストの数。Oracle WebLogic Serverが「101 プロトコルの切替え中」でWebSocketアップグレード・リクエストに応答する場合、このメトリックは更新されます。


2.5.4 DMSイベント・メトリック

DMSイベント・メトリックは、システム・イベントをカウントします。DMSイベントは、継続時間の短いシステム・イベントや、イベントの継続時間よりもイベントの発生が重要な場合のイベントを追跡します。表2-2では、Oracle WebLogic Serverプロキシ・プラグイン・モジュールに利用可能なイベント・メトリックについて説明します。

これらのメトリックは、Oracle WebLogic ServerおよびApache HTTP Serverプロキシ・プラグインの場合に返されます。


表2-2 Oracle WebLogic Serverプロキシ・プラグイン・モジュールのイベント・メトリック。

メトリック名 説明

errConnRefused

CONNECTION_REFUSEDエラーの数。構成されたWebLogicHostまたはWebLogicPortに到達できないか、リスニングしない回数を表します。

errNoResources

NO_RESOURCESエラーの数この例外が発生する可能性のある1つのシナリオとして、SSLをプラグインで構成しても、対応するSSL構成を管理対象サーバーで定義しない場合があります。

errOthers

他のエラーの数。たとえば、POSTデータ・サイズは、MaxPostSizeの値よりも大きくなります。

errReadClient

READ_ERROR_FROM_CLIENTエラーの数。プラグインがクライアント(ブラウザ)から読み込まれなかった回数を表します。

errReadServer

READ_ERROR_FROM_SERVERエラーの数。読取り操作がOracle WebLogic Serverで正常に行われなかった回数を表します。

errReadTimeout

READ_TIMEOUTエラーの数。たとえば、WLIOTimeoutSecs内でOracle WebLogic Serverが応答しない場合などがあります。

errWriteClient

WRITE_ERROR_TO_CLIENTエラーの数。プラグインがクライアントに書き込むことができなかった回数を表します。これは、クライアントがリクエストを送信してもレスポンスの受信前に接続を終了する場合に表示されます。

errWriteWLS

WRITE_ERROR_TO_SERVERエラーの数。プラグインがOracle WebLogic Serverに書き込むことができなかった回数を表します。

wsClientClose

クライアントにより終了したWebSocketアップグレード・リクエストの数。クライアントがWebSocketアップグレード・リクエストを送信してクライアントが接続を終了する場合、このメトリックは更新されます。

wsErrorClose

エラーが原因で終了したWebSocketセッションの数。WebSocket接続が終了する原因となるエラーがある場合、このメトリックは更新されます。

wsNoUpgrade

WebSocketアップグレード・リクエストが拒否された回数。WebSocketアップグレード・リクエストのレスポンスは「101 プロトコルの切替え中」ではありません。これは、WebSockets (Oracle WebLogic Serverバージョン12.1.2以前)をサポートしないOracle WebLogic Serverにアップグレード・リクエストが送信される場合に発生します。

wsServerClose

サーバーにより終了したWebSocketアップグレード・リクエストの数。Oracle WebLogic ServerがWebSocket通信の終了を開始する場合、このメトリックは更新されます。たとえば、リクエストのアップグレード後のタイムアウトまたは通信なし(デフォルトで5分)など。


2.5.5 DMS PhaseEventメトリック

DMS PhaseEventメトリックは、コード内の特定セクションの開始から終了までにかかる時間を測定します。PhaseEventは、あるメソッドまたはコード・ブロックの時間を追跡します。フェーズ・イベントごとに、「アクティブな件数」、「完了した件数」、「合計時間」、「最小時間」、「最大時間」、「平均時間」の値が含まれます。表2-3では、Oracle WebLogic Serverプロキシ・プラグイン・モジュールに利用可能なPhaseEventメトリックについて説明します。

これらのメトリックは、Oracle WebLogic ServerおよびApache HTTP Serverプロキシ・プラグインの場合に返されます。


表2-3 Oracle WebLogic Serverプロキシ・プラグイン・モジュールのPhaseEventメトリック

メトリック名 説明

websocketPhase

進行中のWebSocket通信。「WebSocketアップグレードの成功」から「WebSocket接続の終了」までのフェーズ(時間)

wlsWait

「Oracle WebLogic Serverへのリクエストの送信」から「レスポンスの待機中」までのフェーズ(時間)。


2.6 Oracle HTTP Serverの非推奨ディレクティブ

Oracle WebLogic Serverプロキシ・プラグイン用のWebLogic Serverプラグイン・ログは、現在はWeb Serverのエラー・ログ・メカニズムの一部となっています。モジュール名をweblogicとしてリファレンスを識別できます。たとえば、次のようになります。

[2015-05-14T00:43:27.8355-06:00] [OHS] [TRACE:16] [OH99999] [weblogic] [client_id: ::1] [host_id: XXXXXXXX] [host_addr: XX.XXX.XXX.XXX] [pid: 1240] [tid: 2424] [user: sramavan] [ecid: 00iT9hK4DrhFw0zobn063z0BvEE3zsYyk0000JO00000H] [rid: 0] [VirtualHost: main] ================New Request: [GET /favicon.ico HTTP/1.1] =================

ディレクティブWLLogFileおよびDebugは非推奨です。構成でこれらのディレクティブを使用すると、次の注意がノード・マネージャのプラグイン・ログ・ファイル(ohs_nm.log)に表示されます。

<2015-05-14 00:36:25> <INFO> <OHS-0> <[Thu May 14 00:36:25.723286 2015] [weblogic:warn] [pid 5084:tid 668] The Debug directive is ignored. The web server log level is used instead.>

<2015-05-14 00:36:25> <INFO> <OHS-0> <[Thu May 14 00:36:25.724263 2015] [weblogic:warn] [pid 5084:tid 668] The WLLogFile directive is ignored. The web server log file is used instead.>

プラグイン・ログを有効にするには:

  • OraLogModeをODL-textに設定した場合は、OraLogSeverityをTRACE:16に設定します。これらのログは、OraLogDirディレクトリに表示されます(instance-name.log)。これはデフォルトの設定です。

  • OraLogModeをapacheに設定した場合は、LogLevelをdebugに設定します。ディレクティブErrorLogは、エラーの記録先となるファイルを示します。

Oracle HTTP Serverのログの管理の詳細は、『Oracle HTTP Serverの管理』のOracle HTTP Serverのログの管理に関する項を参照してください。

2.7 Oracle WebLogic Serverプロキシ・プラグインの実装に関するトラブルシューティング

Oracle WebLogic Serverプロキシ・プラグインを使用する場合、次の問題の一部が発生する可能性があります。これらの問題の解決方法について説明します。

2.7.1 WLSセッションの問題

Oracle WebLogic Serverプロキシ・プラグインにより、バックエンドのOracle WebLogic Serverまたはクラスタにリクエストがルーティングされます。Oracle WebLogic Serverでは、同一クライアントからの後続リクエストが同一サーバーにルーティングされるようにセッションを維持します。ただし、様々な理由により、Oracle WebLogic Serverプロキシ・プラグインがOracle WebLogic Serverサーバーと通信できない場合、リクエストは次の方法で処理されます。

  • リクエストが単一のWebLogic Serverインスタンスにルーティングされると、Oracle WebLogic Serverプロキシ・プラグインは、ConnectTimeoutSecsとConnectRetrySecsの比で指定されている最大再試行回数まで、同じWebLogic Serverインスタンスへの接続の試行を継続します。すべての試みが失敗すると、クライアントにHTTP 503エラー・メッセージが返されます。

  • リクエストがWebLogicクラスタにルーティングされると、現在のWLSサーバーはbadとしてマークされ、そのリクエストは次に使用可能なWLSサーバーにルーティングされます。すべての試みが失敗すると、クライアントにHTTP 503エラー・メッセージが返されます。

HTTP 503エラー・メッセージが送信されるほか、レスポンスとしてHTTPクライアントで次のメッセージが表示されます。

Failure of Web Server bridge:
No backend server available for connection: timed out after xx seconds or idempotent set to OFF or method not idempotent.

2.7.2 CONNECTION_REFUSEDエラー

ストレス条件下では、いくつかのリクエストが失敗し、エラー・ログ・ファイルに次のエラーが記録される場合があります。

weblogic: Trying GET /uri at backend host 'xx.xx.xx.xx/port; got exception 'CONNECTION_REFUSED [os error=xxx, line xxxx of URL.cpp]: apr_socket_connect call failed with error=xxx, host=xx.xx.xx.xx, port=xxxx'

「CONNECTION_REFUSEDエラーを減らすためのヒント」で説明されているように、Oracle WebLogic Serverが最大許容バックログ接続に達した可能性があります。

解決するには、「CONNECTION_REFUSEDエラーを減らすためのヒント」で説明されている手順に従ってください。

2.7.3 NO_RESOURCESエラー

ストレス条件下では、いくつかのリクエストが失敗し、エラー・ログ・ファイルに次のエラーが記録される場合があります。

weblogic: *******Exception type [NO_RESOURCES] (apr_socket_connect call failed with error=70007, host=xx.xx.xx.xx, port=xxxx) raised at line xxxx of URL.cpp

これは通常、Oracle WebLogic Serverがビジー状態でOracle WebLogic Serverプロキシ・プラグインからの接続リクエストに応答できない場合に発生します。WLSocketTimeoutSecsの値を大きくすることで解決される場合があります。これにより、Oracle WebLogic Serverプロキシ・プラグインでの、接続リクエストに対するOracle WebLogic Serverからのレスポンスを待機する時間は長くなります。

2.7.4 Oracle WebLogic Serverキーストアの変更により予想外の動作が発生する

(たとえば、Oracle HTTP ServerとOracle WebLogic Serverとの間でバックエンドの一方向SSLを設定して)Oracle WebLogic Serverキーストアを変更する場合、Oracle WebLogic ServerとNodeManagerの間の通信が遮断される可能性があります。これが発生する場合、WLSTから発行されるすべてのプロビジョニングおよびプロセス管理コマンドにも影響があります。この状況でのエラー・メッセージは適切ではないため、状況が混乱する場合があります。たとえば、NodeManagerが明らかに稼働していることがユーザーに表示される場合でも、一部のエラーでは停止状態が示されます。

ここでは、発生の可能性がある予想外の動作の例をいくつか示します。これらの例では、NodeManagerが稼働していることに注意してください。

  • Oracle HTTP Serverインスタンスに対して実行されたすべてのstate()コマンドがUNKNOWNを返す場合。

    wls:/OHSDomain/serverConfig/> state('ohs1')
    Current state of "ohs1" : UNKNOWN
    
  • Oracle HTTP Serverプロセス管理コマンドがSSLEngineエラーを返す場合:

    wls:/OHSDomain/serverConfig/> start('ohs1')
    Starting system component "ohs1" ...
     
    General SSLEngine problem
    Traceback (innermost last):
      File "<console>", line 1, in ?
      File "<iostream>", line 1384, in start
      File "<iostream>", line 553, in raiseWLSTException
    WLSTException: Error occurred while performing start : System component with
    name "ohs1" failed to start : General SSLEngine problem
    ....
    
  • Oracle HTTP Serverカスタム・コマンドohs_createInstanceが、NodeManagerが停止していることを示すメッセージを返し、バックアップされるとコマンドが完了する場合。例:

    ohs_createInstance(instanceName='ohs1',machine='myMachine.myCompany.com')
    ....
    The node manager for "ohs1" is not reachable. Changes will be completed when the node manager is available.
    The node manager error is: Node Manager is not available on machine myMachine.myCompany.com
    Activation completed. 

回避策:

この問題を回避するには、NodeManagerデモ信頼証明書をJava標準信頼に追加します。この回避策は、ユーザーが一方向のバックエンドSSLを設定する場合のみ適用されることに注意してください。他のシナリオの場合、別の手順が必要になることがあります。

  1. keytoolコマンドを使用して、NodeManagerデモ信頼証明書をJavaキーストアにエクスポートします。

    keytool -exportcert -rfc -alias wlscertgenca -storepass DemoTrustKeyStorePassPhrase -file /<path to location of nmCert.crt> -keystore $ORACLE_HOME/wlserver/server/lib/DemoTrust.jks
    
  2. keytoolコマンドを使用して、NodeManagerデモ信頼証明書をJava標準信頼にインポートします。

    keytool -importcert -alias wlscertgenca -file /<path to location of nmCert.crt> -keystore $JAVA_HOME/jre/lib/security/cacerts -trustcacerts -storepass changeit -noprompt
    
  3. Oracle WebLogic Serverは、keytoolコマンドの適用後、バウンス(停止または再起動)する必要があります。