プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Coherence*WebでのHTTPセッション・マネージメントの管理
12c (12.2.1.1)
E77324-02
目次へ移動
目次

前
次

3 他のアプリケーション・サーバーにおけるCoherence*Webの使用方法

この章では、様々なアプリケーション・サーバーで使用するために、Coherence*Web、セッション状態の永続性および管理モジュールを構成してデプロイする方法について説明します。Coherence*Webをこれらのアプリケーション・サーバーで使用可能にする機能は、自動化されたCoherence*Web WebInstallerを実行することにより提供されます。

注意:

サポートされているWebコンテナを参照して、アプリケーション・サーバー固有の統合手順を実行する必要があるかどうかを確認してください。

この章では、Coherence*Web WebInstallerを使用して、Java EEアプリケーション向けのCoherence*Webを様々なアプリケーション・サーバーに統合する手順について説明します。

この章の構成は、次のとおりです。

3.1 WebInstallerによるCoherence*Webの統合

Coherence*Webは、様々なWebコンテナのJava EEアプリケーションに対して有効化できます。これを行うには、アプリケーションをデプロイする前に、自動化したCoherence*Web WebInstallerを使用して、デプロイの準備が整ったアプリケーションを実行する必要があります。このユーティリティによって、アプリケーションのデプロイメント準備が完了します。インスペクトと統合の2段階で統合プロセスが実行されます。これらの各段階でのWebInstallerユーティリティの動作は、Coherence*Web WebInstallerによるJava EEアプリケーションの設定を参照してください。

WebInstallerは、JavaコマンドラインまたはAntタスクから実行できます。次の各項では、Javaコマンド行から実行する方法について説明します。Antタスク・ベースの環境については、Coherence*Web WebInstaller Antタスクを参照してください。

3.1.1 Coherence*Webセッション管理モジュールを統合する一般的な手順

サポートされているWebコンテナに記載したどのWebコンテナにJava EEアプリケーション用のCoherence*Webを統合する場合でも、次の手順を実行してください。

Java EE用のCoherence*WebをApache Tomcatサーバーに統合している場合の手順の詳細は、Apache Tomcatサーバーに対するスティッキー・セッションの有効化も参照してください。

Java EE用のCoherence*WebをIBM WebSphereサーバーに統合している場合の手順の詳細は、IBM WebSphere Libertyとの統合も参照してください。

デプロイするJava EEアプリケーション用のCoherence*Webを統合するには、次の手順を実行します。

  1. アプリケーション・ディレクトリ、EARファイルおよびWARファイルを他のプロセスで使用もアクセスもしていないことを確認します。
  2. 現在のディレクトリをCoherenceのライブラリ・ディレクトリに変更します(Windowsの場合は%COHERENCE_HOME%\lib、Unixの場合は$COHERENCE_HOME/lib)。
  3. Javaコマンドを実行できるようにパスを構成していることを確認します。
  4. 次のコマンドを実行してアプリケーションのインスペクト手順を完了します。次のコマンド行で、<app-path>にはアプリケーションへのフル・パスを指定し、<server-type>には、使用しているサーバーの名前を表1-1から選択して指定します。
    java -jar webInstaller.jar <app-path> -inspect -server:<server-type>
    

    アプリケーションを配置したディレクトリに、Java EEアプリケーション用のcoherence-web.xml構成ディスクリプタ・ファイルが作成されます(すでに存在している場合はそれが更新されます)。この構成ディスクリプタ・ファイルには、アプリケーション用としてユーティリティ推奨のデフォルトのCoherence*Web設定が収められています。

  5. 必要に応じて、各自の要件に基づいてCoherence*Web設定を見直し、変更してください。

    coherence-web.xmlディスクリプタ・ファイルを編集することで、Coherence*Web設定を変更できます。変更可能なCoherence*Web設定は、「Coherence*Webコンテキスト・パラメータ」を参照してください。context-paramパラメータのサブ要素であるparam-nameおよびparam-valueを使用して、必要な機能を有効にします。表3-1に、様々な設定の例を示します。

    表3-1 Coherence*Webのコンテキスト・パラメータ設定の例

    パラメータ 名前 説明

    coherence-servletcontext-clustered

    はい

    すべてのServletContext(グローバル)属性をクラスタ化し、そのクラスタにあるサーバーがこれらの属性に同じ値を持ち、これらの属性が変更されたときはサーブレット仕様で指定されたイベントを受け取るようにします。

    注意:

    このプロパティは、IBM WebSphere Libertyには適用できません。

    coherence-enable-sessioncontext

    はい

    アプリケーションで使用すると、そのアプリケーションに存在するすべてのセッションを列挙したり、そのいずれかを取得して調査または操作したりできます。

    coherence-session-id-length

    32

    SecureRandomアルゴリズムを使用して生成したHttpSession IDを長くできます。この長さは任意の値にできますが、実際は、CookieまたはURLに適した長さにする必要があります(セッションIDの管理方法に依存)。これを長くすると、セッションが意図的にハイジャックされる危険性を低くできます。

    coherence-session-urlencode-enabled

    はい

    デフォルトでは、HttpSession IDはCookieで管理されます。アプリケーションでURLのエンコードがサポートされている場合、このオプションにより有効になります。

  6. <app-path>をアプリケーションへのフル・パスに置き換えて次のコマンドを実行することで、Coherence*Webアプリケーションの統合手順を実行します。
    java -jar webInstaller.jar <app-path> -install
    

    WebInstallerでは、有効なcoherence-web.xml構成ディスクリプタ・ファイルをアプリケーションと同じディレクトリに配置する必要があります。このコマンドにより、アプリケーション・アーカイブ・ファイルのWEB-INF\classesディレクトリにdefault-session-cache-config.xmlファイルが作成されます。このファイルには、セッション構成情報とキャッシュ構成情報が格納されます。

  7. 更新済のアプリケーションをデプロイし、Coherenceディストリビューションに付随している軽量型ロード・バランサを使用して、すべてが仕様どおりに機能することを確認します。この軽量型ロード・バランサは、WebLogic Serverに付随しているロード・バランサとは対照的に、本番向けのユーティリティではありません。

