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.
|