I am new to JCS and am having difficulty getting it up and running.
It looks like for some reason I am unable to add objects to the cache....
I have included all of my configuration below and hope that you will be able to
point me to what I am doing wrong.


I want to use a simple LRUMemory Cache. I don't care about auxiliary  caches in 
this case.

I have tried configuring this stuff in so many ways....

My Goal is to cache Set<String> objects... To get around the generics casting 
errors
I have a small class that wraps the set:

private class cacheSet extends Object{
    public Set<String> set = null;
    public cacheSet(){
        set = new LinkedHashSet<String>();
    }
}

I have simplified the function that uses the cache below......

public Set<String> getSet(String Key){
    cacheSet result = null;
    Connection conn = null;


    //Check the Cache First
    result = (cacheSet)unitCache.get(attributeKey);

    if(result == null){              //if it wasnt in the cache then go to DB
        result = new cacheSet();
        conn = ds.getConnection();

        /***************
            DATABASE CODE TO POPULATE SET
        ****************/

        try{ //add object to cache
            unitCache.put(attributeKey, (Object)result);
        }
        catch(Exception e){
            //This is not a fatal error it simply did not get cached.
            //log the error so that if it happens alot we can troubleshoot it
            log.info("Unable to add to unitCache: " + e.getMessage() + " cause: 
" + e.getCause() );
        }
    }

    return result.set;
}

In the log file, I get the following line from my Exception Handler above

INFO: Unable to add to unitCache: cacheSet cause: null


I have tried everything I can think of to make this work.... Please any 
guidance would be much appreciated.

I am currently configuring the cache region like this in my constructor:
    try{

        ICompositeCacheAttributes cacheAttr = new 
org.apache.jcs.engine.CompositeCacheAttributes();
        cacheAttr.setMaxObjects(500);
        
cacheAttr.setMemoryCacheName("org.apache.jcs.engine.memory.lru.LRUMemoryCache");
        cacheAttr.setUseLateral( false );
        cacheAttr.setUseRemote( false );
        IElementAttributes elemAttr = new 
org.apache.jcs.engine.ElementAttributes();
        elemAttr.setIsEternal( true );
        elemAttr.setIsSpool( true );
        elemAttr.setIsLateral( false );
        elemAttr.setIsRemote( false );

        JCS.defineRegion("enumCache", cacheAttr, elemAttr);
        JCS.defineRegion("unitCache", cacheAttr, elemAttr);

        enumCache = JCS.getInstance("enumCache");
        unitCache = JCS.getInstance("unitCache");

    }
    catch(Exception e){
        throw new CommonRepositoryDaoSysException(
                "Unable to setup Cache.", e);
    }

BUT have also tried configuring the region in ccf file like this:
# DEFAULT CACHE REGION
jcs.default=
jcs.default.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes
jcs.default.cacheattributes.MaxObjects=1000
jcs.default.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache
jcs.default.elementattributes=org.apache.jcs.engine.ElementAttributes
jcs.default.elementattributes.IsEternal=true
jcs.default.elementattributes.IsSpool=true
jcs.default.elementattributes.IsLateral=false
jcs.default.elementattributes.IsRemote=false

# Regions preconfigured for caching
#unit Cache
jcs.region.unitCache=
jcs.region.unitCache.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes
jcs.region.unitCache.cacheattributes.MaxObjects=1000
jcs.region.unitCache.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache
jcs.region.unitCache.elementattributes=org.apache.jcs.engine.ElementAttributes
jcs.region.unitCache.elementattributes.IsEternal=true
jcs.region.unitCache.elementattributes.IsSpool=false
jcs.region.unitCache.elementattributes.IsLateral=false
jcs.region.unitCache.elementattributes.IsRemote=false


Thanks
--Naveen





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to