5.13. カスタムキャッシュストア
提供されたキャッシュストアがすべての要件を満たすことができない場合は、独自のストアを実装することができます。独自のストアの作成に必要な手順は次のとおりです。
以下のインターフェースのいずれかを実装して、カスタムストアを作成します。
-
org.infinispan.persistence.spi.AdvancedCacheWriter -
org.infinispan.persistence.spi.AdvancedCacheLoader -
org.infinispan.persistence.spi.CacheLoader -
org.infinispan.persistence.spi.CacheWriter -
org.infinispan.persistence.spi.ExternalStore -
org.infinispan.persistence.spi.AdvancedLoadWriteStore -
org.infinispan.persistence.spi.TransactionalCacheWriter
-
-
ストアクラスに
@Storeアノテーションを付け、ストアに関連するプロパティーを指定します。たとえば、ストアを Replicated または Distributed mode:@Store(shared = true)で共有できます。 -
カスタムキャッシュストア設定およびビルダーを作成します。これには、
AbstractStoreConfigurationおよびAbstractStoreConfigurationBuilderを拡張する必要があります。任意の手順として、以下のアノテーションを設定(@ConfigurationFor,@BuiltBy)に追加し、@ConfiguredByをストア実装クラスに追加する必要があります。これらの追加のアノテーションにより、カスタム設定ビルダーが xml からストア設定を解析するために使用されます。これらのアノテーションが追加されない場合は、CustomStoreConfigurationBuilderを使用してAbstractStoreConfigurationConfiguration で定義された共通のストア属性を解析し、追加の要素は無視されます。ストアとその設定が@Storeと@ConfigurationForアノテーションをそれぞれ宣言しない場合、キャッシュの初期時に警告メッセージがログに記録されます。 カスタムストアをキャッシュの設定に追加します。
カスタムストアを ConfigurationBuilder に追加します。以下に例を示します。
Configuration config = new ConfigurationBuilder() .persistence() .addStore(CustomStoreConfigurationBuilder.class) .build();Configuration config = new ConfigurationBuilder() .persistence() .addStore(CustomStoreConfigurationBuilder.class) .build();Copy to Clipboard Copied! Toggle word wrap Toggle overflow xml でカスタムストアを定義します。
<local-cache name="customStoreExample"> <persistence> <store class="org.infinispan.persistence.dummy.DummyInMemoryStore" /> </persistence> </local-cache><local-cache name="customStoreExample"> <persistence> <store class="org.infinispan.persistence.dummy.DummyInMemoryStore" /> </persistence> </local-cache>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.13.1. hotrod デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
カスタムキャッシュストアは、以下の手順を使用して個別の JAR ファイルにパッケージ化でき、HotRod サーバーにデプロイできます。
- 前のセクションでの カスタムキャッシュ ストア , 手順 1-3> に従って、実装を JAR ファイルにパッケージ化します(または、カスタムのキャッシュストア Archetype を使用します)。
Jar で
META-INF/services/に適切なファイルを作成します。これには、ストア実装の完全修飾クラス名が含まれます。このサービスファイルの名前には、ストアが実装するインターフェースを反映させる必要があります。たとえば、ストアがAdvancedCacheWriterインターフェースを実装する場合は、以下のファイルを作成します。-
/META-INF/services/org.infinispan.persistence.spi.AdvancedCacheWriter
-
- JAR ファイルを Red Hat Data Grid Server にデプロイします。