19.2. キャッシュストア設定の詳細 (ライブラリモード)
以下の一覧には、JBoss Data Grid のライブラリーモードでのキャッシュストア要素の設定要素とパラメーターに関する詳細が含まれます。以下の一覧は各要素の特定のパラメーターを強調表示するためのもので、詳細の一覧についてはスキーマを参照していただくことができます。
persistence 要素
passivationパラメーターは、Red Hat JBoss Data Grid がストアと対話する方法に影響を与えます。オブジェクトがインメモリーキャッシュから削除されると、パッシベーションによりオブジェクトがシステムやデータベースなどの 2 次データストアに書き込まれます。このパラメーターの有効な値は、trueとfalseですが、passivationはデフォルトでfalseに設定されます。
file-store 要素
sharedパラメーターは、異なるキャッシュインスタンスによってキャッシュストアが共有されていることを示します。たとえば、クラスター内のすべてのインスタンスが、同じリモートの共有データベースと通信するために同じ JDBC 設定を使用する場合があります。sharedは、デフォルトでfalseになります。trueに設定すると、異なるキャッシュインスタンスによって重複データがキャッシュストアに書き込まれることが避けられます。LevelDB キャッシュストアの場合は、このパラメーターを設定から除外するか、falseに設定する必要があります (このキャッシュストアの共有はサポートされていません)。preloadパラメーターはデフォルトでfalseに設定されます。trueに設定されると、キャッシュストアに保存されたデータは、キャッシュの起動時にメモリーにプリロードされます。これにより、キャッシュストアのデータが起動後すぐに利用できるようになり、データのレイジーなロードの結果としてキャッシュ操作の遅れを防ぐことができます。プリロードされたデータは、ノード上でローカルにのみに保存され、プリロードされたデータのレプリケーションや分散は行われません。Red Hat JBoss Data Grid は、エビクションのエントリーの最大設定数までの数のエントリーをプリロードします。fetch-stateパラメーターは、キャッシュの永続ステートを取り込むかどうかを決定し、クラスターに参加する際にこれをローカルキャッシュストアに適用します。キャッシュストアが共有される場合、キャッシュが同じキャッシュストアにアクセスする際に、fetch persistent 状態は無視されます。複数のキャッシュストアでこのプロパティーがtrueに設定されている場合にキャッシュサービスを起動すると、設定の例外がスローされます。fetch-stateプロパティーはデフォルトではfalseです。- ルックアップを迅速化するために、単一ファイルキャッシュストアはキーのインデックスとファイル内のそれらの場所を保持します。このインデックスがメモリー消費の問題の原因になるのを避けるために、このキャッシュストアは、
max-entriesパラメーターで定義される、保存されるエントリーの最大数でバインドすることができます。この制限の上限を上回る場合は、LRU アルゴリズムを使用してエントリーをインメモリーインデックスと基礎となるファイルベースのキャッシュストアの両方から永久的に削除できます。デフォルト値は-1で、無制限のエントリーを許可します。 singletonパラメーターは、シングルトンストアのキャッシュストアを有効にします。SingletonStore は、クラスター内の唯一のインスタンスが基礎となるストアと通信する場合にのみ使用される委譲するキャッシュストアです。ただし、singletonパラメーターはfile-storeには推奨されません。デフォルト値はfalseです。purgeパラメーターは、起動時にキャッシュストアがパージされるかどうかを制御します。location設定要素は、ストアが書き込みできるディスクの場所を設定します。
ライトビハインド要素
write-behind 要素には、キャッシュストアのさまざまな側面を設定するパラメーターが含まれます。
thread-pool-sizeパラメーターは、変更をストアに同時に適用するスレッドの数を指定します。このパラメーターのデフォルト値は1です。flush-lock-timeoutパラメーターは、キャッシュストアに定期的にフラッシュされる状態を保護するロックを取得するための時間を指定します。このパラメーターのデフォルト値は1です。modification-queue-sizeパラメーターは、非同期ストアの変更キューのサイズを指定します。基礎となるキャッシュストアがこのキューを処理するよりも速く更新される場合に、その期間において非同期ストアは同期ストアのように動作し、キューがさらに要素を許可できるようになるまでブロックします。このパラメーターのデフォルト値は1024要素です。shutdown-timeoutパラメーターは、キャッシュストアを停止するのにかかる最大時間を指定します。このパラメーターのデフォルト値は25000ミリ秒です。
remote-store 要素
cache属性は、リモート Infinispan クラスターで接続するリモートキャッシュの名前を指定します。リモートキャッシュの名前が指定されないと、デフォルトのキャッシュが使用されます。fetch-state属性がtrueに設定されると、リモートキャッシュがクラスターに参加したときに永続状態が取り込まれます。複数のキャッシュストアがチェーン化されている場合、1 つのキャッシュストアだけでこのプロパティーをtrueに設定できます。この値のデフォルトはfalseです。shared属性は、複数のキャッシュインスタンスがキャッシュストアを共有する場合にtrueに設定されます。これにより、複数のキャッシュインスタンスが同じ変更内容を個別に書き込むことを防ぐことができます。この属性のデフォルト値はfalseです。preload属性を使用すると、キャッシュストアデータがメモリーにプリロードされ、起動後すぐにアクセス可能になります。これをtrueに設定すると、起動時間が増加するという不利な点もあります。この属性のデフォルト値はfalseです。singletonパラメーターは、SingletonStore の委譲するキャッシュストアを有効にします。これは、クラスター内の唯一のインスタンスが基礎となるストアと通信する場合にのみ使用されます。デフォルト値はfalseです。purge属性を使用すると、キャッシュストアが起動プロセスでパージされます。この属性のデフォルト値はfalseです。tcp-no-delay属性は、TCPNODELAYスタックをトリガーします。この属性のデフォルト値はtrueです。ping-on-start属性は、クラスタートポロジーを取り込むために ping 要求をバックエンドサーバーに送信します。この属性のデフォルト値はtrueです。key-size-estimate属性は、キーサイズの推定値を提供します。この属性のデフォルト値は64です。value-size-estimate属性は、値をシリアライズおよびデシリアライズする時のバイトバッファーのサイズを指定します。この属性のデフォルト値は512です。force-return-values属性は、FORCE_RETURN_VALUEをすべての呼び出しに対して有効にするかどうかを設定します。この属性のデフォルト値はfalseです。
remote-server 要素
remote-store 要素内の remote-server 要素を作成し、サーバー情報を定義します。
host属性はホストアドレスを設定します。port属性は、リモートキャッシュストアで使用されるポートを設定します。これはデフォルトで11222になります。
connection-pool 要素 (リモートストア)
max-activeパラメーターは、一度に各サーバーに設定できるアクティブな接続の最大数を示します。この属性のデフォルト値は-1であり、これはアクティブな接続の無限な数を示します。max-idleパラメーターは、一度に各サーバーに設定できるアイドル状態の接続の最大数を示します。この属性のデフォルト値は-1であり、これはアイドル状態の接続の無限な数を示します。max-totalパラメーターは、組み合わされたサーバーセット内の永続的な接続の最大数を示します。この属性のデフォルト設定は-1であり、これは接続の無限な数を示します。min-idle-timeパラメーターは、常に利用可能にする必要のある (各サーバーの) アイドル状態の接続の最小数のターゲット値を設定します。パラメーターが正の数値とtimeBetweenEvictionRunsMillis> 0 に設定される場合、アイドル状態の接続のエビクションスレッドが実行されるたびに、各サーバーでminIdleアイドルインスタンスを利用できるように十分な数のアイドルインスタンスを作成しようとします。このパラメーターのデフォルト設定は1です。eviction-intervalパラメーターは、アイドル接続の検査の「実行」前にエビクションスレッドをスリープ状態にする必要のある時間を示します。正の数値でない場合、エビクションスレッドは起動しません。このパラメーターのデフォルト設定は120000ミリ秒、つまり 2 分です。min-evictable-idle-timeパラメーターは、アイドル時間により接続がエビクションの候補となる前にプール内でアイドル状態になる最小時間を指定します。正の数値でない場合、アイドル時間によりプールからドロップされる接続はありません。この設定はtimeBetweenEvictionRunsMillis> 0 でない限り影響を与えません。このパラメーターのデフォルト設定は1800000つまり (30 分) です。test-idleパラメーターは、アイドル接続のエビクションの実行時に TCP パケットをサーバーに送信してアイドル状態の接続を検証するかどうかを示します。検証に失敗する接続はプールからドロップします。この設定はtimeBetweenEvictionRunsMillis> 0 でない限り影響を与えません。このパラメーターのデフォルト設定はtrueです。
leveldb-store 要素
relative-toパラメーターは、キャッシュ状態を格納するためのベースディレクトリーを指定します。pathパラメーターはキャッシュ状態を格納するためのrelative-toパラメーター内の位置を指定します。sharedパラメーターは、キャッシュストアを共有するかどうかを指定します。LevelDB キャッシュストアのこのパラメーターについてサポートされる唯一の値はfalseです。preloadパラメーターは、キャッシュストアをプリロードするかどうかを指定します。有効な値はtrueとfalseです。block-sizeパラメーターはキャッシュストアのブロックサイズを定義します。singletonパラメーターは、SingletonStore の委譲するキャッシュストアを有効にします。これは、クラスター内の唯一のインスタンスが基礎となるストアと通信する場合にのみ使用されます。デフォルト値はfalseです。cache-sizeパラメーターはキャッシュストアのキャッシュサイズを定義します。clear-thresholdパラメーターはキャッシュストアのキャッシュクリアのしきい値を定義します。
jpa-store 要素
persistence-unit属性は、JPA キャッシュストアの名前を指定します。entity-class属性は、キャッシュエントリー値を格納するために使用する JPA エントリーの完全修飾クラス名を指定します。batch-size(オプション) 属性は、キャッシュストアストリーミングのバッチサイズを指定します。この属性のデフォルト値は100です。store-metadata(オプション) 属性は、キャッシュストアがメタデータ (失効やバージョンに関する情報など) を保持するかどうかを指定します。この属性のデフォルト値はtrueです。singletonパラメーターは、SingletonStore の委譲するキャッシュストアを有効にします。これは、クラスター内の唯一のインスタンスが基礎となるストアと通信する場合にのみ使用されます。デフォルト値はfalseです。
binary-keyed-jdbc-store 要素、string-keyed-jdbc-store、および mixed-keyed-jdbc-store 要素
fetch-stateパラメーターは、クラスターへ参加する時に永続状態が取り込まれるかを決定します。クラスター環境でレプリケーションとインバリデーションを使用している場合は、これをtrueに設定します。さらに、複数のキャッシュストアがチェーン化されている場合、1 つのキャッシュストアのみがこのプロパティーを有効に設定できます。共有キャッシュストアが使用されている場合、キャッシュは、このプロパティーがtrueに設定されているにも関わらず、永続状態の転送を許可しません。fetch-stateパラメーターはデフォルトではfalseに設定されます。singletonパラメーターは、SingletonStore の委譲するキャッシュストアを有効にします。これは、クラスター内の唯一のインスタンスが基礎となるストアと通信する場合にのみ使用されます。デフォルト値はfalseです。purgeパラメーターは、初回の起動時にキャッシュストアをパージするかどうかを指定します。key-to-string-mapperパラメーターは、キーをデータベーステーブルの文字列にマップするために使用されるクラス名を指定します。
connection-pool 要素 (JDBC ストア)
connection-urlパラメーターは、JDBC ドライバー固有の接続 URL を指定します。usernameパラメーターには、connection-urlで接続するために使用されるユーザー名が含まれます。passwordには、connection-urlで接続する際に使用するパスワードが含まれます。driverパラメーターは、データベースに接続するために使用されるドライバーのクラス名を指定します。
binary-keyed-table 要素および string-keyed-table 要素
prefix属性は、キャッシュバケットテーブルの名前を作成する際に、ターゲットキャッシュの名前に付与される文字列を定義します。drop-on-exitパラメーターは、シャットダウン時にデータベーステーブルがドロップされるかどうかを指定します。create-on-startパラメーターは、スタートアップ時にストアによってデータベーステーブルが作成されるかどうかを指定します。fetch-sizeパラメーターは、このテーブルからクエリーを実行する際に使用するサイズを指定します。このパラメーターを使用し、クエリーのサイズが大きくなった場合のヒープメモリーの消費を防ぎます。batch-sizeパラメーターは、このテーブルの変更時に使用されるバッチサイズを指定します。
id-column 要素、data-column 要素、および timestamp-column 要素
nameパラメーターは、使用される列の名前を指定します。typeパラメーターは、使用される列のタイプを指定します。
custom-store 要素
classパラメーターは、キャッシュストア実装のクラス名を指定します。preloadパラメーターは、起動中にエントリーをキャッシュにロードするかどうかを指定します。このパラメーターの有効な値はtrueとfalseです。sharedパラメーターは、キャッシュストアを共有するかどうかを指定します。これは、複数のキャッシュインスタンスがキャッシュストアを共有する場合に使用されます。このパラメーターに有効な値はtrueとfalseです。
property 要素
プロパティーは、プロパティータグ間のエントリーを保存された値にしてキャッシュストアの内部に定義できます。たとえば、以下の例では 1 の値が minOccurs に定義されます。
<property name="minOccurs">1</property>
<property name="minOccurs">1</property>
name属性は、プロパティーの名前を指定します。