I've been using JCS 1.2.7.9 probably about a year. I had this same issue when loading large numbers of objects into the cache in series - writing through from memory to disk. The solution was to set the purgatory max size to infinite> jcs.auxiliary.DC.attributes.MaxPurgatorySize=-1
Hope this helps, Dennis -----Original Message----- From: vinay b Sent: Friday, July 18, 2008 1:19 PM To: JCS Users List Subject: Re: what happened to my cache keys Yes, that's my intent. Basically, I'd like to have this cache persist all elements on disk file when shut down. THanks On Fri, Jul 18, 2008 at 3:10 PM, Tim Cronin <[EMAIL PROTECTED]> wrote: > jcs.auxiliary.DC.attributes.maxKeySize=1000000 > > it should spool to disk for overflow? > > -----Original Message----- > From: Niall Gallagher > Sent: Friday, July 18, 2008 1:18 PM > To: JCS Users List > Subject: Re: what happened to my cache keys > > MaxObjects=10000 ? > > On Fri, 2008-07-18 at 13:06 -0500, vinay b wrote: > > > I seem to be losing about 90 % of my keys: > > > > 1. insert 500,000 elements in the cache via a loop > > 2. loop through and check whether all elements are accesable > > > > The results and code snippets follow: > > > > STATS: > > > > The stats I get (verified both via a counter I implement) and via the > > stats() method are > > > > Thanks in advance > > > > Vin B > > > > from my code debugs: > > found 45963 in 490001 tries > > end get, ... found 55962 in 500001 tries > > > > > > from the stats: > > Region Name = testCache1 > > HitCountRam = 0 > > HitCountAux = 55962 > > > > ---------------------------LRU Memory Cache > > List Size = 9998 > > Map Size = 9998 > > Put Count = 555962 ==================================> ???? > > Hit Count = 0 > > Miss Count = 500000 =================================> why am I > missing hits > > here > > ---------------------------Indexed Disk Cache > > Is Alive = true > > Key Map Size = 55962 ================================> ???? > > Data File Length = 38544627 > > Hit Count = 55962 > > Bytes Free = 0 > > Optimize Operation Count = 0 > > Times Optimized = 0 > > Recycle Count = 0 > > Recycle Bin Size = 0 > > Startup Size = 46431 > > Purgatory Hits = 0 > > Purgatory Size = 0 > > Working = true > > Alive = true > > Empty = true > > Size = 0 > > Jul 18, 2008 12:28:00 PM > > org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCache$ShutdownHook > run > > WARNING: Region [testCache1] Disk cache not shutdown properly, > shutting down > > now. > > > > > > CODE > > # DEFAULT CACHE REGION > > > > #jcs.default=DC,LTCP > > jcs.default=DC > > > jcs.default.cacheattributes=org.apache.jcs.engine.CompositeCacheAttribut > es > > jcs.default.cacheattributes.MaxObjects=10000 > > > jcs.default.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory > .lru.LRUMemoryCache > > > > # PRE-DEFINED CACHE REGIONS > > > > #jcs.region.testCache1=DC,LTCP > > jcs.region.testCache1=DC > > > jcs.region.testCache1.cacheattributes=org.apache.jcs.engine.CompositeCac > heAttributes > > jcs.region.testCache1.cacheattributes.MaxObjects=10000 > > > jcs.region.testCache1.cacheattributes.MemoryCacheName=org.apache.jcs.eng > ine.memory.lru.LRUMemoryCache > > jcs.region.testCache1.cacheattributes.UseMemoryShrinker=true > > jcs.region.testCache1.cacheattributes.MaxMemoryIdleTimeSeconds=3600 > > jcs.region.testCache1.cacheattributes.ShrinkerIntervalSeconds=600 > > jcs.region.testCache1.cacheattributes.MaxSpoolPerRun=500 > > > jcs.region.testCache1.elementattributes=org.apache.jcs.engine.ElementAtt > ributes > > jcs.region.testCache1.elementattributes.IsEternal=true > > > > > > # AVAILABLE AUXILIARY CACHES > > > jcs.auxiliary.DC=org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheF > actory > > > jcs.auxiliary.DC.attributes=org.apache.jcs.auxiliary.disk.indexed.Indexe > dDiskCacheAttributes > > jcs.auxiliary.DC.attributes.DiskPath=c:/tmp > > jcs.auxiliary.DC.attributes.maxKeySize=1000000 > > > > > > > > /////////////////////////////////////////// > > package com.interlegis.ehcachevsjcs; > > > > import org.apache.commons.logging.Log; > > import org.apache.commons.logging.LogFactory; > > import org.apache.jcs.JCS; > > import org.apache.jcs.access.exception.CacheException; > > import org.apache.jcs.engine.CompositeCacheAttributes; > > import org.apache.jcs.engine.behavior.ICompositeCacheAttributes; > > import org.apache.jcs.utils.struct.LRUMap; > > > > public class JCSApp { > > > > private static int MAX_NUM = 500000; > > > > private Log log = null; > > private JCS jcs = null; > > > > public void init() throws CacheException { > > log = LogFactory.getLog(LRUMap.class); > > jcs = JCS.getInstance("testCache1"); > > } > > > > public void insert(int key) throws CacheException { > > jcs.put(Integer.toString(key), new > MyObjectVO(Integer.toString(key), > > "some string" + Integer.toString(key))); > > } > > > > public void insertMany(int maxNum) throws CacheException { > > for (int i = 0; i < maxNum; i++) { > > insert(i); > > > > if ((i % 10000) == 0) { > > System.out.println("inserted " + i + " records"); > > } > > } > > } > > > > public Object get(int key) { > > return jcs.get(Integer.toString(key)); > > } > > > > public void getMany(int maxNum) { > > int count = 0; > > int i = 0; > > for (i = 0; i < maxNum; i++) { > > if (get(i) != null) { > > count++; > > } > > > > if ((i % 10000) == 0) { > > System.out.println("found " + count + " in " + (i + 1) > > + " tries"); > > } > > } > > > > System.out.println("end get, ... found " + count + " in " + (i > + 1) > > + " tries"); > > } > > > > public void junk() { > > > > } > > > > public void printStats() { > > ; > > System.out.println(jcs.getStats()); > > } > > > > public static void main(String[] args) { > > JCSApp jc = new JCSApp(); > > > > try { > > jc.init(); > > jc.insertMany(MAX_NUM); > > System.out.println("insert complete"); > > jc.getMany(MAX_NUM); > > jc.printStats(); > > > > } catch (CacheException e) { > > // TODO Auto-generated catch block > > e.printStackTrace(); > > } > > > > } > > } > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]