15.4.3.2. 名前付きキャッシュ設定
キャッシュ名を環境変数の接頭辞として大文字で指定します。このように指定しないと、設定は反映されません。
たとえば、MyCache
と MYCACHE
の 2 つのキャッシュインスタンスを作成します。次に、MyCache_CACHE_TYPE=replicated
を設定して MyCache
インスタンスを設定します。この設定は有効ではありません。ただし、MYCACHE_CACHE_TYPE=replicated
を設定すると、MyCache
と MYCACHE
インスタンスの両方で設定が有効になります。
${CACHE_NAME}_CACHE_TYPE
-
このキャッシュを分散するか、複製するかどうかを決定します。
Distributed
(デフォルト)またはReplicated
のいずれかを指定できます。 ${CACHE_NAME}_CACHE_START
キャッシュの起動方法を設定します。以下のいずれかを指定します。
-
LAZY
: サービスまたはデプロイメントで要求されたときにキャッシュを開始します。これがデフォルトになります。 -
EAGER
: サーバーの起動時にキャッシュを起動します。
-
${CACHE_NAME}_CACHE_BATCHING
-
このキャッシュの呼び出しのバッチ処理を有効にします。この値は
true
またはfalse
(デフォルト)です。 ${CACHE_NAME}_CACHE_STATISTICS
-
統計を収集するようにキャッシュを設定します。値は
true
(デフォルト)またはfalse
です。パフォーマンスを向上させるために、値をfalse
に設定します。 ${CACHE_NAME}_CACHE_MODE
クラスター化されたキャッシュモードを設定します。以下のいずれかを指定します。
-
非同期操作の場合:
ASYNC
。 -
同期操作の場合:
SYNC
。
-
非同期操作の場合:
${CACHE_NAME}_CACHE_QUEUE_SIZE
-
キャッシュが
ASYNC
モードの場合は、レプリケーションキューをフラッシュするしきい値を設定します。デフォルト値は0
(フラッシュは無効)です。 ${CACHE_NAME}_CACHE_QUEUE_FLUSH_INTERVAL
-
ASYNC
モードでレプリケーションキューをフラッシュするスレッドの起動時間をミリ秒単位で指定します。デフォルト値は10
です。 ${CACHE_NAME}_CACHE_REMOTE_TIMEOUT
-
SYNC
モードでリモート呼び出しを行うときにタイムアウトまで確認応答を待つ時間をミリ秒単位で指定します。タイムアウトに達すると、リモート呼び出しが中断され、例外が発生します。デフォルト値は17500
です。 ${CACHE_NAME}_CACHE_OWNERS
-
各キャッシュエントリーのクラスター全体のレプリカの数を指定します。デフォルト値は
2
です。 ${CACHE_NAME}_CACHE_SEGMENTS
-
クラスターごとにハッシュ領域セグメントの数を指定します。推奨値は
10 * クラスターサイズ
です。デフォルト値は80
です。 ${CACHE_NAME}_CACHE_L1_LIFESPAN
-
L1 キャッシュに置かれたエントリーの最大有効期間をミリ秒単位で指定します。デフォルト値は
0
(L1 は無効)です。 ${CACHE_NAME}_CACHE_MEMORY_EVICTION_TYPE
キャッシュ内のエントリーの最大制限を定義します。以下の値を設定できます。
-
COUNT
は、キャッシュ内のエントリーの数を測定します。数が最大値を超えると、Data Grid は未使用のエントリーをエビクトします。 -
MEMORY
は、キャッシュ内のすべてのエントリーが占めるメモリの量を測定します。メモリーの合計サイズが最大値を超えると、Data Grid は未使用のエントリーをエビクトします。
-
${CACHE_NAME}_CACHE_MEMORY_STORAGE_TYPE
Data Grid がエントリーをキャッシュに保存する方法を定義します。以下の値を設定できます。
ストレージタイプ 詳細 エビクションタイプ ポリシー object
エントリーをオブジェクトとして Java ヒープに格納します。これはデフォルトのストレージタイプです。
カウント
TinyLFU
バイナリー
エントリーを
bytes[]
として Java ヒープに格納します。COUNT
またはMEMORY
TinyLFU
off-heap
エントリーを
bytes[]
として Java 外のネイティブメモリーに保存します。COUNT
またはMEMORY
LRU
${CACHE_NAME}_CACHE_MEMORY_EVICTION_SIZE
エビクションの開始前にキャッシュのサイズを設定します。この値は、ゼロよりも大きい数に設定します。
-
COUNT
の場合: サイズはエビクションの開始前にキャッシュが保持できるエントリーの最大数になります。 MEMORY
の場合: サイズはエビクションの開始前にキャッシュがメモリーから消費できる最大バイト数です。たとえば、10000000000
の値は 10 GB です。異なるキャッシュサイズを試し、最適な設定を決定します。キャッシュサイズが大きすぎることが原因で、Data Grid がメモリー不足になる可能性があります。同時に、キャッシュサイズが小さすぎる場合には、利用可能なメモリーを無駄にします。
注記JDBC ストアを設定する場合には、エビクションサイズをゼロより大きい値に設定するとパッシベーションは自動的に有効になります。
-
${CACHE_NAME}_CACHE_MEMORY_EVICTION_STRATEGY
Data Grid がエビクションを実行する方法を制御します。以下の値を設定できます。
ストラテジー 説明 NONE
Data Grid はエントリーを削除しません。これは、エビクションを構成しない限り、デフォルト設定です。
REMOVE
Data Grid は、キャッシュが構成されたサイズを超えないように、メモリーからエントリーを削除します。これは、エビクションを構成するときのデフォルト設定です。
MANUAL
Data Grid は削除を実行しません。削除は、
evict()
メソッドをCache
API から呼び出すことによって手動で行われます。EXCEPTION
Data Grid は、設定されたサイズを超える場合、キャッシュに新しいエントリーを書き込みません。キャッシュに新しいエントリーを書き込む代わりに、Data Grid は
ContainerFullException
スローします。${CACHE_NAME}_CACHE_MEMORY_OFF_HEAP_ADDRESS_COUNT
OFFHEAP
ストレージの使用時に競合を防ぐためにハッシュマップで利用可能なポインターの数を指定します。ハッシュマップの競合を防ぐことで、パフォーマンスが向上します。この値は、キャッシュエントリーの数よりも大きい数に設定します。デフォルトでは、
address-count
は 2^20 または 1048576 です。このパラメーターは常に 2 の累乗に丸められます。
${CACHE_NAME}_CACHE_EXPIRATION_LIFESPAN
-
キャッシュエントリーの最大有効期限(ミリ秒単位)を指定します。この有効期限をすぎると、エントリーはクラスター全体で無効になります。デフォルト値は
-1
(エントリーの有効期限なし)です。 ${CACHE_NAME}_CACHE_EXPIRATION_MAX_IDLE
-
キャッシュエントリーがキャッシュ内で保持される、最大アイドル時間(ミリ秒単位)を指定します。アイドル時間を超えると、エントリー全体が期限切れになります。デフォルト値は
-1
(有効期限なし)です。 ${CACHE_NAME}_CACHE_EXPIRATION_INTERVAL
-
メモリーおよびキャッシュストアから期限切れのエントリーをパージする間隔をミリ秒単位で指定します。デフォルト値は
5000
です。有効期限を無効にするには-1
を設定します。 ${CACHE_NAME}_JDBC_STORE_TYPE
設定する JDBC ストアのタイプを指定します。以下の値を設定できます。
-
string
-
バイナリー
-
${CACHE_NAME}_JDBC_STORE_DATASOURCE
データソースの jndiname を定義します。
たとえば、
MYCACHE_JDBC_STORE_DATASOURCE=java:jboss/datasources/ExampleDS
です。${CACHE_NAME}_KEYED_TABLE_PREFIX
-
キャッシュエントリーテーブルの名前の作成時に使用されるキャッシュ名の先頭にプレフィックスを定義します。defaule 値は
ispn_entry
です。 ${CACHE_NAME}_CACHE_INDEX
キャッシュのインデックスモードを設定します。以下の値を設定できます。
-
NONE
: これはデフォルトです。 -
LOCAL
-
ALL
-
${CACHE_NAME}_INDEXING_PROPERTIES
インデックスシステムに渡すプロパティーのコンマ区切りリストを指定します。
例:
MYCACHE_INDEXING_PROPERTIES=default.directory_provider=ram
${CACHE_NAME}_CACHE_SECURITY_AUTHORIZATION_ENABLED
-
このキャッシュの承認チェックを有効にします。この値は
true
またはfalse
(デフォルト)です。 ${CACHE_NAME}_CACHE_SECURITY_AUTHORIZATION_ROLES
このキャッシュへのアクセスに必要なロールを設定します。
例:
MYCACHE_CACHE_SECURITY_AUTHORIZATION_ROLES=admin, reader, writer
${CACHE_NAME}_CACHE_PARTITION_HANDLING_WHEN_SPLIT
ネットワークイベントを使用してノード間を分離する場合に、クラスターのノード間でパーティションを処理するためのストラテジーを設定します。Data Grid がキャッシュエントリーをマージして単一のクラスターを再形成するまで、パーティションは独立したクラスターとして機能します。以下の値を設定できます。
パーティション処理ストラテジー 詳細 ALLOW_READ_WRITES
任意のパーティションのノードは、キャッシュエントリーを読み書きできます。これはデフォルト値です。
DENY_READ_WRITES
以下の場合に、ノードは degraded モードになります。
* パーティションの 1 つ以上のハッシュスペースセグメントに所有者がない。
所有者
は、キャッシュエントリーのクラスター全体のレプリカ数です。* パーティションに含まれるノードの半分未満が直近の安定したクラスタートポロジーからである。
degraded モードでは、同じパーティションのノードのみがキャッシュエントリーを読み書きできます。キャッシュエントリーの所有者またはコピーがすべて同じパーティションに存在する必要があります。存在しない場合には、
AvailabilityException
で、読み取りまたは書き込み操作に失敗します。ALLOW_READS
ノードは、
DENY_READ_WRITES
ストラテジーと同様に degraded モードになります。任意のパーティションのノードは、キャッシュエントリーを読み取ることができます。degraded モードでは、同じパーティションのノードのみがキャッシュエントリーを書き込みできます。キャッシュエントリーの所有者またはコピーがすべて同じパーティションに存在する必要があります。存在しない場合には、
AvailabilityException
で、書き込み操作に失敗します。${CACHE_NAME}_CACHE_PARTITION_MERGE_POLICY
Data Grid がパーティションのマージ時に、キャッシュエントリー間で競合を解決する方法を設定します。以下の値を設定できます。
マージポリシー 詳細 NONE
パーティションをマージする時に、競合解決は実行されません。これはデフォルト値です。
PREFERRED_ALWAYS
常に
preferredEntry
を使用します。preferredEntry
は、ほとんどのノードが含まれるパーティションに存在するキャッシュエントリーのプライマリーレプリカです。パーティションにあるノードの数が同じ場合には、preferredEntry
は、トポロジー ID が最も高いパーティション (トポロジーが最も新しいパーティション) に存在するキャッシュエントリーになります。PREFERRED_NON_NULL
値(null 以外)がある場合は、
preferredEntry
を使用します。preferredEntry
に値がない場合は、otherEntries
で定義された最初のエントリーを使用します。REMOVE_ALL
競合が存在する場合は、キャッシュからエントリー(キーと値)を削除します。
${CACHE_NAME}_STATE_TRANSFER_TIMEOUT
クラスターの他のキャッシュインスタンスが状態をキャッシュに転送するまで待機する時間(ミリ秒単位)を設定します。タイムアウトが発生する前に他のキャッシュインスタンスが移行状態にならないと、アプリケーションは例外をスローし、起動を中止します。デフォルト値は
240000
(4 分)です。この環境変数を設定するには、カスタムテンプレートを使用する必要があります。デフォルトの Data Grid for OpenShift テンプレートで状態遷移タイムアウトを設定した場合には、有効になりません。