3.2. キャッシュテンプレートの追加
Data Grid スキーマには、テンプレートの作成に使用できる *-cache-configuration
要素が含まれます。その後、同じ設定を複数回使用して、オンデマンドでキャッシュを作成することができます。
手順
- Data Grid 設定を開いて編集します。
-
適切な
*-cache-configuration
要素またはオブジェクトをキャッシュマネージャーに追加します。 - Data Grid 設定を保存して閉じます。
キャッシュテンプレートの例
XML
<infinispan> <cache-container> <distributed-cache-configuration name="my-dist-template" mode="SYNC" statistics="true"> <encoding media-type="application/x-protostream"/> <memory max-count="1000000" when-full="REMOVE"/> <expiration lifespan="5000" max-idle="1000"/> </distributed-cache-configuration> </cache-container> </infinispan>
JSON
{ "infinispan" : { "cache-container" : { "distributed-cache-configuration" : { "name" : "my-dist-template", "mode": "SYNC", "statistics": "true", "encoding": { "media-type": "application/x-protostream" }, "expiration" : { "lifespan" : "5000", "max-idle" : "1000" }, "memory": { "max-count": "1000000", "when-full": "REMOVE" } } } } }
YAML
infinispan: cacheContainer: distributedCacheConfiguration: name: "my-dist-template" mode: "SYNC" statistics: "true" encoding: mediaType: "application/x-protostream" expiration: lifespan: "5000" maxIdle: "1000" memory: maxCount: "1000000" whenFull: "REMOVE"
3.2.1. テンプレートからのキャッシュの作成
設定テンプレートからキャッシュを作成します。
リモートキャッシュのテンプレートは、Data Grid コンソールの Cache templates メニューから利用できます。
前提条件
- キャッシュマネージャーに少なくとも 1 つのキャッシュテンプレートを追加します。
手順
- Data Grid 設定を開いて編集します。
-
キャッシュが
configuration
属性またはフィールドを継承するテンプレートを指定します。 - Data Grid 設定を保存して閉じます。
テンプレートから継承されたキャッシュ設定
XML
<distributed-cache configuration="my-dist-template" />
JSON
{ "distributed-cache": { "configuration": "my-dist-template" } }
YAML
distributedCache: configuration: "my-dist-template"
3.2.2. キャッシュテンプレートの継承
キャッシュ設定テンプレートは、他のテンプレートから継承して、設定を拡張し、上書きすることができます。
キャッシュテンプレートの継承は階層的です。親から継承する子設定テンプレートの場合は、親テンプレートの後に追加する必要があります。
さらに、複数の値を持つ要素にはテンプレート継承が追加されます。別のテンプレートから継承するキャッシュは、そのテンプレートから値をマージし、プロパティーを上書きできます。
テンプレート継承の例
XML
<infinispan> <cache-container> <distributed-cache-configuration name="base-template"> <expiration lifespan="5000"/> </distributed-cache-configuration> <distributed-cache-configuration name="extended-template" configuration="base-template"> <encoding media-type="application/x-protostream"/> <expiration lifespan="10000" max-idle="1000"/> </distributed-cache-configuration> </cache-container> </infinispan>
JSON
{ "infinispan" : { "cache-container" : { "caches" : { "base-template" : { "distributed-cache-configuration" : { "expiration" : { "lifespan" : "5000" } } }, "extended-template" : { "distributed-cache-configuration" : { "configuration" : "base-template", "encoding": { "media-type": "application/x-protostream" }, "expiration" : { "lifespan" : "10000", "max-idle" : "1000" } } } } } } }
YAML
infinispan: cacheContainer: caches: base-template: distributedCacheConfiguration: expiration: lifespan: "5000" extended-template: distributedCacheConfiguration: configuration: "base-template" encoding: mediaType: "application/x-protostream" expiration: lifespan: "10000" maxIdle: "1000"
3.2.3. キャッシュテンプレートのワイルドカード
ワイルドカードをキャッシュ設定テンプレート名に追加できます。名前がワイルドカードに一致するキャッシュを作成すると、Data Grid は設定テンプレートを適用します。
キャッシュ名が複数のワイルドカードと一致する場合は、Data Grid は例外を出力します。
テンプレートワイルドカードの例
XML
<infinispan> <cache-container> <distributed-cache-configuration name="async-dist-cache-*" mode="ASYNC" statistics="true"> <encoding media-type="application/x-protostream"/> </distributed-cache-configuration> </cache-container> </infinispan>
JSON
{ "infinispan" : { "cache-container" : { "distributed-cache-configuration" : { "name" : "async-dist-cache-*", "mode": "ASYNC", "statistics": "true", "encoding": { "media-type": "application/x-protostream" } } } } }
YAML
infinispan: cacheContainer: distributedCacheConfiguration: name: "async-dist-cache-*" mode: "ASYNC" statistics: "true" encoding: mediaType: "application/x-protostream"
上記の例では、async-dist-cache-prod という名前のキャッシュを作成する場合、Data Grid は async-dist-cache-*
テンプレートの設定を使用します。
3.2.4. 複数の XML ファイルからのキャッシュテンプレート
キャッシュ設定テンプレートを複数の XML ファイルに分割して、粒度を柔軟に参照し、XML 包含 (XInclude) で参照します。
Data Grid は、XInclude 仕様の最小限のサポートを提供します。つまり、xpointer
属性、xi:fallback
要素、テキスト処理、またはコンテンツネゴシエーションを使用できません。
また、XInclude を使用するには xmlns:xi="http://www.w3.org/2001/XInclude"
namespace を infinispan.xml
に追加する必要もあります。
Xinclude キャッシュテンプレート
<infinispan xmlns:xi="http://www.w3.org/2001/XInclude"> <cache-container default-cache="cache-1"> <!-- References files that contain cache configuration templates. --> <xi:include href="distributed-cache-template.xml" /> <xi:include href="replicated-cache-template.xml" /> </cache-container> </infinispan>
Data Grid は、設定フラグメントで使用できる infinispan-config-fragment-13.0.xsd
スキーマも提供します。
設定フラグメントスキーマ
<local-cache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:infinispan:config:13.0 https://infinispan.org/schemas/infinispan-config-fragment-13.0.xsd" xmlns="urn:infinispan:config:13.0" name="mycache"/>
関連情報