第8章 ファイルベースのキャッシュストアの定義

datagrid-service を使用してファイルベースのキャッシュストアを定義して、データを外部ストレージに永続化します。

XMLStringConfiguration クラスを使用して、Hot Rod インターフェースを介して XML 設定を文字列として提供します。

  • XML は Data Grid 設定スキーマで有効である必要があります。
  • data フォルダーは PersistentVolume でコンテナーが再起動されても有効なままであるため、ファイルストアの場所として、/opt/datagrid/standalone/data にマウントされるストレージボリュームに配置する必要があります。

たとえば、以下の main メソッドは、ファイルストアを含む分散設定でキャッシュを作成します。

public static void main(String[] args) {

   ConfigurationBuilder cfg = ...

   RemoteCacheManager rcm = new RemoteCacheManager(build);

   String xml = String.format(
      "<infinispan>" +
         "<cache-container>" +
            "<distributed-cache name=\"%1$s\">" +
               "<persistence passivation=\"false\">" +
                  "<file-store " +
                     "shared=\"false\" " +
                     "fetch-state=\"true\" " +
                     "path=\"${jboss.server.data.dir}/datagrid-infinispan/%1$s\"" +
                  "/>" +
               "</persistence>" +
            "</distributed-cache>" +
         "</cache-container>" +
      "</infinispan>",
      "cacheName"
   );

   RemoteCache<Object, Object> index = rcm.administration()
   //Include a flag to make the cache permanent.
   .withFlags(CacheContainerAdmin.AdminFlag.PERMANENT)
   //Create a cache with the XML configuration
   .createCache("cacheName", new XMLStringConfiguration(xml));

   System.out.println(index.size());

}

有効な file-store 設定オプションの詳細は、「Data Grid 設定スキーマ」を参照してください。

詳細は、Javadoc を参照してください。