- IgnoreDNSFailures
- プラグインが、開始時に構成内の DNS 障害を無視するかどうかを指定します。true に設定すると、
プラグインは構成内の DNS 障害を無視し、各 ServerCluster で少なくとも 1 つのサーバーがホスト名を解決できる場合には正常に開始します。ホスト名を解決できないサーバーは、構成の間 unavailable としてマーク付けされます。それ以降、要求のルーティング時にホスト名の
解決は試行されません。DNS 障害が発生した場合、Web サーバーの開始が阻止されるのではなく、プラグイン・ログ・ファイルにログ・メッセージが書き込まれ、プラグインの初期化が継続されます。デフォルト値は false です。
この場合は、DNS 障害があると Web サーバーは始動しません。
- RefreshInterval
- 更新または変更が行われたかどうかを確認するために、
プラグインが構成ファイルを検査する時間間隔 (秒)。
プラグインはファイルをチェックして、プラグイン構成が最後
にロードされてから変更が行われたかどうかを調べます。
変更が頻繁に行われる開発環境では、
設定値をデフォルトの 60 より小さくすることをお勧めします。
実動環境では、構成の更新がそれほど頻繁に行われるわけではないので、
値をデフォルトより大きくしておくことをお勧めします。
何らかの理由でプラグインの再ロードに失敗すると、
プラグインのログ・ファイルにメッセージが書き込まれ、
プラグイン構成ファイルが正常に再ロードされるまでは、以前の構成が使用されます。
プラグイン構成を変更したのにそれが反映されていない場合は、
プラグインのログ・ファイルを調べて、問題が示されていないかどうか確認してください。
- ASDisableNagle
- プラグインとアプリケーション・サーバー間の、
接続の Nagle アルゴリズムを使用不可にしたいかどうかを指定します。
デフォルトでは、Nagle アルゴリズムは使用可能です。
値は、true または false です。
- IISDisableNagle
- Microsoft Internet Informations Services (IIS) 上の、Nagle アルゴリズムを使用不可にしたいかどうかを指定します。デフォルトでは、Nagle アルゴリズムは使用可能です。
値は、true または false です。
- AppServerPortPreference
- この属性は、アプリケーション・サーバーが sendRedirect 用の URI の作成に使用するポート番号を指定する際に使用されます。指定できる値は以下のとおりです。
- webserverPort は、
着信する HTTP 要求のホスト・ヘッダーにあるポート番号を使用する場合に指定します。
- hostHeader は、
Web サーバーが要求を受信したポート番号を使用する場合に指定します。
デフォルトは hostHeader です。
- ResponseChunkSize
- プラグインは、すべての応答データが読み取られるまで、応答本文を 64 KB のチャンクで
読み取り続けます。このアプローチは、要求の応答本文に大量のデータが含まれている場合にパフォーマンスに問題が生じる原因となります。
ResponseChunkSize 属性を使用すれば、応答本文の読み取り時に使用する最大チャンク・サイズを指定できるようになります。
例えば、Config ResponseChunkSize="N"> の場合、
N はキロバイト単位のチャンク・サイズです。
応答本文の内容の長さがわからない場合には、
N キロバイトのバッファー・サイズが割り振られ、本文がすべて読み取られるまで、N キロバイト・サイズのチャンク単位で
読み取られます。
内容の長さがわかっている場合には、内容の長さまたは N のうち、少ないほうのバッファー・サイズが使用され、応答本文を読み取ります。
デフォルト・チャンク・サイズは、64k です。
- AcceptAllContent
- 要求のヘッダーに Content-Length または Transfer-encoding ヘッダーが含まれている場合に、ユーザーが POST、PUT、GET、および HEAD 要求にコンテンツを組み込めるようにするかどうかを指定します。この属性には、次の値のいずれかを指定してください。
- true は、すべての要求に対してコンテンツが予想されており、読み取られる場合に指定します。
- false は、POST および PUT 要求に対してのみコンテンツが予想され、読み取られる場合に指定します。
false は、デフォルトです。
- ChunkedResponse
- クライアントに対する応答内に Transfer-Encoding : Chunked という応答ヘッダーがある場合に、
プラグインでその応答をチャンク化するかどうかを指定します。
この属性は
、IIS、IPlanet、および Lotus Domino の Web サーバーにのみ適用されます。IBM HTTP Server では、クライアントに対する応答のチャンク化は自動で処理されます。
この属性には、次の値のいずれかを指定してください。
- true は、
クライアントに対する応答内に Transfer-Encoding : Chunked という応答ヘッダーがある場合に、
プラグインでその応答をチャンク化する場合に指定します。
- false は、応答をチャンク化しない場合に指定します。
false がデフォルトです。
- IISPluginPriority
- IIS Web サーバーが WebSphere Web サーバー・プラグインをロードする際の優先順位を指定します。
この属性には、次の値のいずれかを指定してください。
デフォルト値は High です。
注:
- IIS Web サーバーは、始動時にこの値を使用します。したがって
、Web サーバーを再始動しないと、この変更は有効になりません。
- デフォルト値 High を指定すると、すべての要求は、
まず WebSphere Web サーバー・プラグインで処理されてから、その他のフィルター/拡張機能で処理されます。
優先順位 Medium または Low を使用すると問題が発生する場合は、
干渉するフィルター/拡張機能の順序を再調整するか、優先順位を変更してください。
- ログ (Log)
- ログは、プラグインがログ・メッセージを書き込む場合のロケーションとレベルを示します。
構成ファイル内でログが指定されていないと、場合によっては、
Web サーバーのエラー・ログにログ・メッセージが書き込まれます。
例えば、以下を指定できます。
<Log LogLevel="Error" Name="/log_directory/filename"/>
- 名前 (Name) (ログごとに 1 つだけの属性)
- プラグインがエラー・メッセージを書き込むログ・ファイルへの完全修飾パス。
注: プラグイン・ログ・ファイルで
指定する名前には、日時スタンプおよびプロセス ID は付加されなくなりました。つまり、
日付で区別される複数のログ・ファイルの代わりに、Web サーバー・プラグイン・ログ・ファイルが 1 つだけ
作成されます。この振る舞いは、バージョン 5.x の振る舞いとは異なります。
- LogLevel (ログごとにゼロまたは 1 つの属性)
- プラグインがログに書き込むログ・メッセージの詳細のレベル。
この属性には、次の値のいずれかを指定してください。
- Trace。要求プロセスのすべてのステップの詳細がログに記録されます。
- Stats。それぞれの要求に対して選択されたサーバー、および、要求の処理に関するその他のロード・バランシング情報がログに記録されます。
- Warn。異常な要求処理の結果出された、すべての警告およびエラー・メッセージがログに記録されます。
- Error。異常な要求処理の結果出された、エラー・メッセージのみがログに記録されます。
- Debug。要求の処理中に実行された重大なステップがすべてログに記録されます。
- Detail。要求および応答に関するすべての情報がログに記録されます。
Log エレメントに対して LogLevel が指定されていない場合、デフォルト値には「Error」が使用されます。
レベルを「トレース」に設定する場合は、注意してください。
このレベルでは多くのメッセージが記録されるため、
ファイル・システムが急速に満杯になる可能性があります。
「Trace」の設定は、パフォーマンスに悪い影響を与えるため、
正常に機能している環境では絶対に使用しないでください。
- Property Name="esiEnable" Value="true/false"
- Edge Side Include (ESI) プロセッサーを使用可能または使用不可にする場合に使用します。
ESI プロセッサーが使用不可になっている場合は、このファイル内のその他の ESI エレメントは無視されます。
Value は、true または false に設定できます。
デフォルトでは、
ESI プロセッサーは使用可能になっています (true に設定されています)。
- Property Name="esiMaxCacheSize" Value="interger"
- キャッシュの最大サイズを 1K バイト単位で指定する整数。
デフォルトの最大キャッシュ・サイズは 1024 K バイト (1 M バイト) です。
キャッシュが満杯の場合は、有効期限に最も近いエントリー内のキャッシュから順に除去されます。
- Property Name="ESIInvalidationMonitor" Value="true/false"
- ESI プロセッサーがアプリケーション・サーバーから無効化通知を受け取るかどうかを指示する際に使用します。
Value は、true または false に設定できます。
デフォルトでは、このプロパティーは false に設定されています。
WebSphere for z/OS HTTP Server のプラグインでは、このプロパティーは、
必ず false に設定してください。
- Property Name="FIPSEnable" Value="true/false"
- Application Server へのセキュアな (SSL) 接続を行うために、連邦情報処理標準 (FIPS) を使用可能にするかどうかを指示する際に使用します。
Application Server 上で FIPS を使用可能にする場合は、このプロパティーを true に設定する必要があります。
Value は、true または false に設定できます。
デフォルトでは、このプロパティーは false に設定されています。
- ServerCluster (Config ごとに 1 つ以上のエレメント)
- 一般に、同じタイプの要求を実行するように構成されているサーバーのグループ。
最も単純なケースでは、クラスターに含まれるサーバー定義は 1 つだけです。
複数のサーバーが定義されている場合は、プラグインが、
Round Robin または Random アルゴリズムを使用して、
定義されたサーバー全体のロード・バランスを取ります。デフォルトはラウンドロビンです。
以下は、ServerCluster エレメントの例です。
<ServerCluster CloneSeparatorChange="false"
LoadBalance="Round Robin" Name="Cluster1"
PostSizeLimit="10000000" RemoveSpecialHeaders="true"
RetryInterval="60">
<Server
CloneID="BA36BEC1EB243D8B000000E4000000030926301B"
ConnectTimeout="0" ExtendedHandshake="false"
LoadBalanceWeight="2" MaxConnections="0"
Name="SY1_ClusterMember1" WaitForContinue="false">
<Transport Hostname="BOSSXXXX.PLEX1.L2.IBM.COM" Port="9084" Protocol="http"/>
<Transport Hostname="BOSSXXXX.PLEX1.L2.IBM.COM" Port="0" Protocol="https">
<Property Name="Keyring" value="/WebSphere/V6R0M0/DeploymentManager/etc/
plugin-key.kdb"/>
<Property Name="Stashfile" value=""/WebSphere/V6R0M0/DeploymentManager/etc/
plugin-key.sth"/>
<Property Name="certLabel" Value="selfsigned"/>
</Transport>
</Server>
<Server CloneID="BA36BED017FDF40E000000E4000000030926301B"
ConnectTimeout="0" ExtendedHandshake="false"
LoadBalanceWeight="2" MaxConnections="0"
Name="SY1_ClusterMember2" WaitForContinue="false">
<Transport Hostname="BOSSXXXX.PLEX1.L2.IBM.COM" Port="9085" Protocol="http"/>
<Transport Hostname="BOSSXXXX.PLEX1.L2.IBM.COM" Port="0" Protocol="https">
<Property Name="Keyring" value="/WebSphere/V6R0M0/DeploymentManager/etc/
plugin-key.kdb"/
<Property Name="Stashfile" value="/WebSphere/V6R0M0/DeploymentManager/etc/
plugin-key.sth"/>
<Property Name="certLabel" Value="selfsigned"/>
</Transport>
</Server>
<PrimaryServers>
<Server Name="Server Name="SY1_ClusterMember1"/>
<Server Name="Server Name="SY1_ClusterMember2"/>
</PrimaryServers>
</ServerCluster>
注: HTTP Server Plug-in for z/OS を使用する場合、
ここに組み込まれている Property Name=keyring エレメントおよび Property Name=stashfile エレメントは、それらがそのプラグインの plugin-cfg.xml ファイルに組み込まれていれば無視されます。
HTTP Plug-in for z/OS は、ホスティングする HTTP Server の httpd.conf ファイルで
指定した SSL セットアップを使用するため、plugin-cfg.xml ファイルでこれらのエレメントを
探すことはありません。
- 名前 (Name) (ServerCluster ごとに 1 つだけの属性)
- このサーバー・グループで使用される論理名または管理名。
- LoadBalance (ServerCluster ごとにゼロまたは 1 つの属性)
- デフォルトのロード・バランシング・タイプは Round Robin です。
Round Robin インプリメンテーションの出発点はランダムです。
最初のサーバーはランダムに選出されます。それ以降のサーバーの選出には、Round Robin が使用されます。
このインプリメンテーションは、マルチプロセス・ベースの Web サーバーで、すべてのプロセスが
最初の要求を同じアプリケーション・サーバーに送信することによって始動しないようにします。
- RetryInterval (ServerCluster ごとにゼロまたは 1 つの属性)
- サーバーがマークされてからプラグインが接続を再試行するまでの、
時間の長さを指定する整数。
デフォルトは 60 秒です。
- RemoveSpecialHeaders (ServerCluster ごとにゼロまたは 1 つの属性)
- プラグインは、アプリケーション・サーバーに転送される前に、
要求に特殊なヘッダーを追加します。
これらのヘッダーには、
アプリケーションが使用するのに必要な要求に関する情報が保管されています。
デフォルトでは、プラグインは、着信要求からこれらのヘッダーを除去してから、
必要なヘッダーを追加することになっています。
値は、true または false です。この属性を false に設定すると、
ヘッダーを着信要求から除去しないことになり、機密漏れのおそれが生じます。
- CloneSeparatorChange (ServerCluster ごとにゼロまたは 1 つの属性)
- 一部のパーベイシブ・デバイスでは、セッション類縁性に関連しているクローン ID を分離するために使用されるコロン文字 (:) を処理することができません。サーバー・グループのこの属性は、プラグインに対してクローン分離文字として、プラス記号 (+) を使用することを指示します。
アプリケーション・サーバーでクローン ID を区切る際、プラス記号も使用するようにアプリケーション・サーバーの構成を変更してください。
値は、true または false です。
- PostSizeLimit (ServerCluster ごとにゼロまたは 1 つの属性)
- プラグインがアプリケーション・サーバーに要求を送信する場合に許容される要求の内容の最大バイト数。このサイズよりも大きい要求を受信した場合、プラグインは、この要求の処理に失敗します。
デフォルト値は -1 バイトです。これは、ポスト・サイズに制限がないことを示しています。
- PostBufferSize (ServerCluster ごとにゼロまたは 1 つの属性)
- HTTP 要求のコンテンツを読み取る際に使用する最大バッファー・サイズを
KB 単位で指定します。要求を最初に受信したアプリケーション・サーバーがその要求を処理できない場合、
このバッファーに含まれるデータは別のアプリケーション・サーバーに送られ、
そこで要求の処理が試みられます。
このオプションを指定すると、プラグインの可用性が
向上します。選択したアプリケーション・サーバーが応答しない場合、コンテンツのある未完了の要求は
再試行されるようになりました。値がゼロに設定されていると、
コンテンツのある要求はバッファーに入れられず、再試行されません。デフォルト値は 64 です。
- サーバー (Server) (ServerCluster ごとに 1 つ以上のエレメント)
-
WebSphere Application Server のインスタンスで、プラグイン構成のルーティング規則に
従ってルーティングされた要求を処理するように構成されます。
このサーバーは、
ローカル・マシンまたはリモート・マシンで稼働しているアプリケーション・サーバーに、
対応している必要があります。
- 名前 (Name) (サーバーごとに 1 つだけの属性)
- サーバーの管理名または論理名。
- CloneID (サーバーごとにゼロまたは 1 つの属性)
- 要求の HTTP Cookie ヘッダー (または URL の再書き込みを使用している場合は URL) に、
この固有の ID がある場合は、プラグインは、その要求をこの特定のサーバーに送ります (ただし、他のすべてのルーティング規則が満たされている場合です)。
サーバーで CloneID が指定されていない場合は、このサーバーでは、
セッションの類似性が使用可能になりません。
この属性は、セッションの類似性と共に使用します。この属性を設定すると、プラグインは、
着信する Cookie ヘッダーまたは URL を調べて、JSESSIONID を探します。JSESSIONID が
検出されると、プラグインは、1 つ以上のクローン ID を検索します。
クローン ID が検出され、この属性に対して指定された値と一致すると、
要求は、クラスター全体でロード・バランシングされるのではなく、このサーバーに送信されます。
セッションの類似性を使用していない場合は、
これらのクローン ID を構成から除去するのが最良の方法です。
これが設定されていると、プラグインに要求処理が追加されるためです。
クローン ID がプラグインにない場合は、セッションの類似性がオンではなく、
クラスター全体で要求のロード・バランシングが行われているものと想定されます。
- WaitForContinue (サーバーごとにゼロまたは 1 つの属性)
- 要求の内容をアプリケーション・サーバーに送信する前に、
HTTP 1.1 100 Continue サポートを使用するかどうかを指定します。
有効な属性値は true または false です。
デフォルト値は false です。プラグインは、要求の内容を送信するまでは、
アプリケーション・サーバーからの 100 Continue 応答を待機しません。
これは、応答の待機によりパフォーマンスが低下するためです。
キープアライブ・タイムアウトのためにアプリケーション・サーバーが接続をクローズした場合に障害が発生するのを避けるため、POST 要求の場合には、このプロパティーは無視されます。
この機能は、
プラグインがある種のプロキシー・ファイアウォールとともに動作するように構成する場合に、true に設定して使用可能にします。
- LoadBalanceWeight (サーバーごとにゼロまたは 1 つの属性)
- プラグインが Round Robin ロード・バランシングに重み付けしている場合に
このサーバーに関連する重みを指定します。サーバーの開始値は、
0 から 20 までの任意の整数です。ただし、
ゼロを指定できるのはサーバーがシャットダウンしている場合のみです。
この属性のアルゴリズムでは、
サーバー・クラスターのすべての重みがゼロになるまで、重みが減少されます。特定のサーバーに
指定された重みがゼロに達すると、クラスター内のすべてのサーバーの重みがゼロになるまで、
このサーバーには要求が送付されません。すべてのサーバーがゼロに達した後、
クラスターのすべてのサーバーの重みがリセットされ、このアルゴリズムが再度開始されます。
サーバーがシャットダウンした場合には、そのサーバーのウェイトをゼロにすることをお勧めします。そうすると、プラグインによってまだ実行中のサーバーのウェイトがリセットされ、正常なロード・バランシングが維持されます。
- ConnectTimeout (サーバーごとにゼロまたは 1 つの属性)
- Server エレメントの ConnectTimeout 属性を使用すると、プラグインで
アプリケーション・サーバーとの非ブロッキング接続を実行することができます。非ブロッキング接続は、プラグインが宛先と接続して、ポートが使用可能かどうかを判断することができない場合に役立ちます。
ConnectTimeout 値が指定されていない場合、プラグインはブロッキング接続を実行します。この場合、プラグインは、オペレーティング・システムがタイムアウトになり (プラットフォームによって異なるが最長 2 分)、プラグインがサーバーに unavailable とマークを付けることができるようになるまで何もしません。値を 0 にすると、プラグインはブロッキング接続を実行します。0 よりも大きい値は、正常に接続されるまでプラグインが待機する秒数を指定します。時間間隔後に接続されなかった場合、
プラグインは、サーバーに unavailable とマークを付けて、クラスターで定義されている他のサーバーの 1 つにフェイルオーバーします。
- ExtendedHandshake (サーバーごとにゼロまたは 1 つの属性)
- ExtendedHandshake 属性は、プロキシー・ファイアウォールがプラグインとアプリケーション・サーバーとの間にあるときに使用されます。このような場合、プラグインは予想通りにフェイルオーバーしていません。
プラグインは、connect() が失敗した場合に、サーバーにダウンとマークを付けます。
しかし、プロキシー・ファイアウォールがプラグインとアプリケーション・サーバーとの間にある場合には、
バックエンド・アプリケーション・サーバーがダウンしていても、connect() は成功します。
つまり、プラグインは他のアプリケーション・サーバーに正しくフェイルオーバーされないことになります。
プラグインは、アプリケーション・サーバーと複数のハンドシェークを行い、要求を送る前にアプリケーション・サーバーが開始されることを確認します。
これにより、アプリケーション・サーバーがダウンした場合には、プラグインをフェイルオーバーできるようになります。
値は、true または false です。
- MaxConnections (サーバーごとに 1 つのエレメント)
- MaxConnections 属性は、任意の時点に Web サーバー・プロセスを流れることができる、アプリケーション・サーバーへの保留中の接続の最大数を指定します。
例えば、以下のように想定します。
- アプリケーション・サーバーは、IBM HTTP Server を実行している 5 つのノードに面しています。
- それぞれのノードは 2 つのプロセスを開始します。
- MaxConnections 属性は 50 に設定されています。
この例では、アプリケーション・サーバーは、
最大 500 の接続を受ける可能性があります。 (ノード数 5 にプロセス数 2 を掛け、
その答えに MaxConnections 属性に指定した数 50 を掛けると、合計で 500 接続になります。)
この属性は、z/OS プラットフォームでは必要ありません。
WLM と連動して作動する z/OS のコントローラーは、新規の接続を動的に処理します。
デフォルトでは、MaxConnections は -1 に設定されています。
この属性がゼロまたは -1 に設定されている場合、そのアプリケーション・サーバーに対して保留されている接続の数に制限はありません。
- トランスポート (Transport) (サーバーごとに 1 つ以上のエレメント)
- 特定の WebSphere Application Server インスタンスに対する、
読み取りおよび書き込み要求のためのトランスポート。
トランスポートでは、
要求を送信するアプリケーション・サーバーの場所を判断するのに必要な情報が提供されます。
サーバーで、複数のトランスポートが同じプロトコルを使用するように定義されている場合は、
最初のトランスポートが使用されます。
サーバーが、非セキュア・トランスポートと SSL を使用するトランスポートを持つように、
構成することもできます。
この構成では、着信要求プロトコルの突き合わせが実行され、
要求をアプリケーション・サーバーに送信するのに適当なトランスポートが決定されます。
- Hostname (トランスポートごとに 1 つだけの属性)
- WebSphere Application Server インスタンスが実行されているマシンの、
ホスト名または IP アドレス。
- ポート (Port) (トランスポートごとに 1 つだけの属性)
- WebSphere Application Server インスタンスが listen しているポート。
- プロトコル (Protocol) (トランスポートごとに 1 つだけの属性)
- このトランスポート上で通信する場合に使用するプロトコル (HTTP または HTTPS)。
- プロパティー (Property) (トランスポートごとにゼロまたは 1 つ以上のエレメント)
- トランスポートの
プロトコルが HTTPS に設定されている場合は、このエレメントを使用して、
各種の初期化パラメーター (password、keyring、stashfile など) を提供します。
例えば、plugin_cfg.xml ファイルでこれらのエレメントが含まれている部分は、
次のようになっています。
<Transport Hostname="192.168.1.2" Port="9443" Protocol="HTTPS">
<Property Name="keyring" value="c:/WebSphere/AppServer/keys/keyring.kdb"/>
<Property Name="stashfile" value="c:/WebSphere/AppServer/keys/keyring.sth"/>
<Property Name="password" value="WebAS"/>
注: iKeyMan を使用して plugin-key.kdb を表示するデフォルトのパスワードは、WebAS です。
- 名前 (Name) (プロパティーごとに 1 つだけの属性)
- 定義するプロパティーの名前。サポートされている名前でトランスポートが認識するのは、
鍵リング (keyring)、stash ファイル (stashfile)、およびパスワード (password) です。
注:
WebSphere HTTP Plug-in for z/OS で指定できる名前は password だけであり、
keyring および stashfile は、指定しても無視されます。
- 値 (Value) (プロパティーごとに 1 つだけの属性)
- 定義するプロパティーの値。
- ServerIOTimeout
- サーバー・エレメントの ServerIOTimeout 属性は、プラグインが、
アプリケーション・サーバーへの要求を送信し、アプリケーション・サーバーからの応答を読み取る場合の
タイムアウト値 (秒) を設定できるようにします。ServerIOTimeout 属性に値が設定されていない場合、
プラグインはデフォルトでブロック入出力を使用して、TCP 接続がタイムアウトになるまで
アプリケーション・サーバーへの要求の書き込みやアプリケーション・サーバーからの応答の読み取りを行います。
例えば、次のように指定するとします。
<Server Name="server1" ServerIOTimeout=300>
この場合、アプリケーション・サーバーが要求への応答を停止すると、TCP 接続は、
プラグインが 300 秒 (5 分) 待機した後にタイムアウトになります。ServerIOTimeout 属性を
妥当な値に設定すると、プラグインの接続がタイムアウトになるまでの時間を短くして、
可能な場合に別のアプリケーション・サーバーに要求を転送できるように
なります。
この属性で値を選択すると、
アプリケーション・サーバーによる要求の処理に数分かかる場合が
あります。ServerIOTimeout 属性の値を低く設定しすぎると、
プラグインが偽のサーバー・エラー応答をクライアントに送信してしまうことがあります。
- ClusterAddress (ServerCluster ごとにゼロまたは 1 つのエレメント)
- ClusterAddress は Server エレメントと同様のエレメントで、同じ属性およびエレメントを指定することができます。ただし、ServerCluster 内には、これらのうち 1 つしか定義することができません。
プラグインとアプリケーション・サーバーの間に Load Balancer があるため、プラグインでロード・バランシングを実行しない場合には、ClusterAddress を使用してください。
重要: ClusterAddress タグを組み込む場合は、
そのタグに Name 属性を組み込む必要があります。プラグインはその Name 属性を使用して、
クラスター・アドレスを正しいホストおよびポートに
関連付けます。Name 属性を指定しない場合、プラグインはクラスター・アドレスに、
同じホストおよびポートを使用するサーバー用に指定されている名前を
割り当てます。
<ClusterAddress Name="MyClusterAddr">
<Transport Hostname="192.168.1.2" Port="9080" Protocol="HTTP"/>
<Transport Hostname="192.168.1.2" Port="9443" Protocol="HTTPS">
</ClusterAddress>
類縁性が確立されていない要求を受信した場合、プラグインは、
この要求をクラスター・アドレスに送付します (クラスター・アドレスが定義されている場合)。
類縁性が確立されている場合、プラグインは、クラスター・アドレスを完全にバイパスして
要求を直接クローンに送付します。サーバー・クラスターにクラスター・アドレスが
定義されていない場合、プラグインは、1 次 サーバー・リストにあるサーバー間の
ロード・バランスを取ります。
- PrimaryServers (サーバー・クラスターごとにゼロまたは 1 つのエレメント)
- プラグインがこのクラスターに対する要求を送付するサーバーのリストを
指定します。1 次サーバーのリストが指定されていない場合、プラグインは、
サーバー・クラスターに対して定義されているサーバーに要求を送付します。
- BackupServers (サーバー・クラスターごとにゼロまたは 1 つのエレメント)
- 1 次サーバー・リストに指定されているすべてのサーバーが使用できない場合に
要求を送信するサーバーのリストを指定します。プラグインは
バックアップ・サーバー間のロード・バランスは取りませんが、リスト内のサーバーがなくなるまで、
または要求が正常に送信されてアプリケーション・サーバーからの応答を受信するまで、
リストを順番に全探索します。
- VirtualHostGroup
- HTTP ホスト・ヘッダーで指定される仮想ホスト名のグループ。これによって、
同じようなタイプの要求を処理するために構成される仮想ホスト定義をグループ化することができます。
以下は、VirtualHostGroup エレメントと、関連するエレメントおよび属性の例です。
<VirtualHostGroup Name="Hosts">
<VirtualHost Name="www.x.com"/>
<VirtualHost Name="www.x.com:443"/>
<VirtualHost Name="*:8080"/>
<VirtualHost Name="www.x.com:*"/>
<VirtualHost Name="*:*"/>
</VirtualHostGroup>
- 名前 (Name) (VirtualHostGroup ごとに 1 つだけの属性)
- この仮想ホスト・グループで使用される論理名または管理名。
- VirtualHost (VirtualHostGroup ごとに 1 つ以上のエレメント)
-
着信要求を WebSphere Application Server が処理するかどうかを決定するのに使用される
仮想マシンまたは実際のマシンで使用する名前。
このエレメントは、HTTP ホスト・ヘッダーにあるホスト名を指定するのに使用します。
このヘッダーは、アプリケーション・サーバーが処理する必要のある要求で参照されることになっています。
着信要求が持っている特定のホスト名やポートを指定することも、
ホスト名またはポート、あるいはその両方に、アスタリスク (*) を指定することもできます。
- 名前 (Name) (VirtualHost ごとに 1 つだけの属性)
- この VirtualHost との突き合わせを正常に行うために、
HTTP ホスト・ヘッダーで指定される実際の名前。
この値は、ホスト名または IP アドレスとポートを組み合わせて、
それぞれをコロンで区切ったものです。
プラグインは、要求の経路を、
その要求のために着信する HTTP ホスト・ヘッダーとポートに基づくアプリケーション・サーバーに定めるように、
構成することができます。
Name 属性によって、この組み合わせの内容を指定することができます。
この属性にはワイルドカードが使用できます。ホスト名に対して *、
ポートに対して *、あるいはその両方に対して * のいずれかしか、
使用できません。両方に対して * を使用することは、
この規則にはどんな要求でも一致することを意味しています。
定義でポートが指定されていない場合は、デフォルトの HTTP ポート (80) が想定されます。
- UriGroup
- HTTP 要求行で指定される URI のグループ。 URI は、
同じアプリケーション・サーバーで処理しなければなりません。
経路は着信する URI とグループ内の URI を比較して、
アプリケーション・サーバーが要求を処理するかどうかを判断します。
以下は、UriGroup エレメントと、関連するエレメントおよび属性の例です。
<UriGroup Name="Uris">
<Uri Name="/servlet/snoop"/>
<Uri Name="/webapp/*"/>
<Uri Name="*.jsp"/>
</UriGroup>
- 名前 (Name) (UriGroup ごとに 1 つだけの属性)
- この URI グループの論理名または管理名。
- Uri (UriGroup ごとに 1 つ以上のエレメント)
-
WebSphere Application Server が提供するリソースへの仮想パス。
URI はそれぞれ、アプリケーション・サーバーが処理する必要のある着信 URL を指定します。
これらの定義では、ワイルドカードが使用できます。
- 名前 (Name) (Uri ごとに 1 つだけの属性)
- この URI との突き合わせを正常に行うために、
HTTP 要求行で指定される実際のストリング。 URI 定義内ではワイルドカードが使用できます。
*.jsp または /servlet/* のような、WebSphere Application Server が処理する規則を指定することもできます。
アプリケーションをアセンブルする際に「ファイル・サービスを可能にする」を指定すると、明示的なサーブレット・マッピングには関係なく、Web アプリケーションではワイルドカード URI のみが生成されます。
「クラス名ごとに
サーブレットを提供する」を指定すると、<Uri
Name="Web_application_URI/servlet/*"> を含む URI が生成されます。
- AffinityCookie (Uri ごとにゼロまたは 1 つの属性)
- インバウンド要求にセッション類縁性があるかどうかを判断する場合に、プラグインが使用する Cookie の名前。デフォルト値は JSESSIONID です。
セッションの類似性に関する追加情報については、
CloneID 属性の説明を参照してください。
- AffinityURLIdentifier (Uri ごとにゼロまたは 1 つの属性)
- インバウンド要求に、特定のクローンに対する類縁性が URL で指定されているかどうかを判断する場合に、プラグインが使用する識別子の名前。
デフォルト値は jsessionid です。
セッションの類似性に関する追加情報については、
CloneID 属性の説明を参照してください。
- 経路 (Route)
- 要求のルーティング規則。プラグインはこれによって、
着信要求を WebSphere Application Server で処理するかどうかを判断します。
経路定義は、プラグイン構成の中心的なエレメントです。これにより、
プラグインが、要求をその一定の特性に基づいて処理する方法が指定されます。
経路定義には、その他の主なエレメント (必須の ServerCluster と、
VirtualHostGroup または UriGroup、あるいはその両方) が含まれています。
経路の VirtualHostGroup と UriGroup で定義されている情報を使用して、プラグインは、
Web サーバーへの着信要求を、この経路で定義した ServerCluster に送信するかどうかを決定します。
以下は、このエレメントの例です。
<Route VirtualHostGroup="Hosts" UriGroup="Uris" ServerCluster="servers/>
- VirtualHostGroup (経路ごとにゼロまたは 1 つの属性)
- 経路の判別に使用される仮想ホストのグループ。
着信するホスト・ヘッダーとサーバー・ポートを突き合わせて、
この要求をアプリケーション・サーバーで処理するかどうかを判断します。
これは、経路定義から省略することもできます。
これがない場合は、要求はそれぞれ、
経路決定の仮想ホストの突き合わせ部分で突き合わせます。
- UriGroup (経路ごとにゼロまたは 1 つの属性)
- 経路の判別に使用する URI のグループ。
要求の着信 URI をこのグループの定義済み URI と突き合わせて、
この要求をアプリケーション・サーバーで処理するかどうかを判断します。
これは、経路定義から省略することもできます。
これがない場合は、各要求の突き合わせは、経路判別の URI の突き合わせ部分で行われます。
- ServerCluster (経路ごとに 1 つだけの属性)
- 経路に正常に一致する要求の送信先になるクラスター。
この要求の処理に使用されるクラスター。
URI と仮想ホストの突き合わせがこの経路で正常に行われたら、
このクラスター内で定義されているサーバーのいずれかに要求が送信されます。
- RequestMetrics
- このエレメントは、要求メトリックが使用可能かどうか、および要求メトリックが使用可能な場合に Internet protocol (IP) および Uniform Resource Identifiers
(URI) に基づいて要求をフィルターする方法を判別するために使用されます。
以下は、このエレメントの例です。
<RequestMetrics armEnabled="false" loggingEnabled="true"
rmEnabled="false" traceLevel="PERF_DEBUG">
- armEnabled (RequestMetrics にゼロまたは 1 つの属性)
- この属性は、ARM 4 エージェントがプラグイン内で使用可能かどうかを示します。
true に設定されている場合、ARM 4 エージェントが呼び出されます。
注:
SunOne (iPlanet) Web サーバーの場合は、ARM 4 サポートを使用可能にするには、以下のディレクティブが
obj.conf ファイルに含まれていなければなりません。
AddLog fn="as_term"
このディレクティブが含まれていない場合は、
arm_stop プロシージャーは呼び出されません。
- loggingEnabled (exactly
one attribute for RequestMetrics)
- この属性は、要求メトリック・ロギングがプラグイン内で使用可能かどうかを示します。
この属性が true に設定され、
traceLevel が NONE に設定されていない場合は、要求応答時間 (およびその他の要求情報) は
ログに記録されます。false に設定されている場合には、
要求は記録されません。loggingEnabled の値は、
システム・プロパティー com.ibm.websphere.pmi.reqmetrics.loggingEnabled で指定される値によって異なります。
このシステム・プロパティーが存在しない場合、
loggingEnable は true に設定されます。
- rmEnabled (RequestMetrics に必ず 1 つの属性)
- この属性は、要求メトリックがプラグイン内で使用可能かどうかを示します。
これを true に設定すると、プラグイン要求メトリックはフィルターを参照し、
プラグイン・ログ・ファイルに要求トレース・レコードを
記録します。このアクションが行われるのは、要求がフィルターを渡す場合です。
この属性を false に設定すると、
要求メトリック属性の残りの部分は
無視されます。
- traceLevel (RequestMetrics に必ず 1 つの属性)
- rmEnabled が true の場合には、この属性は、
ログに記録される情報量を示します。この属性を NONE に設定すると、
要求ロギングは実行されません。この属性を NONE に設定せず、
loggingEnabled を true に設定すると、
要求が実行されるときに要求応答時間 (およびその他の要求情報) がログに記録されます。
- フィルター (RequestMetrics ごとにゼロ、1 つ、または 2 つの属性)
- rmEnabled が true の場合、フィルターは、
どの要求がトレース対象となるのかを制御します。
- enable (フィルターごとに必ず 1 つの属性)
- enable が true の場合、フィルターのタイプがオンになり、
要求がフィルターをパスする必要があります。
- タイプ (フィルターごとに必ず 1 つの属性)
- SOURCE_IP (例えば、クライアント IP アドレス) フィルターと URI フィルターの 2 種類があります。SOURCE_IP フィルター・タイプの場合、要求は既知の IP アドレスに基づいてフィルターに掛けられます。アスタリスク (*) を使用すると、IP アドレスにマスクを指定できます。
アスタリスクを使用する場合は、例えば、127.0.0.*、127.0.*、127* のように、
常にマスクの最後の文字にする必要があります。
パフォーマンス上の理由から、パターンは、フィルター内にアスタリスクがあるか、ミスマッチになるか、あるいはフィルターが完全に一致することが分かるまで、文字を 1 つずつ突き合わせます。
URI フィルター・タイプの場合、要求は、受信 HTTP 要求の URI に基づいてフィルターに掛けられます。パターン・マッチングのルールは、
SOURCE_IP アドレス・フィルターのマッチングの場合と同じです。
URI フィルターとクライアント IP アドレス・フィルターの両方が使用可能な場合、要求メトリックは両方のフィルター・タイプと一致する必要があります。
どちらも使用不可な場合、すべての要求は一致しているとみなされます。
- filterValues (フィルターごとに 1 つ以上の属性)
- filterValues は、詳細なフィルター情報を示します。
- 値 (filterValue ごとに必ず 1 つの属性)
- 対応するフィルター・タイプにフィルター値を指定します。
クライアント IP アドレスまたは URI のいずれを指定することもできます。