Coherenceでサポートしているデプロイメント・トポロジであれば任意のトポロジで、アプリケーションをデプロイして実行できます。サポートしているデプロイメント・トポロジには、Coherence*Extendによるアウトオブプロセスとインプロセスがあります。これらのトポロジにおいてアプリケーションのデプロイと実行を行う方法の詳細は、次の各項を参照してください。トポロジ自体の詳細は、デプロイメント・トポロジを参照してください。

3.1.1.1 インプロセスのアプリケーションのデプロイと実行

Coherence*Webはアプリケーション・サーバーでインプロセス状態で実行できます。これは、セッション・データがアプリケーション・サーバーで格納される場所です。このトポロジの詳細は、インプロセス・トポロジを参照してください。

アプリケーション・サーバーの場合:

  1. 記憶域を有効化した状態でアプリケーション・サーバーを起動します。システム・プロパティのcoherence.session.localstorage=trueをアプリケーション・サーバー起動スクリプトのJavaオプションに追加します。
  2. coherence.jarcoherence-web.jarのファイルを共有ライブラリとしてデプロイします。
  3. アプリケーションをデプロイして実行します。

3.1.1.2 アウトオブプロセスのアプリケーションのデプロイと実行

アウトオブプロセス・デプロイメント・トポロジでは、スタンドアロンのキャッシュ・サーバーでセッション・データを格納し、アプリケーション・サーバーはキャッシュ・クライアントとして構成されます。このトポロジの詳細は、アウトオブプロセス・トポロジを参照してください。

キャッシュ・サーバーとアプリケーション・サーバーは、同じキャッシュ構成とセッション構成を使用する必要があります。この構成は、Coherence*Web WebInstallerによりdefault-session-cache-config.xmlファイルに生成されます。WebInstallerにより、設定済アプリケーションのWEB-INF\classesディレクトリにファイルが生成されます。

キャッシュ・サーバーの場合:

  1. coherence.cacheconfigシステム・プロパティをキャッシュ・サーバー起動スクリプトに追加して、ファイル構成ファイルを探します。また、システム・プロパティのcoherence.session.localstorage=trueを含めて、キャッシュ・サーバーの記憶域を有効にする必要があります。

  2. coherence.jarcoherence-web.jarのファイルをキャッシュ・サーバー起動スクリプトのクラスパスに追加します。

    次の例は、サンプル起動スクリプトです。

    java -server -Xms512m -Xmx512m 
    -cp <Coherence installation dir>/lib/coherence.jar:<Coherence installation dir>/lib/coherence-web.jar -Dcoherence.management.remote=true -Dcoherence.cacheconfig=default-session-cache-config.xml 
    -Dcoherence.session.localstorage=true com.tangosol.net.DefaultCacheServer

