Oracle® Fusion Middleware Oracle WebLogic Server Oracle Coherenceアプリケーションの開発 12c (12.2.1.2.0) E82719-02 |
|
前へ |
次へ |
この章の内容は次のとおりです。
Coherenceは、分散キャッシングおよびインメモリー・データ・グリッド・コンピューティングのソリューションです。通常、アプリケーションはスケーラビリティ、可用性およびパフォーマンスを向上させるためにCoherenceを使用します。Coherenceの一般的なユースケースには、データ・キャッシング、HTTPセッション・レプリケーション、およびデータベース・キャッシュ・ストア(Java Persistence API (JPA)レベル2キャッシュなど)が含まれます。
CoherenceはWebLogic Serverと密接に統合されます。統合することで、Coherenceクラスタ・メンバーのライフサイクルが、管理対象サーバーのライフサイクルにそろいます。つまり、管理対象サーバーJVMの開始または終了に合せてCoherenceクラスタ・メンバーを開始および終了することになります。クラスタ・メンバーである管理対象サーバーは、管理対象Coherenceサーバーと呼ばれます。
その他のJava EEモジュールと同様に、Coherenceはグリッド・アーカイブ(GAR)という独自のアプリケーション・モジュールをサポートします。GARには、Coherenceアプリケーションのアーティファクトが格納され、デプロイメント・ディスクリプタが含まれています。GARはJava EEモジュールと同様にデプロイおよびアンデプロイされ、アプリケーション・ライフサイクルはクラスタ・サービス・ライフタイムから分離されています。Coherenceアプリケーションと管理対象CoherenceサーバーはJavaEE仕様で規定されていませんが、WebLogic Serverに固有のものです。
この項では、WebLogic ServerでのCoherenceの一般的な使用法について説明します。WebLogic ServerとCoherenceの統合により、アプリケーションはCoherenceデータ・キャッシュを使用し、センション管理にCoherence*Webを組み込み、オブジェクトからリレーショナルへの永続化フレームワークとしてTopLink Gridを組み込むことが容易になります。
アプリケーション・データ・キャッシングおよびデータ・グリッド・コンピューティングの提供
アプリケーションは、レプリケートされた分散キャッシングにCoherenceを使用します。アプリケーションは、データ・キャッシュへのアクセスに、リソース・インジェクションまたはコンポーネントベースのJNDIルックアップを使用します。Oracle WebLogic Server管理コンソールおよびOracle WebLogic Scripting Toolは、Coherenceクラスタの管理および構成に使用します。Coherence統合を使用すると、アプリケーション・データのキャッシングおよびレプリケートされたセッション状態の格納専用のデータ層を作成できます。これはアプリケーション層(アプリケーションの実行専用のWebLogic Serverインスタンス)から分離されます。
詳細は、「WebLogic Server用Coherenceアプリケーションの作成」を参照してください
セッション状態の永続性および管理の提供
Coherence*Webを使用すると、WebLogic Server上で実行されるアプリケーションにCoherenceベースのHTTPセッション状態の永続性を提供できます。Coherence*Webは、異なる複数のWebアプリケーション、ドメインおよび異機種のアプリケーション・サーバー間におけるHTTPセッション共有および管理を実現します。セッション・データは、アプリケーション・サーバー外のデータ・キャッシュに格納できるため、アプリケーション・サーバーのヒープ・スペースを解放し、セッション・データを消失させずにサーバーを再起動できます。
Coherence*WebとWebLogic Serverアプリケーションの使用の詳細は、『Oracle Coherence*WebでのHTTPセッション・マネージメントの管理』を参照してください。
データ・キャッシュ内のJava Persistence API (JPA)エンティティへのアクセス
TopLink Gridのリレーショナルとオブジェクトのマッピング機能によって、データベース問合せおよび結果セットのコピーをCoherenceデータ・キャッシュに格納できます。この機能により、データベース・アクセスは、必要なデータのキャッシュされたコピーが存在しない場合、またはデータベースに対して永続的である必要がある作成、更新または削除操作をアプリケーションが実行する場合にのみ発生します。この追加の最適化により、システムのスケーラビリティおよびパフォーマンスが向上します。
TopLink Gridを使用すると、JPAエンティティ・キャッシングが可能になります。これにより、複数のクラスタ・ノードにわたる非常に規模の大きい、共有グリッド・キャッシュをサポートできます。データ・キャッシュにオブジェクトが含まれていない場合は、データベースへの問合せが行われます。
TopLink Gridでは、問合せをCoherenceに向けることもできます。目的の問合せ結果がキャッシュに見つからない場合は、データベースから読み取り、キャッシュに配置して以降の問合せで使用可能にできます。Coherenceでは非常に多くのオブジェクトを管理できるため、結果がキャッシュで見つかる可能性が高くなり、1つのクラスタ・メンバーでの読取り操作がすぐに他のメンバーも利用可能になります。
データベースへのJPAエンティティの書込みは、TopLink Gridでも実現可能です。アプリケーションは、JPAエンティティを直接データベースに書き込んでからデータ・キャッシュに入れるか(データベースの状態を反映するため)、またはJPAエンティティをデータ・キャッシュに入れて、データ・キャッシュからデータベースに書き込まれるようにすることができます。
詳細は、「リレーショナル・データへのアクセスおよびその取得」を参照してください
WebLogic Serverにデプロイされる一般的なCoherenceアプリケーションには、次の構成ファイルが含まれます。主要なCoherence構成ファイルの詳細は、『Oracle Coherenceでのアプリケーションの開発』を参照してください。
キャッシュ構成ファイル: このファイルは、Coherenceクラスタ内で使用可能な様々なタイプのキャッシュを指定するために使用され、ほとんどの場合はcoherence-cache-config.xml
という名前が付けられます。通常、このファイルはキャッシュ構成デプロイメント・ディスクリプタと呼ばれます。このファイルのスキーマは、coherence-cache-config.xsd
ファイルです。このファイルの要素の詳細なリファレンスは、『Oracle Coherenceでのアプリケーションの開発』を参照してください。
POF構成ファイル – このファイルは、Portable Object Format (POF)を使用してオブジェクトをシリアライズする場合のカスタム・データ型の指定に使用するもので、通常はpof-config.xml
という名前になります。通常、このファイルはPOF構成デプロイメント・ディスクリプタと呼ばれます。このファイルのスキーマは、coherence-pof-config.xsd
ファイルです。このファイルの要素の詳細なリファレンスは、『Oracle Coherenceでのアプリケーションの開発』を参照してください。
Coherenceアプリケーション・デプロイメント・ディスクリプタ – このファイルは、管理対象CoherenceサーバーにデプロイされるCoherenceアプリケーション・モジュールの構成に使用されます。ディスクリプタにおける要素の完全な参照は、「coherence-application.xmlデプロイメント・ディスクリプタの要素」を参照してください。
Coherenceアプリケーションは、デプロイメントに特定のディレクトリ構造を使用します。Coherenceアプリケーションは、このディレクトリ構造内のファイルのコレクション(展開済ディレクトリ形式)としてデプロイするか、.gar
拡張子を持つグリッド・アーカイブ(GAR)と呼ばれるアーカイブ・ファイルとしてデプロイすることができます。デプロイメント用にアプリケーションをパッケージ化する方法については、「Coherenceアプリケーションのパッケージ化」を参照してください。そのディレクトリ構造は次のとおりです。
MyCohApp/ lib/ META-INF/ coherence-application.xml
スタンドアロンGARは、Coherenceデータ層のすべての管理対象Coherenceサーバーにデプロイされます。また、GARはEAR内にパッケージ化され、アプリケーション層に存在するすべての管理対象Coherenceサーバーにデプロイされる必要もあります。デプロイメントの詳細は、「WebLogic ServerでのCoherenceアプリケーションのデプロイ」を参照してください。
CoherenceアプリケーションをスタンドアロンGARモジュールとして作成する場合と、エンタープライズ・アプリケーションの一部としてパッケージ化する場合の両方の手順を、次にまとめます。これらの手順の詳細は、このガイドで説明します。Coherenceアプリケーションの例全体については、WebLogic Serverインストールに付属のWebLogic Server Code Examplesを参照してください。
META-INF/
およびlib/
の2つのサブディレクトリを含む、ステージング・ディレクトリを作成します。
MyCohApp/ lib/ META-INF/
Coherenceアプリケーション・アーティファクトをステージング・ディレクトリに含めます。Coherenceアプリケーションの作成方法の詳細は、「WebLogic Server用Coherenceアプリケーションの作成」を参照してください
Coherenceアプリケーションのクラス・ファイルを、適切なパッケージ構造のステージング・ディレクトリのルートに配置します。例:
MyCohApp/ com/ myco/ MyClass.class MySerializer.class lib/ META-INF/
アプリケーションの依存ライブラリをlib/
ディレクトリに配置します。
MyCohApp/ com/ myco/ MyClass.class MySerializer.class lib/ dependency.jar META-INF/
coherence-cache-config.xml
およびpof-config.xml
ファイルをMETA-INF/
ディレクトリに含めます。
MyCohApp/ com/ myco/ MyClass.class lib/ dependency.jar META-INF/ coherence-cache-config.xml pof-config.xml
META-INF
ディレクトリにcoherence-application.xml
ファイルを作成します。
MyCohApp/ com/ myco/ MyClass.class lib/ dependency.jar META-INF/ coherence-application.xml coherence-cache-config.xml pof-config.xml
coherence-application.xml
ファイルを編集し、<cache-configuration-ref>
および<pof-configuration-ref>
要素をそれぞれ使用して構成ファイルの場所を含めます。
<?xml version="1.0"?> <coherence-application> xmlns="http://xmlns.oracle.com/coherence/coherence-application"> <cache-configuration-ref>META-INF/coherence-cache-config.xml </cache-configuration-ref> <pof-configuration-ref>META-INF/pof-config.xml</pof-configuration-ref> </coherence-application>
Coherenceデータ層へのデプロイメント用に、CoherenceアプリケーションをGARファイルとしてパッケージ化します。次に、Coherenceアプリケーション層へのデプロイメント用に、GARファイルをEAR内にパッケージ化します。Coherenceアプリケーションのデプロイの詳細は、「WebLogic ServerでのCoherenceアプリケーションのデプロイ」を参照してください。
コマンド行から、ディレクトリをステージング・ディレクトリのルートに変更します。
Javaのjar
コマンドを使用して、.gar
拡張子を付けてアーカイブを圧縮します。例:
jar cvf MyCohApp.gar *
GARをコピーし、それをエンタープライズ・アプリケーション・ディレクトリ構造内にパッケージ化します。EARの作成方法の詳細は、『Oracle WebLogic Serverアプリケーションの開発』を参照してください。例:
MyEAR/ META-INF/ application.xml weblogic-application.xml MyWAR.war MyEJB.jar MyCohApp.gar
weblogic-application.xml
ファイルは、GAR用のモジュール・リファレンスを含む必要があります。例:
<weblogic-application> <module> <name>MyCohApp</name> <type>GAR</type> <path>MyCohApp.gar</path> </module> </weblogic-application>