OpenJPA キャッシュ・プラグインの構成

OpenJPA の場合、DataCache 実装と QueryCache 実装の両方を構成できます。

始める前に

手順

  1. persistence.xml ファイル内のプロパティーを設定して、OpenJPA キャッシュ・プラグインを構成します。 DataCache 実装または QueryCache 実装でこれらのプロパティーを設定できます。

    DataCache および QueryCache 構成は、互いに独立しています。いずれかの構成を使用可能にすることができます。ただし、両方の構成を使用可能にした場合、QueryCache 構成では、DataCache 構成と同じ構成が使用され、その構成プロパティーは廃棄されます。

    <property name="openjpa.DataCache"
              value="<object_grid_datacache_class(<property>=<value>,...)"/>
    または
    <property name="openjpa.QueryCache"
              value="<object_grid_querycache_class(<property>=<value>,...)"/>
    注: QueryCache 構成を使用可能にできるのは、組み込みトポロジーと組み込みイントラドメイン・トポロジーの場合のみです。
    ObjectGrid キャッシュ・クラスのプロパティー・リストに ObjectGridName プロパティー、ObjectGridType プロパティー、その他の単純なデプロイメント・ポリシー関連のプロパティーを指定すれば、キャッシュ構成をカスタマイズすることができます。次に例を挙げます。
    <property name="openjpa.DataCache"
              value="com.ibm.websphere.objectgrid.openjpa.ObjectGridDataCache(
              ObjectGridName=BasicTestObjectGrid,ObjectGridType=EMBEDDED, 
              maxNumberOfReplicas=4)"/>
    <property name="openjpa.QueryCache"
              value="com.ibm.websphere.objectgrid.openjpa.ObjectGridQueryCache()"/>
    <property name="openjpa.RemoteCommitProvider" value="sjvm"/>
    設定できるプロパティーのリストについては、JPA キャッシュ構成プロパティーを参照してください。
  2. persistence.xml ファイル内では、openjpa.RemoteCommitProvider プロパティーを sjvm に設定する必要もあります。
    <property name="openjpa.RemoteCommitProvider" value="sjvm"/>
  3. オプション: キャッシュで使用するデータ・グリッドをさらにカスタマイズするには、XML ファイルを 使用して追加設定を指定できます。

    ほとんどのシナリオでは、キャッシュ・プロパティーを設定すれば十分です。キャッシュによって使用される ObjectGrid をさらにカスタマイズするには、OpenJPA ObjectGrid 構成 XML ファイルを、 persistence.xml ファイルと同様に META-INF ディレクトリーに提供することができます。 初期化時に、キャッシュはこれらの XML ファイルを検索し、検出されるとそれらのファイルを処理します。

    OpenJPA ObjectGrid 構成 XML ファイルには次の 3 つのタイプがあります。
    • openjpa-objectGrid.xml (ObjectGrid 構成)

      ファイル・パス: META-INF/openjpa-objectGrid.xml

      このファイルは、EMBEDDED および EMBEDDED_PARTITION タイプの両方に対して ObjectGrid 構成をカスタマイズする場合に使用されます。REMOTE タイプの場合、このファイルは無視されます。デフォルトでは、各エンティティー・クラスは、ObjectGrid 構成内のエンティティー・クラス名として名付けられた独自の BackingMap 構成にマップされます。例えば、com.mycompany.Employee エンティティー・クラスは、com.mycompany.Employee BackingMap にマップされます。デフォルト BackingMap 構成は、readOnly="false"copyKey="false"lockStrategy="NONE"、および copyMode="NO_COPY" です。一部の BackingMap を選択された構成でカスタマイズできます。ALL_ENTITY_MAPS 予約キーワードを使用すれば、openjpa-objectGrid.xml ファイルにリストされた他のカスタマイズ・マップを除くすべてのマップを示すことができます。この openjpa-objectGrid.xml ファイルにリストされていない BackingMap は、デフォルト構成を使用します。カスタマイズされた BackingMaps が BackingMaps 属性またはプロパティーを指定しておらず、それらの属性がデフォルト構成で指定されている場合は、デフォルト構成の属性値が適用されます。例えば、エンティティー・クラスが timeToLive=30 でアノテーションを付けられている場合、そのエンティティーのデフォルトの BackingMap 構成には timeToLive=30 が設定されます。カスタム openjpa-objectGrid.xml ファイルにもその BackingMap が含まれているが、timeToLive 値を指定していない場合、カスタマイズされた BackingMap には、デフォルトで、timeToLive=30 値が設定されます。openjpa-objectGrid.xml ファイルは、デフォルト構成をオーバーライドまたは拡張しようとします。

    • openjpa-objectGridDeployment.xml (デプロイメント・ポリシー)

      ファイル・パス: META-INF/openjpa-objectGridDeployment.xml

      このファイルは、デプロイメント・ポリシーのカスタマイズに使用されます。デプロイメント・ポリシーをカスタマイズする場合、openjpa-objectGridDeployment.xml ファイルが提供されている場合は、デフォルトのデプロイメント・ポリシーは廃棄されます。デプロイメント・ポリシー属性値は、すべて openjpa-objectGridDeployment.xml ファイルから提供されます。

    • openjpa-objectGrid-client-override.xml (クライアント ObjectGrid オーバーライド構成)

      ファイル・パス: META-INF/openjpa-objectGrid-client-override.xml

      このファイルは、クライアント・サイド ObjectGrid のカスタマイズに使用されます。デフォルトでは、ObjectGrid キャッシュは、ニア・キャッシュを使用不可にするデフォルト・クライアント・オーバーライド ObjectGrid 構成を適用します。アプリケーションがニア・キャッシュを必要とする場合、アプリケーションはこのファイルを提供し、numberOfBuckets="xxx" を指定することができます。デフォルトのクライアント・オーバーライドでは、numberOfBuckets="0" を設定し、ニア・キャッシュを使用不可にします。ニア・キャッシュは、openjpa-objectGrid-client-override.xml ファイルによって numberOfBuckets の値をゼロより大きい値に再設定すれば、アクティブにすることができます。 openjpa-objectGrid-client-override.xml ファイルの機能は、 openjpa-objectGrid.xml ファイルに似ています。このファイルは、デフォルトのクライアント ObjectGrid オーバーライド構成をオーバーライドまたは拡張します。

    構成された eXtreme Scale トポロジーに応じて、これらの 3 つの XML ファイルのいずれか任意のファイルを提供してそのトポロジーをカスタマイズすることができます。

    EMBEDDED と EMBEDDED_PARTITION のタイプの場合、3 つの XML ファイルの任意のいずれかを提供し、ObjectGrid、デプロイメント・ポリシー、およびクライアント ObjectGrid オーバーライド構成をカスタマイズできます。

    REMOTE ObjectGrid の場合、ObjectGrid キャッシュは動的 ObjectGrid を作成しません。代わりにキャッシュは、カタログ・サービスからクライアント・サイドの ObjectGrid を取得するだけです。openjpa-objectGrid-client-override.xml ファイルを提供して、クライアント ObjectGrid オーバーライド構成をカスタマイズできるだけです。

  4. オプション: (リモート構成のみ) REMOTE ObjectGrid タイプのキャッシュを構成する場合、外部 eXtreme Scale システムをセットアップします。

    REMOTE ObjectGrid タイプでキャッシュを構成する場合、外部 eXtreme Scale システムをセットアップする必要があります。外部システムをセットアップするためには、persistence.xml ファイルに基づく ObjectGrid および ObjectGridDeployment 構成 XML ファイルの両方が必要になります。これらの構成ファイルの例については、例: OpenJPA ObjectGrid XML ファイルを参照してください。

タスクの結果

EMBEDDED、EMBEDDED_PARTITION、またはドメイン内構成:

アプリケーションを開始すると、プラグインが 自動的にカタログ・サービスを検出または開始し、コンテナー・サーバーを開始し、コンテナー・サーバーを カタログ・サービスに接続します。それから、プラグインは、クライアント接続を使用して別のアプリケーション・サーバー・プロセスで実行されている ObjectGrid コンテナーおよびそのピアと通信します。

REMOTE 構成:

デプロイメント・ポリシーは JPA アプリケーションとは 別に指定されます。外部 ObjectGrid システムには、カタログ・サービスおよびコンテナー・サーバー・プロセスの両方があります。コンテナー・サーバーを始動する前に、カタログ・サービスを始動する必要があります。詳しくは、スタンドアロン・サーバーの始動コンテナー・サーバーの始動 を参照してください。

次のタスク