On Nov 5, 2007, at 12:27 PM, Sie, Yang wrote:

Hello all:

I am trying to monitor memory consumption for all cache objects in
Jetspeed. This is what I did and for some reason that memoryStoreSize
and calculateInMemorySize gave me zero.

This is what I did basically by using EhCache API:

import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;

CacheManager ehCacheManager=CacheManager.getInstance();
String[] cacheNames=ehCacheManager.getCacheNames();

I looped thru the names and get 6 cache object names (which matches what
defined in ehcache.xml)

preferencesCache
portletApplicationNameCache
portletDefinitionOidCache
portletDefinitionNameCache
portletApplicationOidCache
portletContentCache

Then I used following

 Cache thisCache=ehCacheManager.getCache(aCacheName);
 long mss=thisCache.getMemoryStoreSize();

This API returns the number of elements in the memory store.
Could it be possible that we haven't loaded any prefs yet at this point?


 long ims=thisCache.calculateInMemorySize();

This call gets the size of the memory store for this cache. Perhaps if its not yet in use, it returns 0.
According to the javadocs:

Warning: This method can be very expensive to run. Allow approximately 1 second per 1MB of entries. Running this method could create liveness problems because the object lock is held for a long period

    Returns:
        the approximate size of the memory store in bytes


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

Reply via email to