|
|
Send the contents of the getStats() call. Are there any errors in the logs?
Aaron
--- On Fri, 11/7/08, Al Forbes <forbes.al@xxxxxxxxxxxxxx> wrote:
> From: Al Forbes <forbes.al@xxxxxxxxxxxxxx>
> Subject: Re: IndexedDiskCache insert, remove and reinsert question
> To: "JCS Users List" <jcs-users@xxxxxxxxxxxxxxxxxx>
> Date: Friday, November 7, 2008, 3:34 AM
> Hi Youngho,
>
> I do not have time to look at this in detail, but there are
> many test cases
> in the unit tests. If you have not look there, then
> tt's probably a good
> idea to look at those first.
>
> http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/test/
>
> Regards
> Al
>
> 2008/11/6 Youngho Cho <youngho@xxxxxxxxxxxx>
>
> > Hello,
> >
> > I tested some objects put into IndexedDiskCache and
> remove and reinsert
> > test like following.
> > But I can not pass the test.
> >
> > Is there something wrong in cache.ccf file ?
> > How can I pass the test ?
> >
> >
> >
> > Thanks,
> >
> > Youngho
> >
> >
> >
> > 1. test cache.ccf
> >
> > # DEFAULT CACHE REGION
> > jcs.default=DC
> >
> jcs.default.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes
> > jcs.default.cacheattributes.MaxObjects=0
> >
> >
> jcs.default.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache
> >
> jcs.default.cacheattributes.DiskUsagePatternName=UPDATE
> >
> jcs.default.elementattributes=org.apache.jcs.engine.ElementAttributes
> > jcs.default.elementattributes.IsEternal=false
> >
> >
> > # SYSTEM GROUP ID CACHE
> > jcs.system.groupIdCache=DC
> >
> >
> jcs.system.groupIdCache.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes
> > jcs.system.groupIdCache.cacheattributes.MaxObjects=0
> >
> >
> 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=d:/tmp
> > jcs.auxiliary.DC.attributes.maxKeySize=1000000
> > jcs.auxiliary.DC.attributes.MaxPurgatorySize=100
> > jcs.auxiliary.DC.attributes.OptimizeOnShutdown=false
> >
> > # PRE-DEFINED CACHE REGIONS
> > jcs.region.testCache1=DC
> >
> >
> jcs.region.testCache1.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes
> > jcs.region.testCache1.cacheattributes.MaxObjects=0
> >
> >
> jcs.region.testCache1.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache
> >
> >
> >
> jcs.region.testCache1.elementattributes=org.apache.jcs.engine.ElementAttributes
> >
> jcs.region.testCache1.elementattributes.IsEternal=false
> >
> jcs.region.testCache1.elementattributes.MaxLifeSeconds=0
> > jcs.region.testCache1.elementattributes.IsSpool=true
> > jcs.region.testCache1.elementattributes.IsLateral=true
> > jcs.region.testCache1.elementattributes.IsRemote=true
> >
> >
> >
> > 2. test class
> >
> > //
> > // JCSTest .java
> > //
> >
> > import java.io.File;
> >
> > import junit.framework.TestCase;
> >
> > 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 JCSTest extends TestCase
> > {
> >
> > protected static int MAX_NUM = 100000;
> >
> > protected JCS jcs = null;
> >
> > protected void setUp() throws Exception
> > {
> > File file = new File("d:/tmp");
> > if(file.exists())
> > {
> > File[] files = file.listFiles();
> > for(int i=0; i < files.length; i++)
> > {
> > files[i].delete();
> > }
> > }
> > JCS.setConfigFilename( "/TestJCS.ccf"
> );
> > jcs = JCS.getInstance("testCache1");
> > }
> >
> >
> > protected void tearDown()
> > throws Exception
> > {
> > jcs.dispose();
> > }
> >
> > protected void insert(int key) throws
> CacheException
> > {
> > Object obj = getCachedObject(key);
> > jcs.put(new Integer(key), obj);
> > }
> >
> > protected void insertMany(int maxNum) throws
> CacheException
> > {
> > for (int i = 0; i < maxNum; i++)
> > {
> > insert(i);
> > if ((i % 20000) == 0)
> > {
> > try
> > {
> > Thread.sleep(20000);
> > }
> > catch(Exception e)
> > {
> > //
> > }
> > }
> > }
> > }
> >
> > protected Object get(int key)
> > {
> > return jcs.get(new Integer(key));
> > }
> >
> > protected void getMany(int maxNum)
> > {
> > for (int i = 0; i < maxNum; i++)
> > {
> >
> assertNotNull(getCachedObject(i).toString(), get(i));
> > }
> > }
> >
> > protected void testMany(int maxNum) throws
> Exception
> > {
> > for (int i = 0; i < maxNum; i++)
> > {
> > final MockCache obj = (MockCache)get(i);
> >
> assertNotNull(getCachedObject(i).toString(), obj);
> > assertEquals(getCachedObject(i).getValue(),
> obj.getValue());
> > // remove
> > jcs.remove(new Integer(i));
> > assertNull("[" + i +"]
> should be removed" , get(i));
> >
> > // reinsert again
> > insert(i);
> >
> > final MockCache obj1 = (MockCache)get(i);
> > // retest
> > assertEquals(getCachedObject(i).getValue(),
> obj.getValue(),
> > obj1.getValue());
> > }
> > }
> >
> > protected void printStats()
> > {
> > System.out.println(jcs.getStats());
> > }
> >
> > public void testJCS() throws Exception
> > {
> > long start = System.currentTimeMillis();
> > insertMany(MAX_NUM);
> > System.out.println(" ");
> > System.out.println("[DONE] : insert
> takes " +
> > (System.currentTimeMillis() - start ) + "msec
> ");
> >
> > start = System.currentTimeMillis();
> > getMany(MAX_NUM);
> > System.out.println(" ");
> > System.out.println("[DONE] : get takes
> " +
> > (System.currentTimeMillis() - start ) + "msec
> ");
> >
> > start = System.currentTimeMillis();
> > testMany(MAX_NUM);
> > System.out.println(" ");
> > System.out.println("[DONE] : test
> takes " +
> > (System.currentTimeMillis() - start) + "msec
> ");
> >
> > printStats();
> > }
> >
> > protected static MockCache getCachedObject(int i)
> > {
> > return new MockCache(Integer.toString(i),
> > "some string [" +
> Integer.toString(i) + "]");
> > }
> > }
> >
> > //
> > // MockCache.java
> > //
> > import java.io.Serializable;
> >
> > public class MockCache implements Serializable
> > {
> >
> > private String key = null;
> > private String value = null;
> >
> > /**
> > *
> > */
> > public MockCache()
> > {
> > }
> >
> > /**
> > *
> > */
> > public MockCache(String key, String value)
> > {
> > this.key = key;
> > this.value = value;
> > }
> >
> > public String getValue()
> > {
> > return this.value;
> > }
> >
> > public String toString()
> > {
> > return "{[" + this.key + "]
> " + this.value + "}";
> > }
> > }
---------------------------------------------------------------------
To unsubscribe, e-mail: jcs-users-unsubscribe@xxxxxxxxxxxxxxxxxx
For additional commands, e-mail: jcs-users-help@xxxxxxxxxxxxxxxxxx
|
|