Chapter 7. Remotely Creating Caches
When you remotely create caches with the cache-service
, you can configure caches to be ephemeral or permanent and if data is replicated across the cluster.
You can define any custom configuration when you remotely create caches with the datagrid-service
.
Remotely create cache definitions with the cache-service
and datagrid-service
through the Hot Rod protocol as follows:
-
Instantiate the
RemoteCacheManager
class to connect to the service. Call the
createCache()
method to create a cache, as in the following example:private static void createCache(String appName) { //Connect to the Hot Rod service. final String host = appName; //Use the configuration bean. ConfigurationBuilder cfg = ... System.out.printf("--- Connecting to %s ---%n", appName); //Create a new RemoteCacheManager and start it. final RemoteCacheManager remote = new RemoteCacheManager(cfg.build()); //Set a name for the cache. final String cacheName = "custom"; System.out.printf("--- Creating cache in %s ---%n", appName); //Perform remote administration operations. remote.administration() //Include a flag to make the cache permanent. .withFlags(CacheContainerAdmin.AdminFlag.PERMANENT) //Create a cache on the remote server. //Pass null instead of XML to use the default cache configuration. .createCache(cacheName, null); System.out.printf("--- Cache '%s' created in '%s' ---%n", cacheName, appName); }
NoteIf the named cache already exists, an exception is thrown. Alternatives are to:
-
Call the
getOrCreateCache
method inRemoteCacheManagerAdmin
to return the cache name instead of throwing an exception. -
Call the
removeCache
method inRemoteCacheManagerAdmin
to destroy the cache and then callcreateCache
again.
-
Call the
Tip
Try one of the Quickstart Tutorials: