Infinispan 8.1.0.Finalがリリースされたので、ちょっと遊んでみようと思いまして。
そのうち、Infinispan Serverを使った機能を試そうと思ったら、Cacheの定義方法が変わったようなのでメモ。
とりあえず、Infinispan Serverをダウンロード。
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の登録ができるようになりました。
それにしても、手順が変わったことはわかったのですが、その後どうしたらいいのかわからなくてちょっと困りました…。