commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Wynter <da...@stpenable.com>
Subject [JCS] Dynamically adding regions
Date Tue, 22 Nov 2011 14:31:16 GMT
Hi,

New to JCS, although I did use Turbines' cache eons ago...

My app allows the user to add their own caches driven from SQL queries 
with a single key and an array of String values as the 'value'. After 
reading this "The most basic configuration would be a pure memory cache 
where every region takes the default values." It made me believe that I 
could have a single default defn in cache.ccf and then just add regions 
on the fly. This appears to be true see "" below in the log

[INFO  14:04:48.690 GMT] qtp115556431-64:CompositeCacheManager - 
Creating cache manager from config file: /cache.ccf
[INFO  14:04:48.698 GMT] qtp115556431-64:ThreadPoolManager - 
thread_pool.default PoolConfiguration = useBoundary = [true] 
boundarySize = [2000] maximumPoolSize = [150] minimumPoolSize = [4] 
keepAliveTime = [300000] whenBlockedPolicy = [RUN] startUpSize = [4]
[INFO  14:04:48.703 GMT] qtp115556431-64:CompositeCacheConfigurator - 
Setting default auxiliaries to DC
[INFO  14:04:48.708 GMT] qtp115556431-64:CompositeCacheConfigurator - 
setting defaultCompositeCacheAttributes to [ useLateral = true, 
useRemote = true, useDisk = true, maxObjs = 30000, maxSpoolPerRun = -1, 
diskUsagePattern = 0 ]
[INFO  14:04:48.708 GMT] qtp115556431-64:CompositeCacheConfigurator - No 
special ElementAttribute class defined for key 
[jcs.default.elementattributes], using default class.
[INFO  14:04:48.712 GMT] qtp115556431-64:CompositeCacheConfigurator - 
setting defaultElementAttributes to [ IS_LATERAL = true, IS_SPOOL = 
true, IS_REMOTE = true, IS_ETERNAL = true, MaxLifeSeconds = 50, IdleTime 
= 50, CreateTime = 1321970688708, LastAccessTime = 1321970688708, 
getTimeToLiveSeconds() = 49, createTime = 1321970688708 ]
[INFO  14:04:48.712 GMT] qtp115556431-64:CompositeCacheConfigurator - No 
special ElementAttribute class defined for key 
[jcs.system.groupIdCache.elementattributes], using default class.
[INFO  14:04:48.728 GMT] qtp115556431-64:LRUMemoryCache - initialized 
LRUMemoryCache for groupIdCache
[INFO  14:04:48.729 GMT] qtp115556431-64:CompositeCache - Constructed 
cache with name [groupIdCache] and cache attributes [ useLateral = true, 
useRemote = true, useDisk = true, maxObjs = 1, maxSpoolPerRun = -1, 
diskUsagePattern = 0 ]
[INFO  14:04:48.764 GMT] qtp115556431-64:IndexedDiskCache - Region 
[groupIdCache] Cache file root directory: ./jcs
[INFO  14:04:48.768 GMT] qtp115556431-64:IndexedDiskCache - Region 
[groupIdCache] Set maxKeySize to: '5000'
[INFO  14:04:48.770 GMT] qtp115556431-64:IndexedDiskCache - Region 
[groupIdCache] Indexed Disk Cache is alive.
[INFO  14:04:48.771 GMT] qtp115556431-64:CompositeCacheConfigurator - 
Parsed regions []
[INFO  14:04:48.771 GMT] qtp115556431-64:CompositeCacheConfigurator - 
Finished configuration in 70 ms.
[INFO  14:04:48.771 GMT] qtp115556431-64:CompositeCacheConfigurator - No 
special ElementAttribute class defined for key [jcs.region.Cache for FI 
Instrument CUSIP.elementattributes], using default class.
[INFO  14:04:48.771 GMT] qtp115556431-64:LRUMemoryCache - initialized 
LRUMemoryCache for Cache for Instrument Agra
[INFO  14:04:48.772 GMT] qtp115556431-64:CompositeCache - Constructed 
cache with name [Cache for Instrument Agra] and cache attributes [ 
useLateral = true, useRemote = true, useDisk = true, maxObjs = 30000, 
maxSpoolPerRun = -1, diskUsagePattern = 0 ]
[INFO  14:04:48.772 GMT] qtp115556431-64:IndexedDiskCache - Region 
[Cache for FI Instrument CUSIP] Cache file root directory: ./jcs
[INFO  14:04:48.772 GMT] qtp115556431-64:IndexedDiskCache - Region 
[Cache for FI Instrument CUSIP] Set maxKeySize to: '5000'
[INFO  14:04:48.772 GMT] qtp115556431-64:IndexedDiskCache - Region 
[Cache for FI Instrument CUSIP] Indexed Disk Cache is alive.


But I get this:
java.lang.NullPointerException
     at 
org.apache.jcs.config.OptionConverter.findAndSubst(OptionConverter.java:292)
     at 
org.apache.jcs.config.OptionConverter.instantiateByKey(OptionConverter.java:170)
     at 
org.apache.jcs.engine.control.CompositeCacheConfigurator.parseElementAttributes(CompositeCacheConfigurator.java:441)
     at 
org.apache.jcs.engine.control.CompositeCacheConfigurator.parseRegion(CompositeCacheConfigurator.java:307)
     at 
org.apache.jcs.engine.control.CompositeCacheConfigurator.parseRegion(CompositeCacheConfigurator.java:283)
     at 
org.apache.jcs.engine.control.CompositeCacheManager.getCache(CompositeCacheManager.java:448)
     at 
org.apache.jcs.engine.control.CompositeCacheManager.getCache(CompositeCacheManager.java:387)
     at 
org.apache.jcs.engine.control.CompositeCacheManager.getCache(CompositeCacheManager.java:374)
     at 
com.yambina.edm.edmengine.cacheservice.CacheServiceImpl.testCache(CacheServiceImpl.java:27)

Where CacheServiceImpl:27 looks like this:
     @Override
     public boolean testCache(String cachename) {
         if(ccm.getCache(cachename) != null)
             return true;
         return false;
     }
i.e. CompositeCacheManager.getCache(String name)

And yes the cache is one I created and shows in that log above.

Ideas on what I am missing?

my cache.ccf

# DEFAULT CACHE REGION
# sets the default aux value for any non configured caches
jcs.default=DC
jcs.default.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes
jcs.default.cacheattributes.MaxObjects=30000
jcs.default.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache
jcs.default.elementattributes.IsEternal=true
jcs.default.elementattributes.MaxLifeSeconds=50
jcs.default.elementattributes.IdleTime=50
jcs.default.elementattributes.IsSpool=true
jcs.default.elementattributes.IsRemote=true
jcs.default.elementattributes.IsLateral=true

# SYSTEM CACHE

# should be defined for the storage of group attribute list
jcs.system.groupIdCache=DC
jcs.system.groupIdCache.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes
jcs.system.groupIdCache.cacheattributes.MaxObjects=1
jcs.system.groupIdCache.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache

# AVAILABLE AUXILIARY CACHES

jcs.auxiliary.DC=org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheFactory
jcs.auxiliary.DC.attributes=org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheAttributes
jcs.auxiliary.DC.attributes.DiskPath=./jcs

Thx.

David

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message