11.5. Hot Rod クライアントでのリモートキャッシュの作成
Hot Rod Java クライアントが存在しないキャッシュにアクセスしようとすると、remoteCacheManager.getCache("myCache")
呼び出しに対して null
を返します。このシナリオを回避するには、キャッシュ設定を使用して最初のアクセス時にキャッシュを作成するように Hot Rod クライアントを設定します。
手順
-
ConfigurationBuilder
でremoteCache()
メソッドを使用するか、hotrod-client.properties
でconfiguration
およびconfiguration_uri
プロパティーを使用します。
ConfigurationBuilder
File file = new File("path/to/infinispan.xml") ConfigurationBuilder builder = new ConfigurationBuilder(); builder.remoteCache("another-cache") .configuration("<distributed-cache name=\"another-cache\"/>"); builder.remoteCache("my.other.cache") .configurationURI(file.toURI());
hotrod-client.properties
infinispan.client.hotrod.cache.another-cache.configuration=<distributed-cache name=\"another-cache\"/> infinispan.client.hotrod.cache.[my.other.cache].configuration_uri=file:///path/to/infinispan.xml
hotrod-client.properties
を .
文字が含まれるキャッシュ名と共に使用する場合は、前述の例のように、キャッシュ名を角括弧で囲む必要があります。
また、このような XMLStringConfiguration()
メソッドでキャッシュの設定を追加してから getOrCreateCache()
メソッドを呼び出す次の例のように、他の方法で RemoteCacheManager
API を介してリモートキャッシュを作成することができます。
しかし、Data Grid は、XML の有効性を保証することがより困難になる可能性があり、一般にキャッシュを作成するには厄介な方法であるため、このアプローチを推奨しません。複雑なキャッシュ設定を作成する場合は、それらをプロジェクト内の別々のファイルに保存し、Hot Rod クライアント設定で参照する必要があります。
String cacheName = "CacheWithXMLConfiguration"; String xml = String.format("<distributed-cache name=\"%s\" mode=\"SYNC\">" + "<encoding media-type=\"application/x-protostream\"/>" + "<locking isolation=\"READ_COMMITTED\"/>" + "<transaction mode=\"NON_XA\"/>" + "<expiration lifespan=\"60000\" interval=\"20000\"/>" + "</distributed-cache>" , cacheName); remoteCacheManager.administration().getOrCreateCache(cacheName, new XMLStringConfiguration(xml));
Hot Rod コードの例
Hot Rod Java クライアントを使用して、さまざまな方法でリモートキャッシュを作成する方法を説明する Data Grid コードチュートリアルをいくつか試してください。
Data Grid code examples にアクセスします。