最新リリースのCoherence*Webには、WebLogic Serverプラットフォームに対するデプロイメント・オプションが用意されているので、WebLogic Serverとの緊密な統合が可能です。この章で説明するインストール・オプションとコンフィギュレーション・オプションが該当するのは、WebLogic Server 9.2 MP1と10.3へのデプロイメントのみです。
Coherence*Webは、WebLogic Serverのメモリー内HTTP状態レプリケーション・サービスを置き換えるものではありません。ただし、アプリケーションのHTTPセッション状態オブジェクトが大きい場合、HTTPセッション・オブジェクト・データの保存に起因するメモリーの制約がある場合、またはHTTPセッション記憶域による負荷を既存のCoherenceクラスタに移す必要がある場合は、Coherence*Webを検討する必要があります。
この新しいデプロイメント・オプションによる最も大きな変更は、Coherence*Web SPIモジュールを使用してデプロイしたアプリケーションをCoherence*Web WebInstallerで設定する必要がなくなることです。
WebLogic ServerのCoherence*Web SPIは、Coherenceディストリビューションのcoherence\lib
ディレクトリにあるcoherence-web-spi.war
ファイルで構成されます。同じディレクトリにはcoherence.jar
ファイルもあり、これはWebLogic ServerでCoherence*Webの機能を有効にする場合に必要です。
WebLogic Server向けのCoherence*Web SPIでは、HTTPセッションのJVMアフィニティを適用するロード・バランサを、WebLogic Server層の前で実行している必要があります。WebLogic Serverには、JVMセッションの持続性を維持するための様々なプロキシ・プラグインが付属しています。WebLogic Serverプロキシ・プラグインの構成に関するドキュメントは次のURLから入手できます。
http://download.oracle.com/docs/cd/E12840_01/wls/docs103/cluster/load_balancing.html#wp1026940
WebLogic Server向けCoherence*Web SPIとCoherence*Webとでは、デフォルトのキャッシュのコンフィギュレーションに次の2つの違いがあります。
WebLogic Server向けCoherence*Web SPIは、ローカル記憶域を無効にした状態で構成します。これは、WebLogic Serverを実行しているJVMとは別に、Coherenceキャッシュ・サーバーを専用のJVMで実行する必要があることを意味します。
キャッシュ・サーバーがリクエストに応答するまでのタイムアウトは30秒です。キャッシュ・サーバーへのリクエストに対して30秒以内に応答が返らない場合は、com.tangosol.net.RequestTimeoutException
例外がスローされます。
Coherence*Web SPIで使用するCoherenceキャッシュは、session-cache-config.xml
ファイルによって構成されます。このファイルは、WEB-INF\classes
ディレクトリにあるcoherence-web-spi.war
ファイルの中に記述されています。すべてのキャッシュのコンフィギュレーションの変更は、session-cache-config.xml
に記述した後、coherence-web-spi.war
に再パッケージ化する必要があります。
Coherence*Webディストリビューションには、WebLogic ServerのHTTPセッション管理インタフェースへのネイティブ・プラグインを含む、デプロイ可能な共有ライブラリが付属しています。Webアプリケーションに対してWebLogic Server上でCoherence*Webを有効にするには、次の手順を実行します。
公表されているWebLogic Serverのパッチを、Coherence*Webを使用するWebアプリケーションをホストしているすべてのWebLogic Serverのインスタンスに適用します。表2-1 は、WebLogic Serverの各バージョンに対応するパッチとCoherenceリリース・レベルを示しています。
表2-1 WebLogic Serverと必要なCoherenceパッチ・リリース・レベル
WebLogic Server 9.2 MP1 | WebLogic Server 10.3 | |
---|---|---|
WebLogic Smart Update |
||
最小限のCoherenceリリース・レベル/MetaLinkパッチID |
3.4.2 Patch2 - パッチID: 8429415 |
3.4.2 Patch6 - パッチID: 11399293 |
パッチはMetaLinkのWebサイト、またはWebLogic ServerのSmart Updateユーティリティを使用してダウンロードできます。
MetaLinkからダウンロードするには:
次のMetalinkのWebサイトにアクセスし、パッチを探します。
「パッチ」タブを選択し、「簡易検索」リンクをクリックします。表示された画面で、「パッチ番号」または「パッチ名」に適切な値(11399293
など)を入れ、検索します。
表示された検索結果からパッチのzipファイルをダウンロードします。
パッチのzipファイルに含まれるREADME.txt
を開き、Coherenceパッチの適用手順を確認します。
Smart Updateを使用してダウンロードするには:
Smart Updateを使用してWebLogic Serverのパッチをインストールするには、次のURLにある手順を確認してください。
http://download.oracle.com/docs/cd/E11035_01/smartUpdate31/guide/install.html#wp1091614
本番環境では、次のURLに示す手順でSmart Updateの本番インストールの確認をお薦めします。
http://download.oracle.com/docs/cd/E12840_01/common/smartupdate/guide/remote.html#wp1071859
「スタート」→「すべてのプログラム」→「Oracle WebLogic」→「Smart Update」を選択し、ログイン・ダイアログ・ボックスを開きます。各自のサポートIDとパスワードを使用してログインします。
お使いのWebLogic Serverのバージョンに対応するパッチをダウンロードし、適用します(WLS 10.3の場合は6W2W
、WLS 9.2 MP1の場合はAJQB
)。WebLogic Serverを再起動します。図2-2は、Smart Updateのブラウザで6W2W
パッチを選択する方法を示しています。
(オプション)Coherence*Webのキャッシュ・トポロジをカスタマイズするには、session-cache-config.xml
ファイルを変更します。
このコンフィギュレーション・ファイルは、coherence-web-spi.war
ファイルの/WEB-INF/classes
ディレクトリにあります。このファイルは、変更すると、coherence-web-spi.war
内で更新されます。
session-cache-config.xml
ファイルのデフォルト・コンフィギュレーションの説明については、付録B「セッション・キャッシュ・コンフィギュレーション・ファイル」を参照してください。
実行しているWebLogic Serverのいずれかにある独立したJVMでキャッシュ・サーバー層を起動します。
詳細は、「キャッシュ・サーバーの構成と起動」を参照してください。
デプロイメント要件に基づいて適切なパッケージ化を決定し、そのパッケージ化手順に従います。
詳細は、「アプリケーションのパッケージ化とクラスタ・ノードの構成」を参照してください。
(オプション)Coherence*Webを使用するWebアプリケーションで高度なコンフィギュレーションが必要な場合は、WARデプロイメントのweb.xml
ファイルとweblogic.xml
ファイルを変更します。
WebLogic Serverで実行するWebアプリケーション向けに構成可能なCoherence Webパラメータについては、「Coherence*Web用のWebアプリケーションの構成」で説明します。Coherence*Webのパラメータについては、付録A「Coherence*Webコンフィギュレーション・パラメータ」に総合的な説明があります。
注意: WebLogic Portal環境でCoherence*Webをデプロイする場合のインストール手順は、第5章「WebLogic PortalへのCoherence*Webのインストール」を参照してください。 |
キャッシュ・サーバーJVMは、キャッシュしたすべてのデータ(この場合はHttpSession
状態)の保存と管理専用のCoherence JVMです。キャッシュ・サーバーJVMを1つ以上起動しておかないと、WLS/WLP JVMを開始できません。
キャッシュ・サーバーJVMを起動するためのスクリプトを作成します。Coherence*Webで使用する記憶域対応キャッシュ・サーバーを起動するスクリプトの簡単な例を次に示します。この例では、Sun JVMの使用を前提としています。詳細は、『Oracle Coherence開発者ガイド』の「JVMのチューニング」を参照してください。次のコマンドは1行に入力する必要がありますが、ここでは読みやすくするために改行しています。
java -server -Xms512m -Xmx512m -cp <Coherence installation dir
>/lib/coherence.jar:<Coherence installation dir
>/lib/coherence-web-spi.war -Dtangosol.coherence.management.remote=true -Dtangosol.coherence.cacheconfig=WEB-INF/classes/session-cache-config.xml -Dtangosol.coherence.session.localstorage=true com.tangosol.net.DefaultCacheServer
前述の手順で説明したスクリプトを使用して、キャッシュ・サーバーJVMを1つ以上起動します。
Coherenceクラスタ・ノードにはクラス・ローダーのスコープが設定されています。したがって、アプリケーションをパッケージ化する前に、Coherence*Webデプロイメントにある一意なCoherenceクラスタ・ノードの数を構成する必要があります。次の各項で、パッケージ化オプションとコンフィギュレーション・オプションについて説明します。
各オプションの詳細は、「クラスタ・ノード分離」を参照してください。
Coherenceディストリビューションの/lib
ディレクトリにあるcoherence.jar
ファイルとcoherence-web-spi.war
ファイルを検索します。
注意: アプリケーション・サーバー・スコープ設定クラスタ・ノードによるコンフィギュレーションは、慎重に検討する必要があります。アプリケーション間の相互作用が未知または予測不能な環境では絶対に使用しないでください。このような環境の例として、規則や命名基準の調整や実施が不十分な状態で互いに無関係に作成したアプリケーションを、複数のアプリケーション・チームでデプロイしている状況が考えられます。このようなコンフィギュレーションでは、すべてのアプリケーションが同じクラスタに属することから、キャッシュやサービスなどの他のコンフィギュレーション設定と名前空間どうしで競合が発生する可能性がきわめて高く、予期しない結果を生じる恐れがあります。 このような理由から、EARスコープ設定クラスタ・ノードによるコンフィギュレーションおよびWARスコープ設定クラスタ・ノードによるコンフィギュレーションの使用を強くお薦めします。どのデプロイメント・トポロジを選択したらよいか不明な場合や、この警告に当てはまるデプロイメントを実行する場合は、アプリケーション・サーバー・スコープ設定クラスタ・ノードによるコンフィギュレーションは選択しないでください。 |
coherence.jar
を含むようにWebLogic Serverのシステム・クラスパスを編集するか、JARを$
DOMAIN_HOME
/lib
ディレクトリにコピーします。
WebアプリケーションでCoherence*Webを有効にします。
Coherence*Webを使用する予定のWebLogic Serverにデプロイした各WARファイルのweblogic.xml
に、例2-1に示すライブラリ参照行を追加します。
Coherence*Webを有効にします。
例2-2に示す行をweblogic.xml
ファイルに追加して、EARのWebアプリケーションごとに共有ライブラリ参照を作成します。
Coherence*Webを有効にします。
WebアプリケーションのWEB-INF
ディレクトリにあるweblogic.xml
ファイルに例2-3に示す行を追加して、共有ライブラリ参照を作成します。
Coherence*WebでHTTPセッションのライフサイクルを管理しているので、weblogic.xml
またはweblogic-application.xml
のどちらに記述した<session-descriptor>
要素でも、そのデータはほとんどが無視されます。
Coherence*Web SPIは、デフォルトでほとんどのWebアプリケーションに適したコンフィギュレーションになっています。コンフィギュレーションの変更または過去の設定のオーバーライドが必要な場合は、付録A「Coherence*Webコンフィギュレーション・パラメータ」に示す任意のCoherence*Webパラメータを適用できます。これらのパラメータを適用するには、web.xml
ファイルの<context-param>
要素を使用します。
表2-2は、WebLogic固有のデフォルト値を持つCoherence*Webパラメータのみを示しています。すべてのCoherence*Webパラメータの詳細は、付録A「Coherence*Webコンフィギュレーション・パラメータ」を参照してください。
表2-2 web.xmlで構成可能なパラメータ
パラメータ | WebLogic固有のデフォルト値 |
---|---|
値を指定しない場合は、デフォルトで |
|
値を指定しない場合は、デフォルトで |
|
値を指定しない場合は、デフォルトで |
|
値を指定しない場合は、デフォルトで |
|
値を指定しない場合は、デフォルトで |
|
値を指定しない場合は、デフォルトで |
|
値を指定しない場合は、デフォルトで |
表2-3は、weblogic.xml
ファイルまたはweblogic-application.xml
ファイルの<session-descriptor>
要素を使用して構成可能な、生成済のHTTPセッションのCookieパラメータを示しています。
表2-3 HTTPセッションのCookieパラメータ
パラメータ名 | デフォルト値 | 説明 |
---|---|---|
null |
Cookieファイルにあるセッション追跡Cookieを特定するコメントを指定します。 |
|
null |
Cookieを有効にするドメインを指定します。たとえば、 このドメイン名では2つ以上の要素を指定する必要があります。 値を設定しない場合は、Cookieを発行したサーバーにデフォルトで設定されます。 詳細は、Sun社のサーブレット仕様で |
|
true |
セッションCookieの使用がデフォルトで有効になる、推奨の設定ですが、このプロパティをfalseに設定してCookieを無効にすることもできます。テスト時はこのオプションを無効にしてもかまいません。 |
|
-1 |
セッションCookieの存続期間(秒)を設定します。この時間が経過したクライアントではセッションCookieが期限切れになります。 デフォルト値は-1(無制限)です。 Cookieの詳細は、「セッションとセッション持続性の使用」を参照してください。 |
|
null |
セッション追跡Cookieのパスを定義します。 値を指定しない場合は、デフォルトで |
|
false |
HTTPS接続経由でのみCookieを返すようにブラウザに指示します。これによって、Cookie IDのセキュリティを保護できます。この設定は、HTTPSを使用するWebサイトでのみ使用してください。この機能が有効な場合は、HTTP経由のセッションCookieが機能しません。 この機能を使用する場合は、 |
|
52 |
セッションIDのサイズを設定します。 最小値は8バイト、最大値は WAPアプリケーションを作成している場合、WAPプロトコルではCookieがサポートされないので、URLリライティングを使用する必要があります。また、WAPデバイスの中にはURL長を128文字(属性を含む)に制限しているものがあり、その場合はURLリライティングを使用して送信できるデータ量に制限があります。属性に使用できる領域を増やすには、この属性を使用して、WebLogic Serverでランダムに生成されるセッションIDのサイズを制限します。
|
WebLogic SPIモジュールでは、表2-4に示すCoherence*Webコンフィギュレーション・パラメータをCoherence*Webから制御できないので、この表に従って指定する必要があります。
表2-4 サポートされていないWebLogic Server SPI用のCoherence*Webコンフィギュレーション・パラメータ
パラメータ | 使用できる代替コンフィギュレーションの設定 |
---|---|
サポートされていません。 |
|
サポートされていません。 |
|
サポートされていません。 |
|
サポートされていません。 |
|
この値は、 |
|
この値は、 |
|
この値は、 |
|
この値は、 |
|
サポートされていません。 |
|
サポートされていません。 |
|
サポートされていません。 |
|
サポートされていません。 |
|
この値は、 |
WebLogic Serverは、デフォルトで基本的なシングル・サイン・オン(SSO)機能を提供します。Coherence*WebでSAML SSO機能を使用するには、saml2.war
Webアプリケーションの内容を変更する必要があります。
WebLogic Serverのインストール環境にある既存のsaml2.war
のバックアップを作成します。
saml2.war
を一時ディレクトリに解凍します。
saml2.war
は、$
WL_SERVER_HOME
/server/lib
ディレクトリにあります。
WEB-INF
ディレクトリの下にlib
ディレクトリとclasses
ディレクトリを作成します。
coherence-web-spi.war
を解凍してcoherence-web.jar
とcoherence-web-spi.jar
を取得します。この2つのjarファイルを/WEB-INF/lib
ディレクトリにコピーします。
解凍したcoherence-web-spi.war
の/WEB-INF/classes
ディレクトリにあるsession-cache-config.xml
ファイルを/WEB-INF/classes
ディレクトリにコピーします。
アプリケーション・サーバー、EAR、またはWARのうち、クラスタ・ノードに対して選択したスコープ設定に基づいて、適切な場所にcoherence.jar
を配置します。
例2-4に示すコードを/WEB-INF/web.xml
ファイルに追加します。
次の例のようなjar
コマンドを使用してsaml2.war
を再アセンブルします。
jar cvf saml2.war $tempdir
WebLogic Serverのインストール環境にある既存のsaml2.war
のバックアップを作成します。
WebLogicインストール環境にあるsaml2.war
を、変更したsaml2.war
ファイルに置き換えます。
Coherence*Webのデフォルト設定では、クライアントごとにすべてのWebアプリケーションについて1つのHTTPセッションが作成され、そのセッション属性にはWebアプリケーションごとのスコープが設定されます。これは、あるWebアプリケーションでセッションが無効になった場合は、それと同じセッションがCoherence*Webを使用しているWebLogic ServerのすべてのWebアプリケーションで無効になることを意味します。
この機能では、セッションCookieのパスを「/
」に設定して、同じセッションCookieをすべてのWebアプリケーションで使用可能にする必要があります。この動作を望まない場合に考えられる対応策として、例2-5に示すエントリを各Webアプリケーションのweblogic.xml
ファイルに追加して、セッションCookieのスコープを狭くする方法があります。
例2-5 Webアプリケーションごとに一意なセッションの設定
<weblogic-web-app> ... <session-descriptor><cookie-path>
[path of web-app context, for example "/mainApp/subApp"]
</cookie-path>
</session-descriptor>
... </weblogic-web-app>
これによって、Webアプリケーションごとの一意なセッションを作成できます。また、デプロイ済のEARのコンテキスト・ルートをセッションCookieのパスとして設定することで、そのEARファイルにあるすべてのWebアプリケーションをセッションのスコープとして設定することもできます。
「/
」をコンテキスト・パスとしてEARアプリケーションまたはWebアプリケーションをデプロイした場合、またはWebLogic SSOを必要とする場合、この対策は使用できません。WebLogic SSOでは、セッションCookieのパスを「/
」に設定する必要があります。