この章では、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を利用するJava EEアプリケーションでは、Coherenceをデプロイする際に2つのオプションがあります。アプリケーション・サーバー・ライブラリとしてのデプロイとJava EEモジュールの一部としてのデプロイです。Coherenceクラスタ・ノードにはクラス・ローダーのスコープが設定されているため、それぞれのオプションの結果は、異なるデプロイメント・シナリオになります。つまり、各モジュールが固有のCoherenceノードにアクセスできるようになるか、またはすべてのモジュールで1つのCoherenceノードを共有できるようになります。オプションそれぞれに利点と前提があり、一般的にクラスタ・ノードが他のモジュールから分離されている程度とリソース利用率とのバランスが取られます。
注意: この項には、Coherence*Webのデプロイ手順は含まれていません。Coherence*WebのデプロイおよびHTTPセッション・データのクラスタ化の手順については、『Oracle Coherence*Webユーザーズ・ガイド』を参照してください。 |
Coherenceをアプリケーション・サーバー・ライブラリとしてデプロイできます。このデプロイメント・シナリオでは、アプリケーション・サーバーの起動クラスパスをCOHERENCE_HOME
/lib/coherence.jar
ライブラリが含まれるように変更します。また、キャッシュに配置するオブジェクトはすべて、サーバーのクラスパスで使用できる必要があります。ライブラリをサーバーのクラスパスに追加する手順は、アプリケーション・サーバーのベンダーのドキュメントを参照してください。
このシナリオでは、サーバーのコンテナにデプロイされたすべてのアプリケーションで1つのCoherenceノードが共有されることになります。このシナリオでは、Coherenceクラスの1つのコピーのみがJVMにロードされるため、リソース使用率が最小限に抑えられます。このシナリオは、サーバーにデプロイするすべてのアプリケーションが認識されており、開発チームがキャッシュ規則および命名基準を慎重に調整および実施している場合に適しています。
注意: このシナリオは、慎重に検討する必要があります。アプリケーション間の相互作用が未知または予測不能なアプリケーション・サーバーでは決して使用しないでください。このデプロイメント・シナリオでは、すべてのアプリケーションが同じクラスタに属することから、キャッシュやサービスなどの他の構成設定と名前空間どうしで競合が発生する可能性が高く、予期しない結果を生じる恐れがあります。Coherenceノードの1つのアプリケーションの使用が、すべてのアプリケーションに影響を及ぼす可能性があります。 |
CoherenceをEARファイルまたはWARファイル内にデプロイできます。このデプロイメントは、アプリケーション・サーバーのランタイムに対する変更が必要ではなく、また、クラスタ・ノードがEARまたはWARから分離されるため、一般的に推奨されるスタイルです。
CoherenceをEARの一部としてデプロイできます。このデプロイメント・シナリオでは、EAR内のすべてのWebアプリケーションで1つのCoherenceクラスタ・ノードが共有されることになります。EARごとにCoherenceクラスの1つのコピーのみがロードされるため、リソース使用率は中庸です。ただし、Coherenceノードのいずれか1つのモジュールの使用が、すべてのWebアプリケーションに影響を及ぼす可能性があります。このオプションは、1つのアプリケーション・サーバーに1つのEARをデプロイする場合に適しています。
Coherenceをエンタープライズ・アプリケーション内にデプロイする手順は次のとおりです。
coherence.jar
ライブラリを、エンタープライズ・アプリケーションのディレクトリ構造内の任意の場所にコピーします。
テキスト・エディタを使用して、META-INF/application.xml
デプロイメント・ディスクリプタを開きます。
アプリケーション・ディレクトリの最上位に対する相対パスおよびCoherenceライブラリの名前が含まれる<java>
要素を追加します。例:
<application> <display-name>MyApp</display-name> <module> <java>coherence.jar</java> </module> ... </application>
キャッシュに配置するオブジェクトすべてを前述の方法でアプリケーションに追加します。
ディスクリプタを保存して閉じます。
アプリケーションをパッケージ化してデプロイします。
CoherenceをWebアプリケーションの一部としてデプロイできます。このデプロイメント・シナリオでは、Webアプリケーションそれぞれがクラスタ内に固有のCoherenceノードを持ち、他のすべてのWebアプリケーションから分離されることになります。このシナリオでは、Coherenceを含む、デプロイされるWebアプリケーションと同じ数のCoherenceクラスのコピーがロードされるため、リソースの使用率が最も多くなります。このシナリオは、1つのアプリケーション・サーバーに数個のWebアプリケーションのみをデプロイする場合に適しています。
CoherenceをWebアプリケーション内にデプロイする手順は次のとおりです。
WebアプリケーションのWEB-INF/lib
ディレクトリにcoherence.jar
ライブラリをコピーします。
キャッシュに配置するすべてのオブジェクトが、WEB-INF/lib
ディレクトリまたはWEB-INF/classes
ディレクトリに配置されていることを確認します。
アプリケーションをパッケージ化してデプロイします。