アプリケーション・サーバーの場合(キャッシュ・クライアント):

  1. coherence.jarcoherence-web.jarのファイルを共有ライブラリとしてデプロイします。
  2. 設定済アプリケーションのWEB-INF\classesディレクトリにdefault-session-cache-config.xmlファイルが存在する必要があります。

    デフォルトでは、ファイルではローカル記憶域が無効になるように指定します(不明な場合、ファイルを調べてlocal-storage要素がfalseに設定されていることを確認するか、システム・プロパティのcoherence.session.localstorage=falseを起動スクリプトに追加できます)。

  3. アプリケーションをサーバーにデプロイします。

3.1.1.3 アウトオブプロセス・トポロジへの移行

インプロセスのCoherence*Webでアプリケーションの実行とテストを行っている場合、簡単にアウトオブプロセス・トポロジに移行できます。単純に、キャッシュ・サーバーとアプリケーション・サーバーを設定します。詳細は、アウトオブプロセスのアプリケーションのデプロイと実行を参照してください。

3.1.1.4 Coherence*Extendによるアウトオブプロセスのアプリケーションのデプロイと実行

Coherence*Extendによるアウトオブプロセス・トポロジは、アウトオブプロセス・トポロジに似ていますが、アプリケーション・サーバー層とキャッシュ・サーバー層との通信をCoherence*Extend経由(TCP/IP)で行う点が異なります。Coherence*Extendは、クラスタの外部で実行されるExtendクライアント(またはプロキシ)と、1台以上のキャッシュ・サーバーでホストされているクラスタ内で実行される拡張プロキシ・サービスの2つの基本コンポーネントで構成されます。このトポロジの詳細は、Coherence*Extendによるアウトオブプロセス・トポロジを参照してください。

これらのデプロイメントの参加者には、次の3種類があります。

  • キャッシュ・サーバー(記憶域サーバー)は、実際のセッション・データをメモリーに格納する際に使用されます。

  • Web(アプリケーション)サーバーは、このトポロジにおけるExtendクライアントです。クラスタのメンバーにはならず、クラスタ内のプロキシ・ノードに接続します。クラスタへのリクエストの発行は、そのプロキシ・ノードが代行します。

  • プロキシ・サーバーは、クラスタ内の記憶域が無効なメンバーとして、ExtendクライアントからのTCP/IP接続を受け入れ、管理します。クライアントからのリクエストはクラスタに送信され、応答はTCP/IP接続を通じて返送されます。

キャッシュ・サーバーの場合:

アウトオブプロセスのアプリケーションのデプロイと実行でキャッシュ・サーバーを構成する手順に従ってください。また、キャッシュ・サーバーのdefault-session-cache-config.xmlファイルをコピーしてから編集し、システム・プロパティのcoherence.session.proxy=falsecoherence.session.localstorage=trueを追加します。

これらのコンテキスト・パラメータを含むdefault-session-cache-config.xmlファイルの例と詳細は、プロキシJVMと記憶域JVMのキャッシュの構成を参照してください。

Web層(アプリケーション)サーバーの場合:

アウトオブプロセスのアプリケーションのデプロイと実行でアプリケーション・サーバーを構成する手順に従ってください。また、次の手順を完了します。

  1. オプティミスティック・ロック・モードを使用するようにCoherence*Webを構成していることを確認します。オプティミスティック・ロックは、Coherence*Webにおけるデフォルトのロック・メカニズムです(オプティミスティック・ロックを参照)。

  2. アプリケーション・サーバーのdefault-session-cache-config.xmlファイルをコピーしてから編集し、プロキシJVMのホスト名、IPアドレスおよびポートを追加します。このためには、<remote-addresses>セクションをファイルに追加します。一般には、ロード・バランシングとフェイルオーバーに備えて、すべてのプロキシJVMのホスト名、IPアドレスおよびポートを追加します。

<remote-addresses>セクションを含むdefault-session-cache-config.xmlファイルの例と詳細は、Web層JVMのキャッシュの構成を参照してください。

プロキシ・サーバーの場合:

