You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Gregory Fernandez (JIRA)" <ji...@apache.org> on 2012/07/19 15:48:35 UTC

[jira] [Commented] (JCS-97) Unable to get the stored Cached object from JCS

    [ https://issues.apache.org/jira/browse/JCS-97?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13418290#comment-13418290 ] 

Gregory Fernandez commented on JCS-97:
--------------------------------------

Hello,

How do you use this snippet ?

You put data in your cache with a timestamp as a key (szTempSession). Where do you store this key to retrieve the data from cache ?

I've just done a test, it's work smooth.
Step to do a simple test :
1. Add a field : private static String debugKey;
2. Add this code after szTempSession = szTempSession.replace(",", "n");
if ( bean.getSzPatientID().equals("000002") ) {
  debugKey = szTempSession;
}
3. Add a main method to test :
public static void main(String[] args) 	{
  PreSessionManager mycache = getInstance();
  for (int i = 0; i < 20000; i++) {
    mycache.createPreSession(String.format("%06d", i), "guide" + i, i / 2 == 0);
  }
  System.out.println(debugKey);
  System.out.println(mycache.getPreSessionBean(debugKey).getSzPatientID());
}


                
> Unable to get the stored Cached object from JCS
> -----------------------------------------------
>
>                 Key: JCS-97
>                 URL: https://issues.apache.org/jira/browse/JCS-97
>             Project: Commons JCS
>          Issue Type: Bug
>          Components: Composite Cache
>    Affects Versions: jcs-1.3
>         Environment: Production bug
>            Reporter: satheesh
>              Labels: newbie
>             Fix For: jcs-1.3
>
>
> when ever i am storing more than 1000 objects using "presessioncache" (cache name)
> whenever i am trying  to get the objects from stored memory it always returns null. please see my code below  and cache.ccf file.if i want to add 10000 objects could you tell me the configuration of cache.ccf file
> cache.ccf file
> ***************************************************************************************************************************
> # 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=80000
> jcs.default.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache
> jcs.default.elementattributes.IsEternal=true
> jcs.default.elementattributes.MaxLifeSeconds=3600
> jcs.default.elementattributes.IdleTime=1800
> jcs.default.elementattributes.IsSpool=true
> jcs.default.elementattributes.IsRemote=false
> jcs.default.elementattributes.IsLateral=false
> # sets the default aux value for any non configured caches
> jcs.preSessionCache=preSessionDC
> jcs.preSessionCache.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes
> jcs.preSessionCache.cacheattributes.MaxObjects=80000
> jcs.preSessionCache.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache
> jcs.preSessionCache.elementattributes.IsEternal=true
> jcs.preSessionCache.elementattributes.MaxLifeSeconds=3600
> jcs.preSessionCache.elementattributes.IdleTime=1800
> jcs.preSessionCache.elementattributes.IsSpool=true
> jcs.preSessionCache.elementattributes.IsRemote=false
> jcs.preSessionCache.elementattributes.IsLateral=false
> # sets the default aux value for any non configured caches
> jcs.postSessionCache=postSessionDC
> jcs.postSessionCache.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes
> jcs.postSessionCache.cacheattributes.MaxObjects=80000
> jcs.postSessionCache.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache
> jcs.postSessionCache.elementattributes.IsEternal=false
> jcs.postSessionCache.elementattributes.MaxLifeSeconds=3600
> jcs.postSessionCache.elementattributes.IdleTime=1800
> jcs.postSessionCache.elementattributes.IsSpool=false
> jcs.postSessionCache.elementattributes.IsRemote=false
> jcs.postSessionCache.elementattributes.IsLateral=false
> # AUXILIARY CACHES AVAILABLE
> # Primary Disk Cache -- faster than the rest because of memory key storage
> 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=c:/genone/wap/session
> jcs.auxiliary.DC.attributes.MaxPurgatorySize=10000
> jcs.auxiliary.DC.attributes.MaxKeySize=10000
> jcs.auxiliary.DC.attributes.OptimizeAtRemoveCount=300000
> jcs.auxiliary.DC.attributes.MaxRecycleBinSize=7500
> jcs.auxiliary.DC.attributes.OptimizeOnShutdown=true
> # Primary Disk Cache -- faster than the rest because of memory key storage
> jcs.auxiliary.preSessionDC=org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheFactory
> jcs.auxiliary.preSessionDC.attributes=org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheAttributes
> jcs.auxiliary.preSessionDC.attributes.DiskPath=c:/genone/wap/preSessionCache
> jcs.auxiliary.preSessionDC.attributes.MaxPurgatorySize=80000
> jcs.auxiliary.preSessionDC.attributes.MaxKeySize=60000
> jcs.auxiliary.preSessionDC.attributes.OptimizeAtRemoveCount=300000
> jcs.auxiliary.preSessionDC.attributes.MaxRecycleBinSize=7500
> jcs.auxiliary.preSessionDC.attributes.OptimizeOnShutdown=true
> # Primary Disk Cache -- faster than the rest because of memory key storage
> jcs.auxiliary.postSessionDC=org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheFactory
> jcs.auxiliary.postSessionDC.attributes=org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheAttributes
> jcs.auxiliary.postSessionDC.attributes.DiskPath=c:/genone/wap/postSessionCache
> jcs.auxiliary.postSessionDC.attributes.MaxPurgatorySize=80000
> jcs.auxiliary.postSessionDC.attributes.MaxKeySize=80000
> jcs.auxiliary.postSessionDC.attributes.OptimizeAtRemoveCount=300000
> jcs.auxiliary.postSessionDC.attributes.MaxRecycleBinSize=7500
> jcs.auxiliary.postSessionDC.attributes.OptimizeOnShutdown=true
> import java.text.SimpleDateFormat;
> import java.util.Date;
> import org.apache.jcs.JCS;
> import org.apache.log4j.Logger;
> *************************************************************************************************************************
> public class PreSessionManager {
>   
>     private static PreSessionManager instance;
>     private JCS preSessionCache;
>     private JCS patientSessionCache;
>   
>     public PreSessionManager() {
>         log4j.info("Entering Constructor.");
>         try {
>             preSessionCache = JCS.getInstance("preSessionCache");
>             patientSessionCache = JCS.getInstance("patientSessionCache");
>         } catch (Exception e) {
>             log4j.error("PreSession Error:", e);
>         }
>         log4j.info("Exiting Constructor.");
>     }
>     /**
>      *
>      * @return .
>      */
>     public static PreSessionManager getInstance() {
>         log4j.info("Entering getInstance.");
>         synchronized (PreSessionManager.class) {
>             if (instance == null) {
>                 instance = new PreSessionManager();
>             }
>         }
>         log4j.info("Exiting getInstance.");
>         return instance;
>     }
>     /**
>      *
>      * @param id .
>      * @return .
>      */
>     public PreSessionBean getPreSessionBean(final String id) {
>         log4j.info("Inside getPreSessionBean.");
>         return (PreSessionBean) preSessionCache.get(id);
>     }
>     
>     public PreSessionBean getPatientSessionBean(final String id) {
>         log4j.info("Inside getPatientSessionBean.");
>         return (PreSessionBean) patientSessionCache.get(id);
>     }
>     /**
>      *
>      * @param bean .
>      * @return .
>      */
>     public synchronized String createPreSession(final PreSessionBean bean) {
>         log4j.info("Entering createPreSession");
>         try {
>             SimpleDateFormat sdf = new SimpleDateFormat(
>                     "ddMMMyyyy(HH)mm:ss,SSS");           
>             
>             Date date = new Date();
>             String szTempSession = sdf.format(date);
>             szTempSession = szTempSession.replace("(", "h");
>             szTempSession = szTempSession.replace(")", "m");
>             szTempSession = szTempSession.replace(":", "s");
>             szTempSession = szTempSession.replace(",", "n");
>             log4j.info(" PatientID"+bean.getSzPatientID());
>             preSessionCache.put(szTempSession, bean);
>             patientSessionCache.put(szTempSession, bean);
>             log4j.info("Exiting createPreSession");
>             return szTempSession;
>         } catch (Exception e) {
>             log4j.error("PreSession Error:", e);
>             log4j.info("Exiting createPreSession");
>             return null;
>         }
>     }
>     /**
>      *
>      * @param szPatientID .
>      * @param szGuidelineIDs .
>      * @param isWAPSL .
>      * @return .
>      */
>     public String createPreSession(final String szPatientID,
>             final String szGuidelineIDs, final boolean isWAPSL) {
>         log4j.info("Entering createPreSession");
>         PreSessionBean bean = new PreSessionBean();
>         bean.setSzGuidelineID(szGuidelineIDs);
>         bean.setSzPatientID(szPatientID);
>         bean.setWAPSL(isWAPSL);
>         log4j.info("Exiting createPreSession");
>         return createPreSession(bean);
>     }
>     /**
>      *
>      * @param id .
>      * @return .
>      */
>     public PreSessionBean removePreSession(final String id) {
>         log4j.info("Entering removePreSession");
>         try {
>             PreSessionBean bean = (PreSessionBean) preSessionCache.get(id);
>             preSessionCache.remove(id);
>             log4j.info("Exiting removePreSession");
>             return bean;
>         } catch (Exception e) {
>             log4j.error("PreSession Error:", e);
>             log4j.info("Exiting removePreSession");
>             return null;
>         }
>     }
> }

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira