CLOVER🍀

That was when it all began.

Infinispan Server 8.1でCacheを定義する

Infinispan 8.1.0.Finalがリリースされたので、ちょっと遊んでみようと思いまして。

そのうち、Infinispan Serverを使った機能を試そうと思ったら、Cacheの定義方法が変わったようなのでメモ。

とりあえず、Infinispan Serverをダウンロード。

Download - Infinispan

zipファイルを展開。

$ unzip infinispan-server-8.1.0.Final-bin.zip

Infinipan Serverを起動します。

$ infinispan-server-8.1.0.Final/bin/standalone.sh

ispn-cliで接続。

$ infinispan-server-8.1.0.Final/bin/ispn-cli.sh -c

そして、以前のようにCacheを追加しようとすると怒られます。

[standalone@localhost:9990 /] /subsystem=datagrid-infinispan/cache-container=local/local-cache=myCache:add(start=EAGER)
'start' is not found among the supported properties: [configuration]

configurationが要ると言ってます…なんでしょう、これ。start=EAGERとかは指定できなくなったんですね。

これで、configurationに既存のCacheの名前を指定してあげると、作成できるようになります。

[standalone@localhost:9990 /] /subsystem=datagrid-infinispan/cache-container=local/local-cache=myCache:add(configuration=default)
{"outcome" => "success"}

つまり、どうもCacheの構成情報が先に必要になったようですね。

先の例だと、defaultというCacheを構成情報のテンプレートにした、と。

ちなみに、この状態でstandalone.xmlのCache定義は、このようになります。
infinispan-server-8.1.0.Final/standalone/configuration/standalone.xml

                <local-cache-configuration name="default" start="EAGER">
                    <locking striping="false" acquire-timeout="30000" concurrency-level="1000"/>
                    <transaction mode="NONE"/>
                </local-cache-configuration>
                <local-cache name="default" configuration="default"/>
                <local-cache name="myCache" configuration="default"/>

local-cache-configurationなる要素が現れました…。この要素はzip展開時にはなかったようです。

となると、configurationを作る、と。

ここで、CLIでcache-containerの配下を見ると、configurationsという要素があります。

[standalone@localhost:9990 /] /subsystem=datagrid-infinispan/cache-container=local/
configurations  distributed-cache  global-state  invalidation-cache  local-cache  replicated-cache  security  thread-pool  transport

これを使えばよいのでは?

というわけで、configurationsを追加してみます。今回はCompatibility Modeを有効にした定義を作成してみましょう。

まずは追加。

[standalone@localhost:9990 /] /subsystem=datagrid-infinispan/cache-container=local/configurations=CONFIGURATIONS/local-cache-configuration=compatibilityCache:add(start=EAGER)   
{"outcome" => "success"}

ここではstart=EAGERのように、以前の設定が書けるようです。

続いて、Compatibility Modeを有効に。

[standalone@localhost:9990 /] /subsystem=datagrid-infinispan/cache-container=local/configurations=CONFIGURATIONS/local-cache-configuration=compatibilityCache/compatibility=COMPATIBILITY:add(enabled=true)
{"outcome" => "success"}

できました。

この時、standalone.xmlには、このような定義が追加されています。

                <local-cache-configuration name="compatibilityCache" start="EAGER">
                    <compatibility enabled="true"/>
                </local-cache-configuration>

こちらを使って、Cacheを作成。

[standalone@localhost:9990 /] /subsystem=datagrid-infinispan/cache-container=local/local-cache=compatibilityCache:add(configuration=compatibilityCache)
{"outcome" => "success"}

今度は登録できました!

standalone.xmlは、このようになります。

                <local-cache name="compatibilityCache" start="EAGER">
                    <compatibility enabled="true"/>
                </local-cache>

local-cache-configurationがなくなりました…。

あとは、Infinispan Serverを再起動します。

これで、Infinispan ServerでCacheの登録ができるようになりました。

それにしても、手順が変わったことはわかったのですが、その後どうしたらいいのかわからなくてちょっと困りました…。