若干変更することで、プロキシ・サーバーではキャッシュ・サーバーおよびアプリケーション・サーバーと同じキャッシュ構成およびセッション構成を使用できます。default-session-cache-config.xmlファイルを編集して、これらのシステム・プロパティを追加します。

  • coherence.session.localstorage=falseにより、ローカル記憶域を無効にします。

  • coherence.session.proxy=trueは、プロキシ・サービスが使用されていることを示します。

  • coherence.session.proxy.localhostは、プロキシがバインドされるNICのホスト名またはIPアドレスを示します。

  • coherence.session.proxy.localportは、プロキシがバインドされるポートの一意のポート番号を示します。

これらのコンテキスト・パラメータを含むdefault-session-cache-config.xmlファイルの例と詳細は、プロキシJVMと記憶域JVMのキャッシュの構成を参照してください。

3.1.2 Apache Tomcatサーバーに対するスティッキー・セッションの有効化

Apache Tomcatサーバーにスティッキー・セッションを採用するには、サーバーのserver.xmlファイルにjvmRoute属性を構成する必要があります。この属性の詳細は、次のURLを参照してください。

http://tomcat.apache.org/connectors-doc/reference/workers.html

3.1.3 IBM WebSphere Libertyとの統合

HTTPセッション・アフィニティは、WebSphere Libertyとの統合時に明示的に構成する必要がある場合があります。Coherence*Webに、LibertyサーバーのクローンID、およびアフィニティ・セパレータを渡す必要があります。https://www.ibm.com/support/knowledgecenter/SSEQTP_8.5.5/com.ibm.websphere.wlp.doc/ae/twlp_admin_session_persistence.htmlにあるlibertyドキュメントで説明されているようにクローンIDがユーザーによって定義された場合、およびアフィニティ・セパレータがコロン(:)文字である場合、その他の構成は必要ありません。それ以外の場合には、サーバー起動時に次のシステム・プロパティを使用できます。

  • coherence.web.liberty.suffix.separator – アフィニティ接尾辞セパレータ。デフォルト値は:です。

  • coherence.web.liberty.suffix – サーバーのクローンID。デフォルト値は、前に示したWebSphere Libertyドキュメントで説明されているとおり、bootstrap.propertiesファイルでcloneIdシステム・プロパティのために構成されている値です。

3.2 Coherence*Web WebInstaller Antタスク

Coherence*Web WebInstaller Antタスクを使用すると、既存のAntビルド・ファイルからユーティリティを実行できます。

この項の内容は次のとおりです。

3.2.1 Coherence*Web WebInstaller Antタスクの使用方法

Coherence*Web WebInstaller Antタスクを使用するには、次のタスク・インポート文をAntビルド・ファイルに追加します。この例で、${coherence.home}はCoherenceをインストールした環境のルート・ディレクトリを指しています。

<taskdef name="cwi" classname="com.tangosol.coherence.misc.CoherenceWebAntTask">
    <classpath>
        <pathelement location="${coherence.home}/lib/webInstaller.jar"/>
    </classpath>
</taskdef>

次の手順は、AntビルドからJava EEアプリケーションにCoherence*Webを統合するための基本的なプロセスを示しています。

  1. いつものようにJava EEアプリケーションをビルドします。

  2. operations属性をinspectに設定して、Coherence*Web Antタスクを実行します。

  3. 生成されたCoherence*Web XMLディスクリプタ・ファイルを必要に応じて変更します。

  4. operations属性をinstallに設定して、Coherence*Web Antタスクを実行します。

反復手順のある開発作業の実行

アプリケーションで反復手順のある開発作業(JavaServer Pages (JSP)、サーブレット、静的リソースなどの変更)を実行する場合は、次の統合プロセスを使用します。

  1. operations属性をuninstallに、failonerror属性をfalseに、descriptor属性をCoherence*Web WebInstaller Antタスクの使用方法の手順2で以前生成したCoherence*Web XMLディスクリプタ・ファイルの場所にそれぞれ設定して、Coherence*Web Antタスクを実行します。

  2. いつものようにJava EEアプリケーションをビルドします。

  3. operations属性をinspectに、install属性とdescriptor属性をCoherence*Web WebInstaller Antタスクの使用方法の手順2で以前生成したCoherence*Web XMLディスクリプタ・ファイルの場所にそれぞれ設定して、Coherence*Web Antタスクを実行します。

Java EEアプリケーションのCoherence*Web構成設定の変更

Coherence*Webを使用するJava EEアプリケーションのCoherence*Web構成設定を変更する必要がある場合、次の手順を使用します。

  1. operations属性をuninstallに、descriptor属性をJava EEアプリケーションのCoherence*Web XMLディスクリプタ・ファイルの場所にそれぞれ設定して、Coherence*Web Antタスクを実行します。

  2. Coherence*Web XMLディスクリプタ・ファイルで、必要な構成パラメータを変更します。

  3. operations属性をinstallに、descriptor属性をCoherence*Web WebInstaller Antタスクの使用方法の手順2で変更したCoherence*Web XMLディスクリプタ・ファイルの場所にそれぞれ設定して、Coherence*Web Antタスクを実行します。

3.2.2 WebInstaller Antタスクの構成

表3-2は、Coherence*Web WebInstaller Antタスクで使用可能な属性を示しています。

表3-2 Coherence*Web WebInstaller Antタスクの属性

属性 説明 必須

app

目的のJava EEアプリケーションへのパス。WARファイル、EARファイル、展開したWARディレクトリ、または展開したEARディレクトリのいずれかへのパスを指定できます。

operations属性をversion以外の値に設定した場合は、はい。

backup

元の目的のJava EEアプリケーションのバックアップを保存するディレクトリへのパス。この属性は、デフォルトでJava EEアプリケーションのインストール先ディレクトリに設定されます。

いいえ

descriptor

Coherence*Web XMLディスクリプタ・ファイルへのパス。この属性は、デフォルトで目的のJava EEアプリケーションのインストール先ディレクトリにあるcoherence-web.xmlファイルに設定されます。

いいえ

failonerror

0以外のステータスでCoherence*Web WebInstallerが終了した場合はAntビルドを停止します。デフォルトはtrueです。

いいえ

nowarn

警告メッセージを表示しないようにします。この属性の値はtrueまたはfalseのいずれかです。デフォルトは、falseです。

いいえ

operations

実行する操作をカンマまたはスペースで区切って指定します。指定できる操作は、inspectinstalluninstall、およびversionです。

はい

server

目的のJava EEアプリケーション・サーバーの別名。

いいえ

touch

Coherence*Web WebInstallerによって変更されたJSPとTLDにtouchコマンドを実行します。この属性に指定できる値は、truefalse、またはM/d/y h:mmです。デフォルトはfalseです。

いいえ

verbose

詳細出力を表示します。この属性の値はtrueまたはfalseのいずれかです。デフォルトは、falseです。

いいえ

3.2.3 WebInstaller Antタスクの例

次に、WebInstaller Antタスクのコマンド例を示します。

  • myWebApp.war Webアプリケーションをインスペクトして、現在の作業ディレクトリでmy-coherence-web.xmlという名前のCoherence*Web XMLディスクリプタ・ファイルを作成します。

    <cwi app="myWebApp.war" operations="inspect" descriptor="my-coherence-web.xml"/>
    
  • 現在の作業ディレクトリにあるmy-coherence-web.xmlという名前のCoherence*Web XMLディスクリプタ・ファイルを使用して、myWebApp.war WebアプリケーションにCoherence*Webを統合します。

    <cwi app="myWebApp.war" operations="install" descriptor="my-coherence-web.xml"/>
    
  • myWebApp.war WebアプリケーションからCoherence*Webを削除します。

    <cwi app="myWebApp.war" operations="uninstall">
    
  • /dev/myWebApp/srcディレクトリにあるmy-coherence-web.xmlという名前のCoherence*Web XMLディスクリプタ・ファイルを使用して、/dev/myWebApp/buildディレクトリに配置したmyWebApp.war WebアプリケーションにCoherence*Webを統合し、元のWebアプリケーションのバックアップを/dev/myWebApp/workディレクトリに配置します。

    <cwi app="/dev/myWebApp/build/myWebApp.war" operations="install" descriptor="/dev/myWebApp/src/my-coherence-web.xml" backup="/dev/myWebApp/work"/>
    
  • /dev/myWebApp/buildディレクトリにあるcoherence-web.xmlという名前のCoherence*Web XMLディスクリプタ・ファイルを使用して、/dev/myWebApp/buildディレクトリに配置したmyWebApp.war WebアプリケーションにCoherence*Webを統合します。Webアプリケーションがまだインスペクトされていない(つまり、/dev/myWebApp/build/coherence-web.xmlが存在しない)場合は、Coherence*Webを統合する前にWebアプリケーションをインスペクトします。

    <cwi app="/dev/myWebApp/build/myWebApp.war" operations="inspect,install"/>
    
  • /dev/myWebApp/srcディレクトリにあるmy-coherence-web.xmlという名前のCoherence*Web XMLディスクリプタ・ファイルを使用して、/dev/myWebApp/buildディレクトリに配置したmyWebApp.war WebアプリケーションにCoherence*Webを再統合します。

    <cwi app="/dev/myWebApp/build/myWebApp.war" operations="uninstall,install" descriptor="/dev/myWebApp/src/my-coherence-web.xml"/>

