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 次データストアに書き込みます。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 フラグを使用します。
17.2.5. SKIP_CACHE_STORE フラグについて リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
SKIP_CACHE_STORE フラグが使用されると、キャッシュストアは指定されたキャッシュ操作に対して考慮されません。このフラグは、関連付けられたキャッシュストアからキャッシュを取得せずにエントリーがキャッシュ内にあるかどうかを判別できると同時に、設定済みのキャッシュストアにキャッシュを組み込まずにエントリーをキャッシュに配置する際に役立ちます。
17.2.6. SKIP_SHARED_CACHE_STORE フラグについて リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
SKIP_SHARED_CACHE_STORE フラグが有効にされると、共有キャッシュストアは指定されたキャッシュ操作に対して考慮されません。このフラグは、共有キャッシュストアからキャッシュを取得せずにエントリーがキャッシュ内にあるかどうかを判別できると同時に、共有キャッシュストアにキャッシュを組み込まずにエントリーをキャッシュに配置する際に役立ちます。