ヘッダーをスキップ
Oracle® Coherence開発者ガイド
リリース3.6.1
B61368-02
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

31 Coherenceのデプロイ

この章では、Coherenceをランタイム環境にデプロイする手順を示します。

この章は次の各項で構成されています。

スタンドアロン・アプリケーションでのCoherenceのデプロイ

Coherenceを利用するスタンドアロン・アプリケーションでは、アプリケーションのクラスパスにCOHERENCE_HOME/lib/coherence.jarライブラリを含める必要があります。このシナリオでは、アプリケーションで、アーカイブ内に含まれているデフォルトのCoherence構成が使用されていることを前提としています。構成オーバーライド・ファイルを使用している場合は、そのオーバーライド・ファイルが含まれるディレクトリもクラスパスに含める必要があります。デフォルトの構成の変更の詳細は、第3章「構成について」を参照してください。

次の例では、MyAppというアプリケーションが起動されます。クラスパスには、coherence.jarライブラリとともに、tangosol-coherence-override.xml構成ファイルが格納されている場所(COHERENCE_HOME)も含まれています。

java -jar -cp COHERENCE_HOME;COHERENCE_HOME\lib\coherence.jar com.MyApp

アプリケーション・サーバーへのCoherenceのデプロイ

Coherenceを利用するJava EEアプリケーションでは、Coherenceをデプロイする際に2つのオプションがあります。アプリケーション・サーバー・ライブラリとしてのデプロイとJava EEモジュールの一部としてのデプロイです。Coherenceクラスタ・ノードにはクラス・ローダーのスコープが設定されているため、それぞれのオプションの結果は、異なるデプロイメント・シナリオになります。つまり、各モジュールが固有のCoherenceノードにアクセスできるようになるか、またはすべてのモジュールで1つのCoherenceノードを共有できるようになります。オプションそれぞれに利点と前提があり、一般的にクラスタ・ノードが他のモジュールから分離されている程度とリソース利用率とのバランスが取られます。


注意:

この項には、Coherence*Webのデプロイ手順は含まれていません。Coherence*WebのデプロイおよびHTTPセッション・データのクラスタ化の手順については、『Oracle Coherence*Webユーザーズ・ガイド』を参照してください。

アプリケーション・サーバー・ライブラリとしてのCoherenceのデプロイ

Coherenceをアプリケーション・サーバー・ライブラリとしてデプロイできます。このデプロイメント・シナリオでは、アプリケーション・サーバーの起動クラスパスをCOHERENCE_HOME/lib/coherence.jarライブラリが含まれるように変更します。また、キャッシュに配置するオブジェクトはすべて、サーバーのクラスパスで使用できる必要があります。ライブラリをサーバーのクラスパスに追加する手順は、アプリケーション・サーバーのベンダーのドキュメントを参照してください。

このシナリオでは、サーバーのコンテナにデプロイされたすべてのアプリケーションで1つのCoherenceノードが共有されることになります。このシナリオでは、Coherenceクラスの1つのコピーのみがJVMにロードされるため、リソース使用率が最小限に抑えられます。このシナリオは、サーバーにデプロイするすべてのアプリケーションが認識されており、開発チームがキャッシュ規則および命名基準を慎重に調整および実施している場合に適しています。


注意:

このシナリオは、慎重に検討する必要があります。アプリケーション間の相互作用が未知または予測不能なアプリケーション・サーバーでは決して使用しないでください。このデプロイメント・シナリオでは、すべてのアプリケーションが同じクラスタに属することから、キャッシュやサービスなどの他の構成設定と名前空間どうしで競合が発生する可能性が高く、予期しない結果を生じる恐れがあります。Coherenceノードの1つのアプリケーションの使用が、すべてのアプリケーションに影響を及ぼす可能性があります。

Java EEモジュール内へのCoherenceのデプロイ

CoherenceをEARファイルまたはWARファイル内にデプロイできます。このデプロイメントは、アプリケーション・サーバーのランタイムに対する変更が必要ではなく、また、クラスタ・ノードがEARまたはWARから分離されるため、一般的に推奨されるスタイルです。

EAR内へのCoherenceのデプロイ

CoherenceをEARの一部としてデプロイできます。このデプロイメント・シナリオでは、EAR内のすべてのWebアプリケーションで1つのCoherenceクラスタ・ノードが共有されることになります。EARごとにCoherenceクラスの1つのコピーのみがロードされるため、リソース使用率は中庸です。ただし、Coherenceノードのいずれか1つのモジュールの使用が、すべてのWebアプリケーションに影響を及ぼす可能性があります。このオプションは、1つのアプリケーション・サーバーに1つのEARをデプロイする場合に適しています。

Coherenceをエンタープライズ・アプリケーション内にデプロイする手順は次のとおりです。

  1. coherence.jarライブラリを、エンタープライズ・アプリケーションのディレクトリ構造内の任意の場所にコピーします。

  2. テキスト・エディタを使用して、META-INF/application.xmlデプロイメント・ディスクリプタを開きます。

  3. アプリケーション・ディレクトリの最上位に対する相対パスおよびCoherenceライブラリの名前が含まれる<java>要素を追加します。例:

    <application>
       <display-name>MyApp</display-name>
       <module>
          <java>coherence.jar</java>
       </module>
       ...
    </application>
    
  4. キャッシュに配置するオブジェクトすべてを前述の方法でアプリケーションに追加します。

  5. ディスクリプタを保存して閉じます。

  6. アプリケーションをパッケージ化してデプロイします。

WAR内へのCoherenceのデプロイ

CoherenceをWebアプリケーションの一部としてデプロイできます。このデプロイメント・シナリオでは、Webアプリケーションそれぞれがクラスタ内に固有のCoherenceノードを持ち、他のすべてのWebアプリケーションから分離されることになります。このシナリオでは、Coherenceを含む、デプロイされるWebアプリケーションと同じ数のCoherenceクラスのコピーがロードされるため、リソースの使用率が最も多くなります。このシナリオは、1つのアプリケーション・サーバーに数個のWebアプリケーションのみをデプロイする場合に適しています。

CoherenceをWebアプリケーション内にデプロイする手順は次のとおりです。

  1. WebアプリケーションのWEB-INF/libディレクトリにcoherence.jarライブラリをコピーします。

  2. キャッシュに配置するすべてのオブジェクトが、WEB-INF/libディレクトリまたはWEB-INF/classesディレクトリに配置されていることを確認します。

  3. アプリケーションをパッケージ化してデプロイします。