ヘッダーをスキップ
Oracle Coherence Oracle Coherence*Webユーザーズ・ガイド
リリース3.5
B56040-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

2 WebLogic Server 9.2 MP1および10.3へのCoherence*Webのインストール

最新リリースのCoherence*Webには、WebLogic Serverプラットフォームに対するデプロイメント・オプションが用意されているので、WebLogic Serverとの緊密な統合が可能です。この章で説明するインストール・オプションとコンフィギュレーション・オプションが該当するのは、WebLogic Server 9.2 MP1と10.3へのデプロイメントのみです。

2.1 Coherence*Web SPIの概要

Coherence*Webは、WebLogic Serverのメモリー内HTTP状態レプリケーション・サービスを置き換えるものではありません。ただし、アプリケーションのHTTPセッション状態オブジェクトが大きい場合、HTTPセッション・オブジェクト・データの保存に起因するメモリーの制約がある場合、またはHTTPセッション記憶域による負荷を既存のCoherenceクラスタに移す必要がある場合は、Coherence*Webを検討する必要があります。

この新しいデプロイメント・オプションによる最も大きな変更は、Coherence*Web SPIモジュールを使用してデプロイしたアプリケーションをCoherence*Web WebInstallerで設定する必要がなくなることです。

2.1.1 Coherence*Web SPIの場所

WebLogic ServerのCoherence*Web SPIは、Coherenceディストリビューションのcoherence\libディレクトリにあるcoherence-web-spi.warファイルで構成されます。同じディレクトリにはcoherence.jarファイルもあり、これはWebLogic ServerでCoherence*Webの機能を有効にする場合に必要です。

2.1.2 Coherence*Web SPIを使用するための要件

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

2.1.3 Coherence*Web SPIのWebLogic Server向けコンフィギュレーション

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に再パッケージ化する必要があります。

2.2 コンフィギュレーションとデプロイメントの概要

Coherence*Webディストリビューションには、WebLogic ServerのHTTPセッション管理インタフェースへのネイティブ・プラグインを含む、デプロイ可能な共有ライブラリが付属しています。Webアプリケーションに対してWebLogic Server上でCoherence*Webを有効にするには、次の手順を実行します。

  1. 公表されている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

    パッチID: AJQB

    パッチID: 6W2W

    最小限のCoherenceリリース・レベル/MetaLinkパッチID

    3.4.2 Patch2 - パッチID: 8429415

    3.4.2 Patch6 - パッチID: 11399293


    パッチはMetaLinkのWebサイト、またはWebLogic ServerのSmart Updateユーティリティを使用してダウンロードできます。

    MetaLinkからダウンロードするには: 

    1. 次のMetalinkのWebサイトにアクセスし、パッチを探します。

      http://metalink.oracle.com/

    2. パッチ」タブを選択し、「簡易検索」リンクをクリックします。表示された画面で、「パッチ番号」または「パッチ名」に適切な値(11399293など)を入れ、検索します。

    3. 表示された検索結果からパッチのzipファイルをダウンロードします。

    4. パッチのzipファイルに含まれるREADME.txtを開き、Coherenceパッチの適用手順を確認します。

    Smart Updateを使用してダウンロードするには: 

    1. 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

    2. スタート」→「すべてのプログラム」→「Oracle WebLogic」→「Smart Update」を選択し、ログイン・ダイアログ・ボックスを開きます。各自のサポートIDとパスワードを使用してログインします。

      図2-1 WebLogic Smart Updateにログインするためのダイアログ・ボックス

      WebLogic Smart Updateにログインするためのダイアログ・ボックス
    3. お使いのWebLogic Serverのバージョンに対応するパッチをダウンロードし、適用します(WLS 10.3の場合は6W2W、WLS 9.2 MP1の場合はAJQB)。WebLogic Serverを再起動します。図2-2は、Smart Updateのブラウザで6W2Wパッチを選択する方法を示しています。

      図2-2 WebLogic Smart Updateのツリー形式ブラウザ

      WebLogic Smart Updateのツリー形式ブラウザ
  2. (オプション)Coherence*Webのキャッシュ・トポロジをカスタマイズするには、session-cache-config.xmlファイルを変更します。

    このコンフィギュレーション・ファイルは、coherence-web-spi.warファイルの/WEB-INF/classesディレクトリにあります。このファイルは、変更すると、coherence-web-spi.war内で更新されます。

    session-cache-config.xmlファイルのデフォルト・コンフィギュレーションの説明については、付録B「セッション・キャッシュ・コンフィギュレーション・ファイル」を参照してください。

  3. 実行しているWebLogic Serverのいずれかにある独立したJVMでキャッシュ・サーバー層を起動します。

    詳細は、「キャッシュ・サーバーの構成と起動」を参照してください。

  4. デプロイメント要件に基づいて適切なパッケージ化を決定し、そのパッケージ化手順に従います。

    詳細は、「アプリケーションのパッケージ化とクラスタ・ノードの構成」を参照してください。

  5. (オプション)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のインストール」を参照してください。

