JPA キャッシュ構成プロパティー

WebSphere® eXtreme Scale には、OpenJPA と Hibernate Java Persistence API (JPA) プロバイダーの両方に対するレベル 2 のキャッシュ・プラグインが組み込まれています。L2 キャッシュ・プラグインを構成するには、persistence.xml ファイル内のプロパティーを更新する必要があります。

ヒント: JPA L2 キャッシュ・プラグインは、JPA API を使用するアプリケーションを必要とします。WebSphere eXtreme Scale API を使用して JPA データ・ソースにアクセスする場合は、JPA ローダーを使用します。詳しくは、JPA ローダーの構成を参照してください。

プロパティーの場所

これらのプロパティーは、persistence.xml ファイルの中で構成できます。これらのプロパティーをこのファイルの中で指定するための構文は、OpenJPA を使用しているか Hibernate を使用しているかによって異なります。

デフォルトのトポロジーおよびプロパティー

構成で何の値も指定されない場合、次のデフォルト・プロパティー値が使用されます。

プロパティー

次のプロパティーを使用して、JPA キャッシュ・プラグインを構成できます。

ObjectGridName
固有の ObjectGrid 名を指定します。デフォルト値は、定義済みのパーシスタンス・ユニット名になります。パーシスタンス・ユニット名が JPA プロバイダーから使用できない場合、生成名が使用されます。
ObjectGridType
ObjectGrid のタイプを指定します。

有効な値:

EMBEDDED
デフォルトおよび推奨の構成タイプ。そのデフォルト設定には、NumberOfPartitions=1ReplicaMode=SYNCReplicaReadEnabled=true および MaxNumberOfReplicas=47 が含まれます。 ReplicaMode パラメーターはレプリカ生成モードの設定に、MaxNumberOfReplicas パラメーターはレプリカの最大数の設定に使用します。システムに 47 を超える Java 仮想マシンがある場合、MaxNumberOfReplicas 値を Java 仮想マシン の数に等しくなるように設定します。
EMBEDDED_PARTITION
システムが、分散システムで大量のデータをキャッシュに入れる必要がある場合に使用するタイプ。デフォルトの区画数は 47 でレプリカ・モードは NONE です。少数の Java 仮想マシン のみを持つ小規模のシステムでは、NumberOfPartitionsJava 仮想マシン の数以下に設定します。 システムを調整するために、ReplicaModeNumberOfPartitions、 および ReplicaReadEnabled 値を指定できます。
REMOTE
キャッシュは、カタログ・サービスからリモートの分散 ObjectGrid に接続しようとします。
MaxNumberOfReplicas
キャッシュに使用されるレプリカの最大数を指定します。この値は、EMBEDDED タイプのみに適用されます。この数値は、システム内の Java 仮想マシン 数以上にする必要があります。デフォルト値は 47 です。

有効な値: 1 以上

MaxUsedMemory

有効な値: TRUE または FALSE

メモリーに余裕がなくなった場合にキャッシュ・エントリーの除去を使用可能にします。デフォルト値は TRUE で、JVM ヒープ使用率しきい値が 70 % を超えると、データの除去が開始されます。デフォルトの JVM ヒープ使用率しきい値の比率 (%) は、objectGridServer.properties ファイルの memoryThresholdPercentage プロパティーを設定し、このファイルをクラスパスに配置することによって変更することができます。 Evictor について詳しくは、 キャッシュ・オブジェクトの除去のためのプラグイン製品概要」で Evictor に関する情報を参照してください。 サーバー・プロパティー・ファイルに関して詳しくは、サーバー・プロパティー・ファイルを参照してください。
NumberOfPartitions

有効な値: 1 以上

キャッシュに使用される区画の数を指定します。このプロパティーは、 ObjectGridType の値が EMBEDDED_PARTITION に設定されている場合に適用されます。 デフォルト値は 47 です。EMBEDDED タイプの場合、 NumberOfPartitions 値は常に 1 です。
PlacementScope
マップ・セットの単一インスタンスの細分度を示します。
有効な値:
DOMAIN_SCOPE
(デフォルト) 区画ごとに 1 つのプライマリー断片をカタログ・サービス・ドメイン内のコンテナー・サーバーに配置します。 各区画のレプリカ断片は、カタログ・サービス・ドメイン内の他のコンテナー・サーバーに配置されます。
CONTAINER_SCOPE
カタログ・サービス・ドメイン内の各コンテナー・サーバーに、1 つのプライマリー断片を配置します。
PlacementScopeTopology
カタログ・サービス・ドメイン内のコンテナー・サーバーのリンク・トポロジーを定義します。この値は、PlacementScope 値が DOMAIN_SCOPE 以外の値に設定されたときにのみ使用します。
有効な値:
HUB
(デフォルト) ハブ・トポロジーが選択されると、1 つのデータ・グリッドがハブとして選択されます。その他のすべてのデータ・グリッドは、ハブに接続します。スポークの接続が 1 つであるため、このトポロジーは、極めて拡張が容易です。ハブは、ボトルネックおよび一時的な単一障害点となる可能性があります。ハブに障害が起こると、別のコンテナー・サーバーに再配置されます。この構成の利点は、単一ポイントであるハブがすべての競合に対処できる、さらに複雑なアービトレーション・コードを作成できることです。
RING
リング・トポロジーが選択されると、各データ・グリッドは他の 2 つのデータ・グリッドとリンクされます。リンクの順序は保証されません。 しかし、開始する各コンテナーは、リングに追加される最初のコンテナーと最後のコンテナーとにリンクされることが十分考えられます。このトポロジーが最もスケーラブルですが、2 つのリンクに障害が起こるだけで一時的に切断されてしまいます。コンテナー・サーバーに障害が起こると、障害が検出された後、残った正常なサーバーの間で、リンクが確立されます。
ReplicaMode

有効な値: SYNC/ASYNC/NONE

キャッシュをレプリカにコピーする場合に使用するメソッドを指定します。 このプロパティーは、ObjectGridType の値を EMBEDDED または EMBEDDED_PARTITION に設定している場合に適用されます。 デフォルト値は、EMBEDDED_PARTITION タイプの場合が NONE で、EMBEDDED タイプの場合は SYNC です。ReplicaMode が、EMBEDDED ObjectGridType の場合に NONE に設定されても、EMBEDDED タイプではやはり SYNCReplicaMode が使用されます。
ReplicaReadEnabled

有効な値: TRUE または FALSE

使用可能にする場合、クライアントはレプリカから読み込みます。 このプロパティーは、EMBEDDED_PARTITION タイプに適用されます。デフォルト値は、EMBEDDED_PARTITION タイプの場合 FALSE です。 EMBEDDED タイプの場合は、常に ReplicaReadEnabled の値は TRUE に設定されます。
writeBehind

Hibernate プロバイダーの場合のみ: writeBehind が使用可能になっていると、writeBehindInterval 条件または writeBehindMaxBatchSize 条件のどちらかが満たされるまで、更新は一時的に JVM の有効範囲データ・ストレージに保管されます。

重要: writeBehind が使用可能でない場合、他の後書き構成設定は無視されます。
重要: 後書き機能を使用する場合は注意してください。 後書き構成では、JVM 全体でデータを同期する待ち時間はさらに長くなり、更新が失われる可能性がより高くなります。 4 つ以上の JVM を使用可能にした後書き構成を持つシステムでは、1 つの JVM で実行された更新は、約 15 秒遅れてから、他の JVM で使用可能になります。 任意の 2 つの JVM が同じエントリーを更新する場合は、最初に更新をフラッシュする 1 つの JVM はその更新を失います。

有効な値: TRUE または FALSE

デフォルト値: FALSE

writeBehindInterval

Hibernate プロバイダーの場合のみ: 更新をキャッシュにフラッシュする時間間隔 (ミリ秒) を指定します。

有効な値: 1 以上

デフォルト値: 5000 (5 秒)

writeBehindPoolSize

Hibernate プロバイダーの場合のみ: 更新をキャッシュにフラッシュするときに使用するスレッド・プールの最大サイズを指定します。

有効な値: 1 以上

デフォルト値: 5

writeBehindMaxBatchSize

Hibernate プロバイダーの場合のみ: 更新をキャッシュにフラッシュするときの、領域キャッシュごとの最大バッチ・サイズを指定します。例えば、サイズが 1000 に設定されていて、領域キャッシュの後書きストレージに保管された更新が 1000 エントリーを超えた場合は、指定された writeBehindInterval 条件が満たされなくても、更新はキャッシュにフラッシュされます。 おおよそ writeBehindInterval 値に指定された秒ごとか、または各領域キャッシュの後書きストレージのサイズが 1000 エントリーを超えたときか、そのいずれかで、更新はキャッシュにフラッシュされます。 writeBehindMaxBatchSize 条件が一致する場合は注意してください。この条件に一致する領域キャッシュのみが後書きストレージの更新をキャッシュにフラッシュします。 領域キャッシュは、通常、エンティティーまたは照会に対応します。

有効な値: 1 以上

デフォルト値: 1000