Example of a Restartability Scenario
The following example illustrates a typical scenario of a CacheManager containing a mix of restartable and non-restartable caches.
EnterpriseServerSideConfigurationBuilder serverSideConfigBuilder =
EnterpriseClusteringServiceConfigurationBuilder
.enterpriseCluster(connectionURI)
.autoCreate()
.defaultServerResource("primary-server-resource")
.resourcePool("shared-pool", 20, MemoryUnit.MB,
"secondary-server-resource") // 1
.restartable("data-directory-name");
PersistentCacheManager cacheManager = CacheManagerBuilder
.newCacheManagerBuilder()
.with(serverSideConfigBuilder)
.build(true);
ClusteredResourcePool restartableDedicatedPool =
ClusteredRestartableResourcePoolBuilder
.clusteredRestartableDedicated(
"primary-server-resource", 4, MemoryUnit.MB);
ClusteredResourcePool restartableSharedPool =
ClusteredRestartableResourcePoolBuilder
.clusteredRestartableShared("shared-pool");
ClusteredResourcePool nonRestartableDedicatedPool =
ClusteredResourcePoolBuilder
.clusteredDedicated(
"primary-server-resource", 8, MemoryUnit.MB); // 2
ClusteredResourcePool nonRestartableSharedPool =
ClusteredResourcePoolBuilder
.clusteredShared("shared-pool"); // 3
Cache<Long, String> restartableDedicatedPoolCache = cacheManager
.createCache("restartableDedicatedPoolCache",
CacheConfigurationBuilder
.newCacheConfigurationBuilder(Long.class, String.class,
ResourcePoolsBuilder.newResourcePoolsBuilder()
.with(restartableDedicatedPool))); // 4
Cache<Long, String> restartableSharedPoolCache = cacheManager
.createCache("restartableSharedPoolCache",
CacheConfigurationBuilder
.newCacheConfigurationBuilder(Long.class, String.class,
ResourcePoolsBuilder.newResourcePoolsBuilder()
.with(restartableSharedPool))); // 5
Cache<String, Boolean> nonRestartableDedicatedPoolCache = cacheManager
.createCache("nonRestartableDedicatedPoolCache",
CacheConfigurationBuilder
.newCacheConfigurationBuilder(String.class, Boolean.class,
ResourcePoolsBuilder.newResourcePoolsBuilder()
.with(nonRestartableDedicatedPool))); // 6
Cache<String, Boolean> nonRestartableSharedPoolCache = cacheManager
.createCache("nonRestartableSharedPoolCache",
CacheConfigurationBuilder
.newCacheConfigurationBuilder(String.class, Boolean.class,
ResourcePoolsBuilder.newResourcePoolsBuilder()
.with(nonRestartableSharedPool))); // 7
cacheManager.close();
cacheManager.destroy();
1 | Registers with the CacheManager a resource pool named shared-pool of size 20 MB, reserved from server's secondary-server-resource. |
2 | Creates a non-restartable dedicated resource pool of size 8 MB from server's primary-server-resource. |
3 | Specifies a non-restartable shared resource pool which could be used by multiple caches. |
4 | Creates a Cache using a restartable dedicated pool. |
5 | Creates a Cache using a restartable shared pool. |
6 | Creates a Cache using the non-restartable dedicated pool created in Step 2 above. |
7 | Creates a Cache using the non-restartable shared pool created in Step 3 above. Note here that the same pool is shared by restartable and non-restartable caches. |