jdbc cacheloader configuration prgramatically
sridhar_ratna May 6, 2009 6:29 AMi am trying to configure jdbc cache loader dynamically.
but its giving ConfigurationException
public class CacheLoaderUtil { public static Node<String, Object> getCacheNode(int dataNodeNo) { Cache<String, Object> cache = createCacheFactory(dataNodeNo); cache.create(); cache.start(); return cache.getRoot(); } private static Cache<String, Object> createCacheFactory() { Configuration config = new Configuration(); config .setTransactionManagerLookupClass(GenericTransactionManagerLookup.class .getName()); config.setIsolationLevel(IsolationLevel.READ_COMMITTED); config.setCacheMode(CacheMode.LOCAL); config.setLockAcquisitionTimeout(15000); EvictionConfig ec = new EvictionConfig(); ec.setWakeupInterval(5); EvictionRegionConfig erc = new EvictionRegionConfig(); erc.setRegionName("/"); erc.setEventQueueSize(2000); erc.setEvictionAlgorithmConfig(new LRUAlgorithmConfig(300, 300, 500)); List<EvictionRegionConfig> ercs = new ArrayList<EvictionRegionConfig>(); ercs.add(erc); ec.setEvictionRegionConfigs(ercs); config.setEvictionConfig(ec); CacheLoaderConfig loaderConfig = new CacheLoaderConfig(); loaderConfig.setPassivation(false); loaderConfig.setShared(false); loaderConfig.setPreload("/"); JDBCCacheLoaderConfig jdbcConfig = new JDBCCacheLoaderConfig(); jdbcConfig.setAsync(false); jdbcConfig.setCreateTable(true); jdbcConfig.setDriverClass(props.getProperty("Driver.Class")); jdbcConfig.setDropTable(false); jdbcConfig.setFetchPersistentState(true); jdbcConfig.setIgnoreModifications(false); jdbcConfig.setPurgeOnStartup(false); jdbcConfig.setTable("jbosscache"); jdbcConfig.setPrimaryKey("jbosscache_pk"); jdbcConfig.setFqnColumn("fqn"); jdbcConfig.setFqnType("VARCHAR(255)"); jdbcConfig.setNodeColumn("value"); jdbcConfig.setNodeType(props.getProperty("Value.Type")); jdbcConfig.setParentColumn("parent"); jdbcConfig.setJdbcURL(props.getProperty("Jdbc.URL")); jdbcConfig.setJdbcUser(props.getProperty("Jdbc.User")); jdbcConfig.setJdbcPassword(props.getProperty("Jdbc.Password")); loaderConfig.addIndividualCacheLoaderConfig(jdbcConfig); config.setCacheLoaderConfig(loaderConfig); CacheFactory<String, Object> factory = new DefaultCacheFactory<String, Object>(); Cache<String, Object> cache = factory.createCache(config); return cache; } public static void main(String[] args) { CacheLoaderUtil.getCacheNode(); } }
stack trace is
Exception in thread "main" org.jboss.cache.config.ConfigurationException: Unable to build interceptor chain at org.jboss.cache.factories.InterceptorChainFactory.construct(InterceptorChainFactory.java:229) at org.jboss.cache.factories.ComponentRegistry.getOrCreateComponent(ComponentRegistry.java:315) at org.jboss.cache.factories.ComponentRegistry.invokeInjectionMethod(ComponentRegistry.java:276) at org.jboss.cache.factories.ComponentRegistry$Component.injectDependencies(ComponentRegistry.java: 974) at org.jboss.cache.factories.ComponentRegistry.registerComponent(ComponentRegistry.java:252) at org.jboss.cache.DefaultCacheFactory.bootstrap(DefaultCacheFactory.java:155) at org.jboss.cache.DefaultCacheFactory.createAndWire(DefaultCacheFactory.java:141) at org.jboss.cache.DefaultCacheFactory.createCache(DefaultCacheFactory.java:120) at org.jboss.cache.DefaultCacheFactory.createCache(DefaultCacheFactory.java:105) at com.cmc.facts.util.CacheLoaderUtil.createCacheFactory(CacheLoaderUtil.java:126) at com.cmc.facts.util.CacheLoaderUtil.getCacheNode(CacheLoaderUtil.java:42) at com.cmc.facts.util.CacheLoaderUtil.main(CacheLoaderUtil.java:132) Caused by: org.jboss.cache.config.ConfigurationException: Unable to build interceptor chain at org.jboss.cache.factories.InterceptorChainFactory.construct(InterceptorChainFactory.java:229) at org.jboss.cache.factories.ComponentRegistry.getOrCreateComponent(ComponentRegistry.java:315) at org.jboss.cache.factories.ComponentRegistry.invokeInjectionMethod(ComponentRegistry.java:276) at org.jboss.cache.factories.ComponentRegistry$Component.injectDependencies(ComponentRegistry.java: 974)