3.3 HTTPセッション管理のテスト

Coherenceには、ソフトウェアによる軽量なロード・バランサが付属しています。このソフトウェアはテスト以外の目的には使用できません。このロード・バランサは、セッション管理などの機能テストではきわめて効果的で、たいへん使いやすいソフトウェアです。HTTPセッション管理を軽量型ロード・バランサでテストするには、次の手順を実行します。

  1. それぞれがIPアドレスとポートの一意な組合せでアプリケーションを実行する複数のアプリケーション・サーバー・プロセスを、1台以上のサーバー・マシン上で開始します。
  2. コマンド(またはシェル)ウィンドウを開きます。
  3. 現在のディレクトリをCoherenceのライブラリ・ディレクトリに変更します(Windowsの場合は%COHERENCE_HOME%\lib、Unixの場合は$COHERENCE_HOME/lib)。
  4. Javaコマンドを実行できるようにパスを構成していることを確認します。
  5. 次のコマンド行を使用してソフトウェア・ロード・バランサを起動します(これらの各コマンド行によって、デフォルトのHTTPポート80でアプリケーションが使用可能になります)。

    たとえば、2つのアプリケーション・サーバー・インスタンスを7001ポートと7002ポートに持つ1台のマシンでローカルにロード・バランシングをテストするには、次のように入力します。

    java -jar coherence-loadbalancer.jar localhost:80 localhost:7001 localhost:7002
    

    server1server2およびserver3に対して7001ポートで負荷を分散するserver1でローカルにロード・バランサを実行するには、次のように入力します。

    java -jar coherence-loadbalancer.jar server1:80 server1:7001 server2:7001 server3:7001
    

    前述のコマンド行を実行すると、これまでhttp://server1:7001/my.jspをURLとしていたアプリケーションに、http://server1:80/my.jspまたはhttp://server1/my.jspのみを指定してアクセスできるようになります。

    注意:

    アプリケーションで使用されるアドレスが、相対リダイレクトまたはロード・バランサのアドレスのいずれかであることを確認してください。

    表3-3は、ロード・バランサのコマンド行オプションを示しています。

    表3-3 ロード・バランサのコマンド行オプション

    オプション 説明

    backlog

    TCP/IP受入れバックログ・オプションを指定の値に設定します(例: -backlog=64)。

    random

    ランダム・ロード・バランシング・アルゴリズムの使用を指定します(デフォルト)。

    roundrobin

    ラウンドロビン・ロード・バランシング・アルゴリズムの使用を指定します。

    threads

    指定の数のリクエスト・スレッドやレスポンス・スレッドのペアを使用します(そのため、新しいデーモン・スレッドの総数は指定した値の2倍になります)(例: -threads=64)。

3.4 Coherence*Web WebInstallerによるJava EEアプリケーションの設定

インスペクトの手順では、Coherence*Web WebInstallerによって次のタスクが実行されます。

  1. アプリケーションと目的のWebコンテナに関する基本的な情報、および目的のWebコンテナに適したデフォルトのCoherence*Web構成コンテキスト・パラメータを記述したテンプレートであるcoherence-web.xml構成ファイルを生成します。使用可能なすべてのパラメータの詳細は、「Coherence*Webコンテキスト・パラメータ」を参照してください。

    WebInstallerではサーブレット・コンテナを設定して、記憶域を無効化した状態で起動します(つまり、coherence.session.localstoragefalseに設定します)。

    既存のcoherence-web.xml構成ファイルが存在する場合(たとえば、過去にCoherence*Web WebInstallerを実行したことがある場合)は、既存のファイルにあるコンテキスト・パラメータは生成したテンプレートにあるパラメータにマージされます。

  2. 目的のJava EEアプリケーションにある各WebアプリケーションからJSPを列挙して、各JSPに関する情報をcoherence-web.xml構成ファイルに追加します。

  3. 目的のJava EEアプリケーションにある各WebアプリケーションからTLDを列挙して、各TLDに関する情報をcoherence-web.xml構成ファイルに追加します。

統合の手順では、Coherence*Web WebInstallerによって次のタスクが実行されます。

  1. アンインストールの手順で復元できるように、元のJava EEアプリケーションのバックアップを作成します。

  2. インスペクトの手順1で生成したCoherence*Web構成コンテキスト・パラメータを、目的のJava EEアプリケーションに含まれる各Webアプリケーションのweb.xmlディスクリプタ・ファイルに追加します。

  3. 各Webアプリケーションから、アプリケーション固有のServletContextListenerServletContextAttributeListenerServletRequestListenerServletRequestAttributeListenerHttpSessionListener、およびHttpSessionAttributeListenerの各クラス(TLDによって登録されたものを含む)を登録解除します。

  4. Coherence*Web ServletContextListenerクラスを各web.xmlディスクリプタ・ファイルに登録します。実行時に、Coherence*Web ServletContextListenerクラスによって、各アプリケーション固有のServletContextListenerリスナーに各ServletContextEventイベントが伝播します。

  5. Coherence*Web ServletContextAttributeListenerリスナーを各web.xmlディスクリプタ・ファイルに登録します。実行時に、Coherence*Web ServletContextAttributeListenerによって、各アプリケーション固有のServletContextAttributeListenerリスナーに各ServletContextAttributeEventイベントが伝播します。

  6. web.xmlディスクリプタ・ファイルで宣言した各アプリケーション固有のServletをCoherence*Web SessionServletでラップします。実行時に、各Coherence*Web SessionServletからラップされたServletに権限が委譲されます。

  7. インスペクト手順2で列挙した各JSPに次のディレクティブを追加します。

    <%@ page extends="com.tangosol.coherence.servlet.api22.JspServlet" %>
    

アンインストールの手順では、Coherence*Web WebInstallerによって、設定済のJava EEアプリケーションが統合プロセスの手順(1)で作成した元のバージョンのバックアップに置き換えられます。

3.5 Java EEセキュリティを使用しているアプリケーションとのCoherence*Webの統合

Java EEセキュリティを使用しているアプリケーションにCoherence*Webを統合するには、次の手順を別途実行してください。

  1. Coherence*WebセッションCookieを有効にします。

    詳細は、表A-1coherence-session-cookies-enabled構成要素を参照してください。

  2. Coherence*WebセッションCookieの名前を、目的のWebコンテナで使用していない名前に変更します。

    デフォルトでは、JSESSIONIDがほとんどのコンテナでセッションCookie名として使用されるため、Coherence*WebセッションCookie名としてはCSESSIONIDをお薦めします。詳細は、表A-1coherence-session-cookie-name構成要素を参照してください。

  3. 目的のWebコンテナに対するセッション・レプリケーションを有効にします。

    セッション・レプリケーションが有効になっていない場合、またはコンテナでセッション・レプリケーションの形態がサポートされていない場合は、フェイルオーバーの際にWebアプリケーションに対する再認証を実行する必要があります。セッション・レプリケーションの有効化に関する手順は、Webコンテナのドキュメントを参照してください。

この構成によって、指定の認証済ユーザーに次の2つのセッションが関連付けられます。

  • Webアプリケーションで作成したすべてのセッション・データを含むCoherence*Webセッション

  • 認証中にWebコンテナによって作成され、ユーザーの特定に必要な情報のみを保存したセッション

3.6 クロスサイト・スクリプティング攻撃の防止

coherence-session-cookie-httponlyコンテキスト・パラメータを使用して、HttpOnly属性をセッションCookieに追加します。HttpOnly属性は、CookieにJavaScriptなどのクライアント側のスクリプトがアクセスできないようにするため、クロスサイト・スクリプティングといった攻撃を防止するために使用します。すべてのブラウザがこの機能をサポートしているわけではありません。このコンテキスト・パラメータは、設定済アプリケーションの場合のみ使用可能です。