2.2.1 キャッシュ・サーバーの構成と起動

キャッシュ・サーバーJVMは、キャッシュしたすべてのデータ(この場合はHttpSession状態)の保存と管理専用のCoherence JVMです。キャッシュ・サーバーJVMを1つ以上起動しておかないと、WLS/WLP JVMを開始できません。

  1. キャッシュ・サーバー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
    
  2. 前述の手順で説明したスクリプトを使用して、キャッシュ・サーバーJVMを1つ以上起動します。

2.2.2 アプリケーションのパッケージ化とクラスタ・ノードの構成

Coherenceクラスタ・ノードにはクラス・ローダーのスコープが設定されています。したがって、アプリケーションをパッケージ化する前に、Coherence*Webデプロイメントにある一意なCoherenceクラスタ・ノードの数を構成する必要があります。次の各項で、パッケージ化オプションとコンフィギュレーション・オプションについて説明します。

各オプションの詳細は、「クラスタ・ノード分離」を参照してください。

Coherenceディストリビューションの/libディレクトリにあるcoherence.jarファイルとcoherence-web-spi.warファイルを検索します。


注意:

アプリケーション・サーバー・スコープ設定クラスタ・ノードによるコンフィギュレーションは、慎重に検討する必要があります。アプリケーション間の相互作用が未知または予測不能な環境では絶対に使用しないでください

このような環境の例として、規則や命名基準の調整や実施が不十分な状態で互いに無関係に作成したアプリケーションを、複数のアプリケーション・チームでデプロイしている状況が考えられます。このようなコンフィギュレーションでは、すべてのアプリケーションが同じクラスタに属することから、キャッシュやサービスなどの他のコンフィギュレーション設定と名前空間どうしで競合が発生する可能性がきわめて高く、予期しない結果を生じる恐れがあります。

このような理由から、EARスコープ設定クラスタ・ノードによるコンフィギュレーションおよびWARスコープ設定クラスタ・ノードによるコンフィギュレーションの使用を強くお薦めします。どのデプロイメント・トポロジを選択したらよいか不明な場合や、この警告に当てはまるデプロイメントを実行する場合は、アプリケーション・サーバー・スコープ設定クラスタ・ノードによるコンフィギュレーションは選択しないでください。


2.2.2.1 アプリケーション・サーバー・スコープ設定クラスタ・ノードのパッケージ化と構成

  1. WebLogic Serverごとにcoherence-web-spi.warを共有ライブラリとしてデプロイします。

  2. coherence.jarを含むようにWebLogic Serverのシステム・クラスパスを編集するか、JARを$DOMAIN_HOME/libディレクトリにコピーします。

  3. WebアプリケーションでCoherence*Webを有効にします。

    Coherence*Webを使用する予定のWebLogic Serverにデプロイした各WARファイルのweblogic.xmlに、例2-1に示すライブラリ参照行を追加します。

例2-1 各WARファイルのライブラリ参照

<weblogic-web-app>
     ...
      <library-ref>
           <library-name>coherence-web-spi</library-name>
          <specification-version>1.0.0.0</specification-version>
          <implementation-version>1.0.0.0</implementation-version>
          <exact-match>false</exact-match>
     </library-ref>
     ...
</weblogic-web-app>

2.2.2.2 EARスコープ設定クラスタ・ノードのパッケージ化と構成

  1. WebLogic Serverごとにcoherence-web-spi.warを共有ライブラリとしてデプロイします。

  2. EARのAPP-INF/libディレクトリにcoherence.jarを配置します。

  3. Coherence*Webを有効にします。

    例2-2に示す行をweblogic.xmlファイルに追加して、EARのWebアプリケーションごとに共有ライブラリ参照を作成します。

    例2-2 EARの各Webアプリケーションのライブラリ参照

    <weblogic-web-app>
         ...
          <library-ref>
               <library-name>coherence-web-spi</library-name>
              <specification-version>1.0.0.0</specification-version>
              <implementation-version>1.0.0.0</implementation-version>
              <exact-match>false</exact-match>
         </library-ref>
         ...
    </weblogic-web-app>
    

2.2.2.3 WARスコープ設定クラスタ・ノードのパッケージ化と構成

  1. WebLogic Serverごとにcoherence-web-spi.warを共有ライブラリとしてデプロイします。

  2. WARのWEB-INF/libディレクトリにcoherence.jarを配置します。

  3. Coherence*Webを有効にします。

    WebアプリケーションのWEB-INFディレクトリにあるweblogic.xmlファイルに例2-3に示す行を追加して、共有ライブラリ参照を作成します。

例2-3 Webアプリケーションのライブラリ参照

<weblogic-web-app>
     ...
      <library-ref>
           <library-name>coherence-web-spi</library-name>
          <specification-version>1.0.0.0</specification-version>
          <implementation-version>1.0.0.0</implementation-version>
          <exact-match>false</exact-match>
     </library-ref>
     ...
<weblogic-web-app>

2.2.3 Coherence*Web用のWebアプリケーションの構成

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固有のデフォルト値

coherence-sessioncollection-class

値を指定しない場合は、デフォルトでcom.tangosol.coherence.servlet.SplitHttpSessionCollectionに設定されます。

coherence-reaperdaemon-assume-locality

値を指定しない場合は、デフォルトでfalseに設定されます。

coherence-session-member-locking

値を指定しない場合は、デフォルトでtrueに設定されます。

coherence-session-app-locking

値を指定しない場合は、デフォルトでtrueに設定されます。

coherence-sticky-sessions

値を指定しない場合は、デフォルトでtrueに設定されます。

coherence-scopecontroller-class

値を指定しない場合は、デフォルトでcom.tangosol.coherence.servlet.AbstractHttpSessionCollection$ApplicationScopeControllerに設定されます。

coherence-preserve-attributes

値を指定しない場合は、デフォルトでtrueに設定されます。


表2-3は、weblogic.xmlファイルまたはweblogic-application.xmlファイルの<session-descriptor>要素を使用して構成可能な、生成済のHTTPセッションのCookieパラメータを示しています。

表2-3 HTTPセッションのCookieパラメータ

パラメータ名 デフォルト値 説明

cookie-comment

null

Cookieファイルにあるセッション追跡Cookieを特定するコメントを指定します。

cookie-domain

null

Cookieを有効にするドメインを指定します。たとえば、cookie-domain.mydomain.comに設定した場合は、*.mydomain.comドメインにあるすべてのサーバーにCookieが返されます。

このドメイン名では2つ以上の要素を指定する必要があります。*.com*.netと指定した名前は無効です。

値を設定しない場合は、Cookieを発行したサーバーにデフォルトで設定されます。

詳細は、Sun社のサーブレット仕様でCookie.setDomain()を参照してください。

cookies-enabled

true

セッションCookieの使用がデフォルトで有効になる、推奨の設定ですが、このプロパティをfalseに設定してCookieを無効にすることもできます。テスト時はこのオプションを無効にしてもかまいません。

cookie-max-age-secs

-1

セッションCookieの存続期間(秒)を設定します。この時間が経過したクライアントではセッションCookieが期限切れになります。

デフォルト値は-1(無制限)です。

Cookieの詳細は、「セッションとセッション持続性の使用」を参照してください。

cookie-path

null

セッション追跡Cookieのパスを定義します。

値を指定しない場合は、デフォルトで/(スラッシュ)に設定され、WebLogic Serverで指定するすべてのURLにブラウザからCookieが送信されます。このパスによる対応範囲を狭くすることで、ブラウザからのCookie送信先となるリクエストURLを制限できます。

cookie-secure

false

HTTPS接続経由でのみCookieを返すようにブラウザに指示します。これによって、Cookie IDのセキュリティを保護できます。この設定は、HTTPSを使用するWebサイトでのみ使用してください。この機能が有効な場合は、HTTP経由のセッションCookieが機能しません。

この機能を使用する場合は、url-rewriting-enabled要素を無効にする必要があります。

id-length

52

セッションIDのサイズを設定します。

最小値は8バイト、最大値はInteger.MAX_VALUEです。

WAPアプリケーションを作成している場合、WAPプロトコルではCookieがサポートされないので、URLリライティングを使用する必要があります。また、WAPデバイスの中にはURL長を128文字(属性を含む)に制限しているものがあり、その場合はURLリライティングを使用して送信できるデータ量に制限があります。属性に使用できる領域を増やすには、この属性を使用して、WebLogic Serverでランダムに生成されるセッションIDのサイズを制限します。

WAPEnabled属性を設定することで、長さを52文字固定に制限し、特殊文字の使用を禁止することもできます。詳細は、WebLogic Server用のWebアプリケーションの開発時に「URLリライティングとワイヤレス・アクセス・プロトコル」を参照してください。


WebLogic SPIモジュールでは、表2-4に示すCoherence*Webコンフィギュレーション・パラメータをCoherence*Webから制御できないので、この表に従って指定する必要があります。

表2-4 サポートされていないWebLogic Server SPI用のCoherence*Webコンフィギュレーション・パラメータ

パラメータ 使用できる代替コンフィギュレーションの設定

coherence-servletcontext-clustered

サポートされていません。

coherence-servletcontext-cachename

サポートされていません。

coherence-eventlisteners

サポートされていません。

coherence-enable-sessioncontext

サポートされていません。

coherence-session-cookies-enabled

この値は、weblogic.xmlまたはweblogic-application.xmlでWebLogicセッション・ディスクリプタのcookies-enabled要素を使用して設定します。

coherence-session-cookie-domain

この値は、weblogic.xmlまたはweblogic-application.xmlでWebLogicセッション・ディスクリプタのcookie-domain要素を使用して設定します。

coherence-session-cookie-path

この値は、weblogic.xmlまたはweblogic-application.xmlでWebLogicセッション・ディスクリプタのcookie-path要素を使用して設定します。

coherence-session-cookie-max-age

この値は、weblogic.xmlまたはweblogic-application.xmlでWebLogicセッション・ディスクリプタのcookie-max-age-secs要素を使用して設定します。

coherence-session-urlencode-enabled

サポートされていません。

coherence-session-urlencode-name

サポートされていません。

coherence-session-urldecode-bycontainer

サポートされていません。

coherence-session-urlencode-bycontainer

サポートされていません。

coherence-session-id-length

この値は、weblogic.xmlまたはweblogic-application.xmlでWebLogicセッション・ディスクリプタのid-length要素を使用して設定します。


2.3 Coherence*WebでのSAML SSOの使用

WebLogic Serverは、デフォルトで基本的なシングル・サイン・オン(SSO)機能を提供します。Coherence*WebでSAML SSO機能を使用するには、saml2.war Webアプリケーションの内容を変更する必要があります。

  1. WebLogic Serverのインストール環境にある既存のsaml2.warのバックアップを作成します。

  2. saml2.warを一時ディレクトリに解凍します。

    saml2.warは、$WL_SERVER_HOME/server/libディレクトリにあります。

  3. WEB-INFディレクトリの下にlibディレクトリとclassesディレクトリを作成します。

  4. coherence-web-spi.warを解凍してcoherence-web.jarcoherence-web-spi.jarを取得します。この2つのjarファイルを/WEB-INF/libディレクトリにコピーします。

  5. 解凍したcoherence-web-spi.war/WEB-INF/classesディレクトリにあるsession-cache-config.xmlファイルを/WEB-INF/classesディレクトリにコピーします。

  6. アプリケーション・サーバー、EAR、またはWARのうち、クラスタ・ノードに対して選択したスコープ設定に基づいて、適切な場所にcoherence.jarを配置します。

  7. 例2-4に示すコードを/WEB-INF/web.xmlファイルに追加します。

    例2-4 web.xmlでのCoherence Webセッションの有効化

    <?xml version="1.0" encoding="UTF-8"?>
         <web-app>
         ...
         <context-param>
              <param-name>coherence-web-sessions-enabled</param-name>
              <param-value>true</param-value>
         </context-param>
         ...
         </web-app>
    
  8. 次の例のようなjarコマンドを使用してsaml2.warを再アセンブルします。

    jar cvf saml2.war $tempdir
    
  9. WebLogic Serverのインストール環境にある既存のsaml2.warのバックアップを作成します。

  10. WebLogicインストール環境にあるsaml2.warを、変更したsaml2.warファイルに置き換えます。

2.4 既知の制限

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のパスを「/」に設定する必要があります。