ヘッダーをスキップ
Oracle Coherence統合ガイド
リリース3.5
B56042-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

2 TopLink GridとOracle Coherenceの統合

Oracle TopLink Gridは、EclipseLink JPAとCoherenceとの統合を可能にするOracle TopLinkの機能です。TopLink Gridにより、Java Persistence API(JPA)を使用したアプリケーション開発の簡便性とOracle Coherence Data Gridのスケーラビリティや分散処理能力を組み合せることができます。標準のJPAアプリケーションは、プライマリ・データ・ストア(一般的にリレーショナル・データベース)と直接対話しますが、TopLink Gridの場合、ドメイン・モデルの一部またはすべてをCoherenceデータ・グリッドに格納できます。

2.1 CoherenceのCacheStoreとしてのTopLink Gridの使用

TopLink Gridでは、デフォルトのエンティティベースのCacheStore実装として、oracle.eclipselink.coherence.standaloneパッケージ内にあるEclipseLinkJPACacheStore、および対応するCacheLoader実装であるEclipseLinkJPACacheLoaderを提供します。これらの実装は、EclipseLink JPAでの使用に最適化されています。クラスおよびJavadocについては、toplink-grid.jarファイルを参照してください。


注意:

Oracle Release 11gR1より前は、TopLink Grid/Coherenceの統合用APIは、coherence-eclipselink.jarという名前のJARに含まれていました。

表2-1 EclipseLink JPA用のTopLink Gridクラス

クラス名 説明

oracle.eclipselink.coherence.standalone.CacheStore

EclipseLink JPAでの使用に最適化されたCacheStoreの実装

oracle.eclipselink.coherence.standalone.CacheLoader

EclipseLink JPAでの使用に最適化されたCacheLoaderの実装


2.1.1 EclipseLinkJPACacheStoreの構成

この項では、単純なEclipseLinkJPACacheStoreコンストラクタを紹介します。このコンストラクタには、キャッシュの名前(エンティティの非修飾名)および永続性ユニットの名前が必要になります。これは、デフォルトのコンフィギュレーション・パスを使用してToplink Gridを構成し、クラスパス内で構成ファイルpersistence.xmlおよびorm.xmlを探します。また、EclipseLinkコンフィギュレーション・ファイルのリソース名またはファイル仕様を第3の<init-param>として渡す機能もあります(リソース名の場合<param-type>要素をjava.lang.Stringに設定し、ファイル仕様の場合はjava.io.Fileに設定する)。

例2-1は、エンティティ(novels)のインスタンスをキャッシュする、Publisherという名前のNamedCacheの定義に使用される単純なcoherence-cache-config.xmlファイルを示しています。エンティティ・キャッシュを追加するには、<cache-mapping>要素を追加します。

例2-1 EclipseLink用のcoherence-cache-config.xmlファイルのサンプル

<?xml version="1.0"?>
<!DOCTYPE cache-config SYSTEM "cache-config.dtd">

<cache-config>
  <caching-scheme-mapping>
    <cache-mapping>
      <cache-name>Publisher</cache-name>
      <scheme-name>distributed-eclipselink</scheme-name>
    </cache-mapping>
  </caching-scheme-mapping>

  <caching-schemes>
    <distributed-scheme>
      <scheme-name>distributed-eclipselink</scheme-name>
      <service-name>EclipseLinkJPA</service-name>
      <backing-map-scheme>
        <read-write-backing-map-scheme>
          <internal-cache-scheme>
            <local-scheme/>
          </internal-cache-scheme>

<!-- Define the cache scheme -->
          <cachestore-scheme>
            <class-scheme>
              <class-name>
              oracle.eclipselink.coherence.standalone.EclipseLinkJPACacheStore
              </class-name>
              <init-params>
                <init-param>
                  <param-type>java.lang.String</param-type>
                  <param-value>{cache-name}</param-value>
                </init-param>
                <init-param>
                  <param-type>java.lang.String</param-type>
                  <param-value>novels</param-value>
                </init-param>
              </init-params>
            </class-scheme>
          </cachestore-scheme>
        </read-write-backing-map-scheme>
      </backing-map-scheme>
      <autostart>true</autostart>
    </distributed-scheme>
  </caching-schemes>
</cache-config>

2.2 ToplinkキャッシュとしてのCoherenceの使用

Toplink Gridを簡単に構成し、Coherenceのプライマリ・データ・ストアとしての使用、グリッドに対する問合せの実行、およびCoherenceによる新規データと変更データにおける永続性の管理ができます。Coherenceでは、JPAとデータストア間のレイヤーが提供されており、すべてのアプリケーション・インスタンスからデータベース・コールを直接オフロードできます。これにより、クラスタ化されたアプリケーションのデプロイメントでは、通常のデータベース操作の限界を超えるスケーラビリティが得られます。

アプリケーションで使用できる一般的なTopLink Gridの構成には次の3つがあります。

Toplink Grid用のCoherence構成に関する詳細は、Oracle Technology NetworkのOracle TopLink Gridのページを参照してください。

2.2.1 CoherenceおよびTopLink GridのAPIとファイル

TopLink Grid/Coherenceの統合用APIは、toplink-grid.jarに含まれています。この統合には、標準のJPAランタイム・コンフィギュレーション・ファイルpersistence.xmlおよびJPAマッピング・ファイルorm.xml(デフォルト名)も使用します。Coherenceキャッシュ・コンフィギュレーション・ファイルであるcoherence-cache-config.xml(デフォルト名)を指定して、デフォルトのCoherenceの設定をオーバーライドし、CacheStoreキャッシング・スキームを定義する必要があります。

表2-2に、EclipseLinkクラスの中で重要なクラスを示します。これらのクラスはTopLink Grid/Coherenceの統合で一般的に使用されます。クラスおよびJavadocについては、toplink-grid.jarファイルを参照してください。

表2-2 Toplink Grid/Coherenceの統合で一般的に使用されるEclipseLinkクラス

クラス名 説明

oracle.eclipseLink.coherence.integrated.EclipseLinkJPACacheLoader

JPA対応バージョンのCoherence CacheLoaderを提供します。

oracle.eclipseLink.coherence.integrated.EclipseLinkJPACacheStore

JPA対応バージョンのCoherence CacheStoreを提供します。

oracle.eclipselink.coherence.integrated.cache.CoherenceInterceptor

内部TopLink L2キャッシュに対するすべてのTopLinkコールをインターセプトし、それをCoherenceにリダイレクトします。

oracle.eclipselink.coherence.integrated.config.CoherenceReadCustomizer

Coherenceの読取り構成の設定に使用します。

oracle.eclipselink.coherence.integrated.config.CoherenceReadWriteCustomizer

Coherenceの読取り/書込み構成の設定に使用します。

oracle.eclipselink.coherence.integrated.querying.IgnoreDefaultRedirector

問合せはCoherenceのキャッシュをバイパスし直接データベースに送信されます。