この章では、TopLink Gridを紹介し、これを使用して高可用性を実現し、アプリケーションをスケール・アウトする方法を説明します。TopLink Gridの使用の詳細は、「Oracle Coherenceの統合」を参照してください。
この章の内容は次のとおりです。
ユース・ケース
JPAアプリケーションを、要求に対応するよう、また高可用性を実現するためにスケール・アウトする必要があります。
解決方法
TopLinkとCoherenceを統合したTopLink Gridを使用してこの実装を実現します。
コンポーネント
TopLink 12cリリース1 (12.1.2)以上。
注意: TopLinkのコア機能は、オープン・ソースのEclipse Foundationの永続性フレームワークであるEclipseLinkによって提供されています。EclipseLinkでは、Java Persistence API (JPA)、Java Architecture for XML Binding (JAXB)、および標準に基づいたその他の永続性テクノロジと、それらの標準の拡張が実装されます。TopLinkには、EclipseLinkのすべてに加え、Oracleの追加機能が含まれています。 |
TopLink Grid
Coherence
例
サンプル・アプリケーションへのリンクは、19.3項「その他の参考資料」を参照してください。
Oracle TopLink Gridは、EclipseLink JPAとCoherenceとの統合を可能にするOracle TopLinkの機能です。標準のJPAアプリケーションは、プライマリ・データ・ストア(一般的にリレーショナル・データベース)と直接対話します。ただし、TopLink Gridの場合、ドメイン・モデルの一部またはすべてをCoherenceデータ・グリッドに格納できます。この構成は、グリッド基盤のJPAとも呼ばれています。
TopLink Gridを構成して、Coherenceのプライマリ・データ・ストアとしての使用、グリッドに対する問合せの実行、およびCoherenceによる新規データと変更データにおける永続性の管理ができます。Coherenceでは、JPAとデータ・ストア間のレイヤーが提供されており、すべてのアプリケーション・インスタンスからデータベース・コールを直接オフロードできます。これにより、クラスタ化されたアプリケーションのデプロイメントでは、通常のデータベース操作の限界を超えるスケーラビリティが得られます
アプリケーションで使用できる一般的なTopLink Gridの構成は次のとおりです。
グリッド・キャッシュ構成。CoherenceをTopLink L2(共有)キャッシュとして使用します。この構成では、Coherenceのキャッシュにすべて事前ロードできずデータベースでホストされるデータに依存するJPAアプリケーションにCoherenceのデータ・グリッドを適用します。事前ロードができない理由には、Coherenceのフィルタの機能セットを超える非常に複雑な問合せ、古いキャッシュの原因となるサード・パーティ製データベースによる更新、ネイティブSQL問合せ、ストアド・プロシージャやトリガーへの依存などがあります。
この構成では、ローカルL2キャッシュを調整することなく、TopLinkを大規模なクラスタにスケール・アップできます。エンティティに対する更新は、トランザクションがコミットされると即時にすべてのCoherenceクラスタ・メンバーで使用可能になります。
グリッド・エンティティ構成。この構成は、(比較的安定した)大容量データへ高速にアクセスする必要があり、更新が比較的少ないアプリケーションに最適です。ライトビハインドを使用してこの構成をCoherenceキャッシュ・ストアと組み合せると、データベース更新を非同期に実行することにより、アプリケーションのレスポンス時間を向上させることができます。
グリッド読取り構成。この構成は、(比較的安定した)大容量データへ高速にアクセスして変更をデータベースへ同期的に書き込む必要のあるエンティティに最適です。これらのエンティティでは、Coherenceキャッシュへの移入にキャッシュ・ウォーミングが使用されますが、各問合せは必要に応じてデータベースに送信することもできます。
TopLink Gridの構成の完全な詳細およびTopLink Gridを使用したアプリケーション開発については、「Oracle Coherenceの統合」を参照してください。
この章のソリューションが実装されているその他のテクノロジおよびツールの詳細は、次の参考資料を参照してください。
コード例は、次からダウンロードできます。
http://www.oracle.com/technetwork/middleware/toplink/examples-325517-en-ca.html
Oracle® Fusion Middleware Oracle TopLink Java APIリファレンスのoracle.eclipselink.coherence.*
API