Skip to content

Instantly share code, notes, and snippets.

@mathieucarbou
Created June 14, 2016 20:50
Show Gist options
  • Save mathieucarbou/923a84c72f6edc73851e656959dbba0c to your computer and use it in GitHub Desktop.
Save mathieucarbou/923a84c72f6edc73851e656959dbba0c to your computer and use it in GitHub Desktop.
import org.ehcache.CacheManager
import org.ehcache.clustered.client.config.builders.ClusteredResourcePoolBuilder
import org.ehcache.clustered.client.config.builders.ClusteringServiceConfigurationBuilder
import org.ehcache.config.CacheConfiguration
import org.ehcache.config.builders.CacheConfigurationBuilder
import org.ehcache.config.builders.CacheManagerBuilder
import org.ehcache.config.units.MemoryUnit
import org.ehcache.management.config.EhcacheStatisticsProviderConfiguration
import org.ehcache.management.config.StatisticsProviderConfiguration
import org.ehcache.management.registry.DefaultManagementRegistryConfiguration
import org.ehcache.management.registry.DefaultManagementRegistryService
import org.terracotta.management.registry.ManagementRegistry
import java.util.concurrent.TimeUnit
import static org.ehcache.config.builders.ResourcePoolsBuilder.heap
StatisticsProviderConfiguration statisticsProviderConfiguration = new EhcacheStatisticsProviderConfiguration(
1, TimeUnit.MINUTES,
100, 1, TimeUnit.SECONDS,
30, TimeUnit.SECONDS)
ManagementRegistry managementRegistry = new DefaultManagementRegistryService(new DefaultManagementRegistryConfiguration()
.setCacheManagerAlias("my-cm")
.addConfiguration(statisticsProviderConfiguration));
CacheConfiguration<String, String> cacheConfiguration = CacheConfigurationBuilder.newCacheConfigurationBuilder(
String.class, String.class,
heap(10)
.offheap(1, MemoryUnit.MB)
.with(ClusteredResourcePoolBuilder.fixed("primary-server-resource", 1, MemoryUnit.MB))
).build()
CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder()
.with(ClusteringServiceConfigurationBuilder.cluster(URI.create("terracotta://localhost:9510").resolve("/my-cm?auto-create"))
.defaultServerResource("primary-server-resource"))
.using(managementRegistry)
.withCache("cache-1", cacheConfiguration)
.withCache("cache-2", cacheConfiguration)
.build(true);
println "Press a key to close..."
System.in.read()
cacheManager.close()
@mathieucarbou
Copy link
Author

  1. run the client code
  2. when it waits for a key, kill the server
  3. press a key to continue the client.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment