17.2. キャッシュストアの設定
17.2.1. キャッシュストアの設定 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
キャッシュストアはチェーンで設定されます。キャッシュの読み取り操作は、データの有効な null 以外の要素が見つかるまで、設定される順番でそれぞれのキャッシュストアをチェックします。書き込み操作は、
ignoreModifications
要素が特定のキャッシュストアに対して "true"
にされない限り、すべてのキャッシュストアに影響を与えます。
17.2.2. XML を使用したキャッシュストアの設定 (ライブラリーモード) リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
次の例は、JBoss Data Grid のライブラリーモードで XML を使用したキャッシュストアの設定を示しています。
この設定例で使用された要素とパラメーターの詳細については、「キャッシュストア設定の詳細 (ライブラリモード)」を参照してください。
17.2.3. プログラムを使用してキャッシュストアを設定 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下の例では、プログラムを使用してキャッシュストアを設定する方法を示します。
注記
この設定は単一ファイルキャッシュストア用です。
location
などの一部の属性は単一ファイルキャッシュストアに固有であり、他の種類のキャッシュストアには使用されません。
手順17.1 プログラムを使用してキャッシュストアを設定
ConfigurationBuilder
を使用して、新規の設定オブジェクトを作成します。passivation
要素は Red Hat JBoss Data Grid がストアと通信する方法に影響を与えます。パッシベーションは、インメモリーキャッシュからオブジェクトを削除し、システムやデータベースなどの 2 次データストアに書き込みます。パッシベーションはデフォルトでfalse
です。addSingleFileStore()
要素は、この設定用のキャッシュストアとして SingleFileStore を追加します。addStore
メソッドを使用して追加できる、JDBC キャッシュストアなどの他のストアを作成することができます。shared
パラメーターは、キャッシュストアが異なるキャッシュインスタンスによって共有されていることを示します。たとえば、クラスター内のすべてのインスタンスが、同じリモートの共有データベースと通信するために同じ JDBC 設定を使用する場合があります。shared
は、デフォルトでfalse
になります。true
に設定すると、異なるキャッシュインスタンスによって重複データがキャッシュストアに書き込まれることが避けられます。preload
要素はデフォルトではfalse
に設定されます。true
に設定されると、キャッシュストアに保存されたデータは、キャッシュの起動時にメモリーにプリロードされます。これにより、キャッシュストアのデータが起動後すぐに利用できるようになり、データのレイジーなロードの結果としてキャッシュ操作の遅延を防ぐことができます。プリロードされたデータは、ノード上でローカルにのみに保存され、プリロードされたデータのレプリケーションや分散は行われません。JBoss Data Grid は、エビクションのエントリーの最大設定数までの数をプリロードします。fetchPersistentState
要素は、キャッシュの永続状態をフェッチするかどうかを決定し、クラスターに参加する際にこれをローカルキャッシュストアに適用します。キャッシュストアが共有される場合、キャッシュが同じキャッシュストアにアクセスする際に、フェッチ永続状態は無視されます。複数のキャッシュストアでこのプロパティーがtrue
に設定された場合にキャッシュサービスを起動すると、設定の例外がスローされます。fetchPersistentState
プロパティーはデフォルトではfalse
です。ignoreModifications
要素は、書き込み操作を共有キャッシュストアではなく、ローカルファイルキャッシュストアに許可することで、書き込みメソッドを特定のキャッシュストアにプッシュするかどうかを決定します。場合によっては、一時的なアプリケーションデータが、インメモリーキャッシュと同じサーバー上のファイルベースのキャッシュストアにのみ存在する必要があります。たとえば、これはネットワーク内のすべてのサーバーによって使用される追加の JDBC ベースのキャッシュストアで適用されます。ignoreModifications
はデフォルトではfalse
です。purgeOnStartup
要素は、キャッシュストアの起動時にキャッシュストアをパージするかどうかを制御し、デフォルトではfalse
になります。location
要素設定は、ストアが書き込みできるディスクの場所を設定します。- これらの属性は、それぞれのキャッシュストアに固有の側面を設定します。例えば、
location
属性は、SingleFileStore がデータが含まれるファイルを維持する場所を指します。他のストアには、さらに複雑な設定が必要な場合があります。 singletonStore
要素を使用すると、クラスター内の 1 つのノードのみで変更を保存できます。このノードはコーディネーターと呼ばれます。コーディネーターは、インメモリー状態のキャッシュをディスクにプッシュします。この機能は、すべてのノードのenabled
属性をtrue
に設定することによりアクティベートされます。shared
パラメーターは、singleton
を同時に有効にした状態で定義することはできません。enabled
属性はデフォルトではfalse
です。pushStateWhenCoordinator
要素はデフォルトではtrue
に設定されます。true
の場合、このプロパティーにより、コーディネーターになったノードがインメモリー状態を基礎となるキャッシュストアに転送します。このパラメーターは、コーディネーターがクラッシュし、新規のコーディネーターが選択される場合に役に立ちます。
17.2.4. SKIP_CACHE_LOAD フラグについて リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Red Hat JBoss Data Grid のリモートクライアントモードでは、キャッシュがキャッシュストアからプレロードされ、エビクションが無効な場合に、読み取り要求がメモリーに移動します。読み取り要求時にエントリーがメモリー内にないと、キャッシュストアがアクセスされ、読み取りパフォーマンスが影響を受けることがあります。
キーがメモリーにない場合にキャッシュストアの参照を回避するには、
SKIP_CACHE_LOAD
フラグを使用します。