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構成ファイルを手動で編集することで構成できます。
この章には次のトピックが含まれます:
Oracle HTTP Server用Oracle WebLogic Serverプロキシ・プラグインは、WebSocketアプリケーションのフロントエンドとなることができるようになりました。
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 (単一の管理対象サーバーまたはクラスタ)にデプロイされており、アクセス可能であることを確認します。
バックエンドのOracle WebLogic Serverインスタンスがバージョン10.3.4以降の場合は、「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プラグインの有効化」に選択した値を継承します。
Fusion Middleware Controlを使用して、モジュールを構成します。モジュールを構成するには、次のタスクを実行します。
「mod_wl_ohs構成」ページには、Oracle WebLogic Serverプロキシ・プラグインを構成するためのパラメータがあります。
Oracle WebLogic Serverプロキシ・プラグインの構成設定を指定します。「一般」セクションで、WebLogicクラスタまたはWebLogicサーバーのmod_wl_ohsを構成できます。
「WebLogicクラスタ詳細の指定」ラジオ・ボタンを選択する場合、「WebLogicクラスタ」、「動的サーバー・リストをオン」、「エラー・ページ」、「WebLogic一時ディレクトリ」、「パスまたはMIMEタイプの除外」の各フィールドに値を指定します。
「WebLogic Serverホストおよびポート詳細の指定」ラジオ・ボタンを選択する場合、「WebLogicホスト」、「WebLogicポート」、「動的サーバー・リストをオン」、「エラー・ページ」、「WebLogic一時ディレクトリ」、「パスまたはMIMEタイプの除外」の各フィールドに値を指定します。
必要に応じて、式のオーバーライドやロケーションのオーバーライドを構成に追加できます。
「一致式」フィールドで式のオーバーライドを追加します。
「ロケーション」表でロケーションのオーバーライドを追加します。
「行の追加」をクリックして新規行を作成します。
関連付けられているディレクティブが有効になる、ベースURIを入力します。
「WebLogicクラスタ」、「WebLogicホスト」および「WebLogicポート」フィールドにすべて入力します。「自動入力」をクリックすることで、これらのフィールドに自動入力できます(「自動入力機能の使用」を参照)。
「パスの切捨て」フィールドに入力します。
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を含むよう変更する必要があります。「パスの切捨て」と「パスの付加」を併用することで、このパスを変更できます。
「パスの付加」フィールドに入力します。
RFC仕様に従うと、URLの汎用構文は次のとおりです。
[PROTOCOL]://[HOSTNAME]:{PORT}/{PATH}/{FILENAME};{PATH_PARAMS}/{QUERY_STRING}...
「パスの付加」は、「パスの切捨て」の値が切り捨てられてからリクエストがWebLogic Serverに転送されるまでの間に、モジュールによって元のURLの{PATH}部分の先頭に付加されるパスを指定します。
注意:
ファイル名を付加する必要がある場合は、「パスの付加」ではなくDefaultFileName
モジュール・パラメータを使用してください。
再度「行の追加」をクリックして、新しい行を保存します。
「mod_wl_ohs構成」ページに変更を適用して、Oracle HTTP Serverを再起動します。
モジュール構成が保存され、「構成」ページに表示されます。
検索機能を使用すると、選択したOracle HTTP Serverインスタンスで利用可能な特定のWebLogicクラスタまたはWebLogicホストを検索できます。検索アイコンをクリックすることで、選択したOracle HTTP Serverインスタンスで使用可能なクラスタまたはサーバーのリストを表示できます。検索機能を使用する手順は、次のとおりです。
選択したクラスタまたはサーバーの名前が、該当するフィールドに表示されます。
注意:
「自動入力」機能は、完全JRFモードでOracle WebLogic Serverを使用する場合のみ利用できます。制限JRFを使用する場合は利用できません。
「自動入力」ボタンを使用することで、指定したベースURLに対する有効なWebLogic Serverおよびエンドポイントの場所をOracle WebLogic Serverプロキシ・プラグインの「構成」画面の「ロケーション」表に簡単に追加できます。このための手順は、次のとおりです。
同一名の場所のデータは更新され、新しい場所は表に追加されます。
mod_wl_ohs.conf
ファイルにディレクティブを指定して、Oracle WebLogic Serverプロキシ・プラグインを手動で構成します。
事前定義済の<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の使用」を参照してください。
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メトリックに関する次の情報について説明します。
「Oracle HTTP Serverプロキシ・プラグイン用のDMSメトリックの構成」 - Oracle WebLogic ServerのDMSメトリックの構成方法。
「Oracle HTTP Serverプロキシ・プラグイン用のパフォーマンス・メトリックの表示」 - Oracle WebLogic ServerのDMSメトリックの表示方法。
「DMS状態メトリック」 - これらのメトリックは、カウンタやステータスなどの単一データ・ポイントを表します。
「DMSイベント・メトリック」 - これらのメトリックは、ログインの失敗などのイベントを表します。
「DMSフェーズPhaseEventメトリック」 - これらのメトリックは、イベントのフェーズを表します。
Oracle WebLogic Serverプロキシ・プラグイン用のDMSメトリックは、admin.conf
ファイルでデフォルトで有効です。これらは、通常のDMSメトリック・コレクションの一部として含まれます。
パフォーマンス・メトリックを表示するには、管理ポート、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-1では、Oracle WebLogic Serverプロキシ・プラグイン・モジュールに利用可能な状態メトリックについて説明します。
これらのメトリックは、Oracle WebLogic ServerおよびApache HTTP Serverプラグインの場合に返されます。
表2-1 Oracle WebLogic Serverプロキシ・プラグイン・モジュールの状態メトリック
メトリック名 | 説明 |
---|---|
|
拒否された( |
|
正常に処理できなかったリクエストの数。エラーについては、イベント・メトリックを参照してください。 |
|
|
|
|
|
リクエストが再試行された回数。リクエストは、通常、失敗すると再試行されます(構成により異なる)。これまでにリクエストが再試行された場合、このメトリックは増分します(リクエストが再試行された回数に関係なく、リクエストごとに1回)。 |
|
処理に成功したリクエストの数。リクエストの処理が成功した場合(Oracle WebLogic Serverにプロキシされてレスポンスがクライアントに返される)、このメトリックは増分します。 |
|
現在アクティブなWebSocketアップグレード・リクエストの数。 |
|
終了したWebSocketアップグレード・リクエストの数。WebSocketセッションを(なんらかの理由で)終了する場合、このメトリックが更新されます。 |
|
アクティブの可能性がある同時WebSocketリクエストの最大数。
|
|
この値を定義するには、次のように、アクティブなWebSocketsの数( ( |
|
作成されたWebSocketアップグレード・リクエストの数。リクエストURIがWebSocketアップグレード・リクエストの場合、このメトリックは増分します。 |
|
正常に完了したWebSocketアップグレード・リクエストの数。Oracle WebLogic Serverが |
DMSイベント・メトリックは、システム・イベントをカウントします。DMSイベントは、継続時間の短いシステム・イベントや、イベントの継続時間よりもイベントの発生が重要な場合のイベントを追跡します。表2-2では、Oracle WebLogic Serverプロキシ・プラグイン・モジュールに利用可能なイベント・メトリックについて説明します。
これらのメトリックは、Oracle WebLogic ServerおよびApache HTTP Serverプロキシ・プラグインの場合に返されます。
表2-2 Oracle WebLogic Serverプロキシ・プラグイン・モジュールのイベント・メトリック。
メトリック名 | 説明 |
---|---|
|
|
|
|
|
他のエラーの数。たとえば、 |
|
|
|
|
|
|
|
|
|
|
|
クライアントにより終了したWebSocketアップグレード・リクエストの数。クライアントがWebSocketアップグレード・リクエストを送信してクライアントが接続を終了する場合、このメトリックは更新されます。 |
|
エラーが原因で終了したWebSocketセッションの数。WebSocket接続が終了する原因となるエラーがある場合、このメトリックは更新されます。 |
|
WebSocketアップグレード・リクエストが拒否された回数。WebSocketアップグレード・リクエストのレスポンスは |
|
サーバーにより終了したWebSocketアップグレード・リクエストの数。Oracle WebLogic ServerがWebSocket通信の終了を開始する場合、このメトリックは更新されます。たとえば、リクエストのアップグレード後のタイムアウトまたは通信なし(デフォルトで5分)など。 |
DMS PhaseEventメトリックは、コード内の特定セクションの開始から終了までにかかる時間を測定します。PhaseEventは、あるメソッドまたはコード・ブロックの時間を追跡します。フェーズ・イベントごとに、「アクティブな件数」、「完了した件数」、「合計時間」、「最小時間」、「最大時間」、「平均時間」の値が含まれます。表2-3では、Oracle WebLogic Serverプロキシ・プラグイン・モジュールに利用可能なPhaseEventメトリックについて説明します。
これらのメトリックは、Oracle WebLogic ServerおよびApache HTTP Serverプロキシ・プラグインの場合に返されます。
表2-3 Oracle WebLogic Serverプロキシ・プラグイン・モジュールのPhaseEventメトリック
メトリック名 | 説明 |
---|---|
|
進行中のWebSocket通信。「WebSocketアップグレードの成功」から「WebSocket接続の終了」までのフェーズ(時間) |
|
「Oracle WebLogic 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のログの管理に関する項を参照してください。
Oracle WebLogic Serverプロキシ・プラグインを使用する場合、次の問題の一部が発生する可能性があります。これらの問題の解決方法について説明します。
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.
ストレス条件下では、いくつかのリクエストが失敗し、エラー・ログ・ファイルに次のエラーが記録される場合があります。
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エラーを減らすためのヒント」で説明されている手順に従ってください。
ストレス条件下では、いくつかのリクエストが失敗し、エラー・ログ・ファイルに次のエラーが記録される場合があります。
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からのレスポンスを待機する時間は長くなります。
(たとえば、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を設定する場合のみ適用されることに注意してください。他のシナリオの場合、別の手順が必要になることがあります。
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
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
Oracle WebLogic Serverは、keytool
コマンドの適用後、バウンス(停止または再起動)する必要があります。