第5章 Data Grid キャッシュの設定
Data Grid を使用すると、プログラムを使用してキャッシュするプロパティーとオプションを定義できます。
宣言型設定は、Data Grid スキーマに準拠する XML ファイルを使用します。一方、プログラムによる設定は Data Grid API を使用します。
ほとんどの場合、キャッシュ定義の開始点として宣言型設定を使用します。実行時に、プログラムでキャッシュを設定して、設定を調整したり、追加のプロパティーを指定したりできます。しかし、Data Grid は柔軟性があるため、宣言的、プログラムによる、またはこの 2 つの組み合わせを選択できます。
5.1. 宣言型設定 リンクのコピーリンクがクリップボードにコピーされました!
infinispan.xml
でプロパティーを定義して、Data Grid キャッシュを設定します。
以下の例は、Data Grid 設定の基本構造を示しています。
- 1
- Data Grid 設定のルート要素を追加します。有効な最小設定は
<infinispan />
ですが、これはクラスタリングなしで、キャッシュインスタンスがない非常に基本的な機能を提供します。 - 2
- コンテナー内のすべてのキャッシュのプロパティーを定義し、デフォルトのキャッシュに名前を付けます。
- 3
- クラスター化されたキャッシュモードのトランスポートプロパティーを定義します。上記の例では、
stack="udp"
はデフォルトの JGroups UDP トランスポートスタックを指定し、Data Grid クラスターに名前を付けます。 - 4
- ローカルキャッシュ。
- 5
- Invalidation cache
- 6
- レプリケートされたキャッシュ
- 7
- 分散キャッシュ
5.1.1. キャッシュ設定テンプレート リンクのコピーリンクがクリップボードにコピーされました!
Data Grid を使用すると、複数のキャッシュ定義に適用したり、複雑な設定の基礎として使用できる設定テンプレートを定義できます。
たとえば、以下の設定には、ローカルキャッシュの設定テンプレートが含まれます。
設定テンプレートを使用した継承
設定テンプレートは、他のテンプレートから継承して設定を拡張し、上書きすることもできます。
設定テンプレートの継承は階層的です。親から継承する子設定テンプレートの場合は、親テンプレートの後に追加する必要があります。
以下は、設定テンプレートの継承の例です。
- 1
- ローカルキャッシュの有効期限ポリシーを定義する base-template という名前の設定テンプレートを定義します。この例では、base-template が親設定テンプレートです。
- 2
- base-template から設定を継承する extendeded-template という名前の設定テンプレートを定義し、有効期限の
lifespan
属性を変更し、設定にmemory
要素を追加します。この例では、extended-template は base-template の子です。 - 3
- base-template の設定を使用するローカルキャッシュに名前を付けます。
- 4
- extendeded-template の設定を使用するローカルキャッシュに名前を付けます。
設定のテンプレートの継承は、property
などの複数の値を持つ要素について加算されます。結果として作成される子設定は親設定から値がマージされます。
たとえば、親設定のマージの <property value_x="foo" />
は子設定の <property value_y="bar" />
とマージされ、結果として <property value_x="foo" value_y="bar" />
になります。
5.1.2. キャッシュ設定ワイルドカード リンクのコピーリンクがクリップボードにコピーされました!
ワイルドカードを使用してキャッシュ定義と設定テンプレートを照合することができます。
キャッシュ名が複数のワイルドカードと一致する場合は、Data Grid は例外を出力します。
5.1.3. 複数の設定ファイル リンクのコピーリンクがクリップボードにコピーされました!
Data Grid は、複数のファイルに設定を分割する XML 包含 (XInclude) をサポートします。
たとえば、以下の設定では XInclude を使用します。
<infinispan xmlns:xi="http://www.w3.org/2001/XInclude"> <cache-container default-cache="cache-1"> <xi:include href="local.xml" /> </cache-container> </infinispan>
<infinispan xmlns:xi="http://www.w3.org/2001/XInclude">
<cache-container default-cache="cache-1">
<xi:include href="local.xml" />
</cache-container>
</infinispan>
- 1
- 以下のキャッシュ定義が含まれる
local.xml
ファイルが含まれます。<local-cache name="mycache"/>
<local-cache name="mycache"/>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
含まれるフラグメントにスキーマを使用する場合は、infinispan-config-fragment-10.1.xsd
スキーマを使用します。
include-with-schema.xml
<local-cache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:infinispan:config:10.1 https://infinispan.org/schemas/infinispan-config-fragment-10.1.xsd" xmlns="urn:infinispan:config:10.1" name="mycache"/>
<local-cache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:infinispan:config:10.1 https://infinispan.org/schemas/infinispan-config-fragment-10.1.xsd"
xmlns="urn:infinispan:config:10.1"
name="mycache"/>
Data Grid 設定は、XInclude 仕様の最小サポートのみを提供します。たとえば、xpointer
属性、xi:fallback
要素、テキスト処理、またはコンテンツネゴシエーションは使用できません。
参照資料