5.2. プログラムによる設定
ConfigurationBuilder
クラスで新しい Configuration オブジェクトを作成し、Cache Manager でキャッシュ設定を定義します。
このセクションの例では、クライアントと同じ JVM で実行する Cache Manager である EmbeddedCacheManager
を使用します。
HotRod クライアントでキャッシュをリモートで設定するには、RemoteCacheManager
を使用します。詳細は、HotRod のドキュメントを参照してください。
新しいキャッシュインスタンスの設定
以下の例では、新しいキャッシュインスタンスを設定します。
EmbeddedCacheManager manager = new DefaultCacheManager("infinispan-prod.xml"); Cache defaultCache = manager.getCache(); Configuration c = new ConfigurationBuilder().clustering() 1 .cacheMode(CacheMode.REPL_SYNC) 2 .build(); String newCacheName = "replicatedCache"; manager.defineConfiguration(newCacheName, c); 3 Cache<String, String> cache = manager.getCache(newCacheName);
既存設定からの新規キャッシュの作成
以下の例では、既存のキャッシュ設定から新しいキャッシュ設定を作成します。
EmbeddedCacheManager manager = new DefaultCacheManager("infinispan-prod.xml"); Configuration dcc = manager.getDefaultCacheConfiguration(); 1 Configuration c = new ConfigurationBuilder().read(dcc) 2 .clustering() .cacheMode(CacheMode.DIST_SYNC) 3 .l1() .lifespan(60000L) 4 .build(); String newCacheName = "distributedWithL1"; manager.defineConfiguration(newCacheName, c); 5 Cache<String, String> cache = manager.getCache(newCacheName);
EmbeddedCacheManager manager = new DefaultCacheManager("infinispan-prod.xml");
Configuration rc = manager.getCacheConfiguration("replicatedCache"); 1
Configuration c = new ConfigurationBuilder().read(rc)
.clustering()
.cacheMode(CacheMode.DIST_SYNC)
.l1()
.lifespan(60000L)
.build();
String newCacheName = "distributedWithL1";
manager.defineConfiguration(newCacheName, c);
Cache<String, String> cache = manager.getCache(newCacheName);
- 1
- replicatedCache という名前のキャッシュ設定をベースとして使用します。
参照資料
5.2.1. 設定オブジェクト
Data Grid は、プログラムによるキャッシュ設定に 2 つの抽象化を提供します。
GlobalConfigurationBuilder
- すべてのキャッシュ定義に適用されるグローバル設定オブジェクトを構築します。
ConfigurationBuilder
- キャッシュ定義に固有の設定オブジェクトを構築します。
グローバル設定
グローバル設定の例は、以下のように統計情報を有効にし、JMX または Cache Manager レベルで metrics
エンドポイントを介してエクスポートすることです。
GlobalConfiguration globalConfig = new GlobalConfigurationBuilder() .cacheContainer().statistics(true) .metrics().gauges(true).histograms(true) .jmx().enable() .build();
キャッシュ設定
以下の例は、Data Grid キャッシュにさまざまな設定をプログラムで設定する方法を示しています。
分散同期クラスター化されたキャッシュモードを設定します。
Configuration config = new ConfigurationBuilder() .clustering() .cacheMode(CacheMode.DIST_SYNC) .l1().lifespan(25000L) .hash().numOwners(3) .build();
エビクションと有効期限を設定します。
Configuration config = new ConfigurationBuilder() .memory() .size(20000) .expiration() .wakeUpInterval(5000L) .maxIdle(120000L) .build();
永続キャッシュストアを設定します。
Configuration config = new ConfigurationBuilder() .persistence().passivation(false) .addSingleFileStore().location("/tmp").async().enable() .threadPoolSize(20).preload(false).shared(false).build();
トランザクションとロックを設定します。
Configuration config = new ConfigurationBuilder() .locking() .concurrencyLevel(10000).isolationLevel(IsolationLevel.REPEATABLE_READ) .lockAcquisitionTimeout(12000L).useLockStriping(false) .versioning().enable().scheme(VersioningScheme.SIMPLE) .transaction() .transactionManagerLookup(new GenericTransactionManagerLookup()) .recovery() .statistics() .build();