@SuppressWarnings("deprecation") @Override public void accept(ConfigurationBuilder builder) { ClusteringConfigurationBuilder clustering = builder.clustering(); CacheMode mode = clustering.cacheMode(); clustering.cacheMode(mode.needsStateTransfer() ? CacheMode.REPL_SYNC : CacheMode.LOCAL); // don't use DefaultConsistentHashFactory for REPL caches (WFLY-9276) clustering.hash().consistentHashFactory(null); clustering.l1().disable(); // Workaround for ISPN-8722 AttributeSet attributes = TemplateConfigurationServiceConfigurator.getAttributes(clustering); attributes.attribute(ClusteringConfiguration.BIAS_ACQUISITION).reset(); attributes.attribute(ClusteringConfiguration.BIAS_LIFESPAN).reset(); attributes.attribute(ClusteringConfiguration.INVALIDATION_BATCH_SIZE).reset(); // Ensure we use the default data container builder.dataContainer().dataContainer(null); // Disable expiration builder.expiration().lifespan(-1).maxIdle(-1); // Disable eviction builder.memory().size(-1).evictionStrategy(EvictionStrategy.MANUAL); builder.persistence().clearStores(); StateTransferConfigurationBuilder stateTransfer = clustering.stateTransfer().fetchInMemoryState(mode.needsStateTransfer()); attributes = TemplateConfigurationServiceConfigurator.getAttributes(stateTransfer); attributes.attribute(StateTransferConfiguration.AWAIT_INITIAL_TRANSFER).reset(); attributes.attribute(StateTransferConfiguration.TIMEOUT).reset(); } }
@SuppressWarnings("deprecation") @Override public void accept(ConfigurationBuilder builder) { ClusteringConfigurationBuilder clustering = builder.clustering(); CacheMode mode = clustering.cacheMode(); clustering.cacheMode(mode.needsStateTransfer() ? CacheMode.REPL_SYNC : CacheMode.LOCAL); // don't use DefaultConsistentHashFactory for REPL caches (WFLY-9276) clustering.hash().consistentHashFactory(null); clustering.l1().disable(); // Workaround for ISPN-8722 AttributeSet attributes = TemplateConfigurationServiceConfigurator.getAttributes(clustering); attributes.attribute(ClusteringConfiguration.BIAS_ACQUISITION).reset(); attributes.attribute(ClusteringConfiguration.BIAS_LIFESPAN).reset(); attributes.attribute(ClusteringConfiguration.INVALIDATION_BATCH_SIZE).reset(); // Ensure we use the default data container builder.dataContainer().dataContainer(null); // Disable expiration builder.expiration().lifespan(-1).maxIdle(-1); // Disable eviction builder.memory().size(-1).evictionStrategy(EvictionStrategy.MANUAL); builder.persistence().clearStores(); StateTransferConfigurationBuilder stateTransfer = clustering.stateTransfer().fetchInMemoryState(mode.needsStateTransfer()); attributes = TemplateConfigurationServiceConfigurator.getAttributes(stateTransfer); attributes.attribute(StateTransferConfiguration.AWAIT_INITIAL_TRANSFER).reset(); attributes.attribute(StateTransferConfiguration.TIMEOUT).reset(); } }
@Test public void testClearStores() { Configuration c = new ConfigurationBuilder() .persistence() .addStore(DummyInMemoryStoreConfigurationBuilder.class) .persistence() .clearStores() .build(); assertEquals(c.persistence().stores().size(), 0); }
private ConfigurationBuilder addDummyStore(ConfigurationBuilder config, boolean pushing) { config .persistence() .clearStores() .addStore(DummyInMemoryStoreConfigurationBuilder.class) .storeName("Store-" + storeCounter.getAndIncrement()) .singleton() .enable() .pushStateWhenCoordinator(pushing); return config; }
@Override protected EmbeddedCacheManager createCacheManager(String cacheName) { configurationBuilder.persistence().clearStores(); DummyInMemoryStoreConfigurationBuilder dimcs = new DummyInMemoryStoreConfigurationBuilder(configurationBuilder.persistence()); if (sharedCacheLoader.get()) { dimcs.storeName(getClass().getName()); } else { dimcs.storeName(getClass().getName() + id++); } dimcs.fetchPersistentState(false).purgeOnStartup(false).shared(sharedCacheLoader.get()).preload(true); configurationBuilder.persistence().passivation(false).addStore(dimcs).fetchPersistentState(fetchPersistentState.get()); // Want to enable eviction, but don't actually evict anything configurationBuilder.memory().size(INSERTION_COUNT * 10); EmbeddedCacheManager cm = addClusterEnabledCacheManager(configurationBuilder, new TransportFlags().withMerge(true)); cm.defineConfiguration(cacheName, configurationBuilder.build()); return cm; }
ConfigurationBuilder newPreloadConfiguration(Configuration configuration, String storeName) { ConfigurationBuilder preloadingCfg = new ConfigurationBuilder(); preloadingCfg.read(configuration); preloadingCfg.persistence() .clearStores() .addStore(DummyInMemoryStoreConfigurationBuilder.class) .segmented(segmented) .preload(true) .storeName(storeName); return preloadingCfg; }
@Override protected EmbeddedCacheManager createCacheManager(String cacheName) { configurationBuilder.persistence().clearStores(); // increment the DIMCS store id DummyInMemoryStoreConfigurationBuilder dimcs = new DummyInMemoryStoreConfigurationBuilder(configurationBuilder.persistence()); dimcs.storeName("store number " + id++); dimcs.fetchPersistentState(true).shared(sharedCacheLoader.get()).preload(true); configurationBuilder.persistence().addStore(dimcs); configurationBuilder.persistence(); return super.createCacheManager(cacheName); }
public void testStateTransfer() throws Exception { final int numKeys = 300; for (int i = 0; i < numKeys; i++) { cache(0).put(i, i); } log.info("Finished putting keys"); for (int i = 0; i < numKeys; i++) { assertEquals(i, cache(0).get(i)); } log.info("Adding a new node .."); builder.persistence().clearStores().addSingleFileStore().location(new File(tmpDir, "store1").getAbsolutePath()) // make sure this node writes in a different location .fetchPersistentState(true) .ignoreModifications(false) .purgeOnStartup(false); addClusterEnabledCacheManager(builder); log.info("Added a new node"); for (int i = 0; i < numKeys; i++) { assertEquals(i, cache(1).get(i)); // some keys are lost in 5.2 } } }
@SuppressWarnings("deprecation") @Override public void accept(ConfigurationBuilder builder) { ClusteringConfigurationBuilder clustering = builder.clustering(); CacheMode mode = clustering.cacheMode(); clustering.cacheMode(mode.needsStateTransfer() ? CacheMode.REPL_SYNC : CacheMode.LOCAL); // don't use DefaultConsistentHashFactory for REPL caches (WFLY-9276) clustering.hash().consistentHashFactory(null); clustering.l1().disable(); // Workaround for ISPN-8722 AttributeSet attributes = TemplateConfigurationServiceConfigurator.getAttributes(clustering); attributes.attribute(ClusteringConfiguration.BIAS_ACQUISITION).reset(); attributes.attribute(ClusteringConfiguration.BIAS_LIFESPAN).reset(); attributes.attribute(ClusteringConfiguration.INVALIDATION_BATCH_SIZE).reset(); // Ensure we use the default data container builder.dataContainer().dataContainer(null); // Disable expiration builder.expiration().lifespan(-1).maxIdle(-1); // Disable eviction builder.memory().size(-1).evictionStrategy(EvictionStrategy.MANUAL); builder.persistence().clearStores(); StateTransferConfigurationBuilder stateTransfer = clustering.stateTransfer().fetchInMemoryState(mode.needsStateTransfer()); attributes = TemplateConfigurationServiceConfigurator.getAttributes(stateTransfer); attributes.attribute(StateTransferConfiguration.AWAIT_INITIAL_TRANSFER).reset(); attributes.attribute(StateTransferConfiguration.TIMEOUT).reset(); } }
@Override protected void createCacheManagers() { ConfigurationBuilder builder = getDefaultClusteredCacheConfig(CacheMode.REPL_SYNC, true, true); builder.transaction() .transactionMode(TransactionMode.TRANSACTIONAL).lockingMode(LockingMode.PESSIMISTIC) .transactionManagerLookup(new JBossStandaloneJTAManagerLookup()) .memory().size(1) .clustering().hash().groups().enabled() .persistence().passivation(true) .addStore(DummyInMemoryStoreConfigurationBuilder.class) .fetchPersistentState(false); addClusterEnabledCacheManager(builder); builder.persistence().clearStores() .addStore(DummyInMemoryStoreConfigurationBuilder.class).fetchPersistentState(false); addClusterEnabledCacheManager(builder); waitForClusterToForm(); }
@Override protected void createCacheManagers() { ConfigurationBuilder builder = getDefaultClusteredCacheConfig(CacheMode.REPL_SYNC, true, true); builder.transaction() .transactionMode(TransactionMode.TRANSACTIONAL).lockingMode(LockingMode.PESSIMISTIC) .transactionManagerLookup(new JBossStandaloneJTAManagerLookup()) .memory().size(1) .clustering().hash().groups().enabled() .persistence() .addStore(DummyInMemoryStoreConfigurationBuilder.class) .fetchPersistentState(false); addClusterEnabledCacheManager(builder); builder.persistence().clearStores() .addStore(DummyInMemoryStoreConfigurationBuilder.class).fetchPersistentState(false); addClusterEnabledCacheManager(builder); waitForClusterToForm(); }
@Test(groups = "unstable") public void testPurgeOnStartup() throws PersistenceException { ConfigurationBuilder purgingCfg = new ConfigurationBuilder(); purgingCfg.read(cfg.build()); purgingCfg.persistence().clearStores().addStore(DummyInMemoryStoreConfigurationBuilder.class) .storeName("purgingCache").purgeOnStartup(true); cm.defineConfiguration("purgingCache", purgingCfg.build()); Cache<String, String> purgingCache = getCache(cm, "purgingCache"); AdvancedCacheLoader purgingLoader = (AdvancedCacheLoader) TestingUtil.getCacheLoader(purgingCache); assertNotInCacheAndStore(purgingCache, purgingLoader, "k1", "k2", "k3", "k4"); purgingCache.put("k1", "v1"); purgingCache.put("k2", "v2", lifespan, MILLISECONDS); purgingCache.put("k3", "v3"); purgingCache.put("k4", "v4", lifespan, MILLISECONDS); for (int i = 1; i < 5; i++) { if (i % 2 == 1) assertInCacheAndStore(purgingCache, purgingLoader, "k" + i, "v" + i); else assertInCacheAndStore(purgingCache, purgingLoader, "k" + i, "v" + i, lifespan); } DataContainer c = purgingCache.getAdvancedCache().getDataContainer(); assertEquals(4, c.size()); purgingCache.stop(); assertEquals(0, c.size()); purgingCache.start(); purgingLoader = (AdvancedCacheLoader) TestingUtil.getCacheLoader(purgingCache); c = purgingCache.getAdvancedCache().getDataContainer(); assertEquals(0, c.size()); assertNotInCacheAndStore(purgingCache, purgingLoader, "k1", "k2", "k3", "k4"); }