Class LruSessionCache
- java.lang.Object
-
- com.sun.appserv.util.cache.BaseCache
-
- com.sun.appserv.util.cache.LruCache
-
- com.sun.ejb.containers.util.cache.LruEJBCache
-
- com.sun.ejb.containers.util.cache.LruSessionCache
-
- All Implemented Interfaces:
com.sun.appserv.util.cache.Cache,EjbCacheStatsProviderDelegate,StatsProvider
- Direct Known Subclasses:
FIFOSessionCache,NRUSessionCache,UnBoundedSessionCache
public class LruSessionCache extends LruEJBCache implements EjbCacheStatsProviderDelegate
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classLruSessionCache.LruSessionCacheItem
-
Field Summary
Fields Modifier and Type Field Description protected org.glassfish.ha.store.api.BackingStore<Serializable,org.glassfish.ha.store.util.SimpleMetadata>backingStoreprotected intcacheIdleTimeoutInSecondsprotected StringconfigDataprotected intconfMaxCacheSizeprotected SFSBContainerCallbackcontainerprotected ObjectloadCountLockprotected intloadFromBackupCountprotected intremovalTimeoutInSecondsprotected booleanremoveIfIdle-
Fields inherited from class com.sun.ejb.containers.util.cache.LruEJBCache
_logger, cacheName
-
-
Constructor Summary
Constructors Constructor Description LruSessionCache(String cacheName, SFSBContainerCallback container, int cacheIdleTime, int removalTime)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidappendStats(StringBuffer sbuf)protected com.sun.appserv.util.cache.BaseCache.CacheItemcreateItem(int hashCode, Object sessionKey, Object value, int size)voiddestroy()Destroys all references.booleaneligibleForRemovalFromCache(StatefulEJBContext ctx, Serializable sessionKey)Called by StatefulSessionContainer before passivation to determine whether or not removal-timeout has elapsed for a cache item.intgetCacheHits()intgetCacheMisses()intgetLoadFromBackupCount()intgetMaxCacheSize()intgetNumBeansInCache()intgetNumExpiredSessionsRemoved()intgetNumPassivationErrors()intgetNumPassivations()intgetNumPassivationSuccess()intgetNumVictimsAccessed()protected voidincrementLoadFromBackupCount()protected voiditemAccessed(com.sun.appserv.util.cache.BaseCache.CacheItem item)StatefulEJBContextlookupEJB(Serializable sessionKey, SFSBContainerCallback container, Object cookie)booleanpassivateEJB(StatefulEJBContext ctx, Serializable sessionKey)Objectremove(Object sessionKey)Objectremove(Object sessionKey, boolean removeFromStore)voidsetBackingStore(org.glassfish.ha.store.api.BackingStore<Serializable,org.glassfish.ha.store.util.SimpleMetadata> store)voidsetConfigData(String configData)voidsetMaxCacheSize(int val)voidsetShutdownState()voidsetStatefulSessionStoreMonitor(StatefulSessionStoreMonitor storeMonitor)voidsetUndeployedState()voidshutdown()protected voidtrimItem(com.sun.appserv.util.cache.BaseCache.CacheItem item)trim the item from the cache and notify listenersvoidtrimTimedoutItems(int maxTrimCount)trim the timedOut entries from the cache.voidtrimUnSortedTimedoutItems(int maxCount)This method picks idle items from a cache which does not have a sorted LRU list NRU cache at light loads and FIFO caches do not maintain a LRU list and hence they have to scan the entire cache and select victimsIteratorvalues()get an Iterator for the values stored in the cache-
Methods inherited from class com.sun.ejb.containers.util.cache.LruEJBCache
itemAdded, setCacheName, trimLru
-
Methods inherited from class com.sun.appserv.util.cache.LruCache
getStatByName, getStats, init, itemRefreshed, itemRemoved, setTimeout, trimExpiredEntries
-
Methods inherited from class com.sun.appserv.util.cache.BaseCache
_put, _remove, _removeItem, add, add, addCacheListener, clear, clearStats, contains, decrementEntryCount, elements, eq, get, get, getAll, getEntryCount, getIndex, getIndex, handleOverflow, hash, incrementAddCount, incrementEntryCount, incrementHitCount, incrementMissCount, incrementOverflowCount, incrementRefreshCount, incrementRemovalCount, init, init, isEmpty, isThresholdReached, keys, loadValue, notifyRefresh, put, put, remove, remove, removeAll, waitRefresh
-
-
-
-
Field Detail
-
cacheIdleTimeoutInSeconds
protected int cacheIdleTimeoutInSeconds
-
removalTimeoutInSeconds
protected int removalTimeoutInSeconds
-
loadCountLock
protected Object loadCountLock
-
loadFromBackupCount
protected int loadFromBackupCount
-
removeIfIdle
protected boolean removeIfIdle
-
container
protected SFSBContainerCallback container
-
backingStore
protected org.glassfish.ha.store.api.BackingStore<Serializable,org.glassfish.ha.store.util.SimpleMetadata> backingStore
-
configData
protected String configData
-
confMaxCacheSize
protected int confMaxCacheSize
-
-
Constructor Detail
-
LruSessionCache
public LruSessionCache(String cacheName, SFSBContainerCallback container, int cacheIdleTime, int removalTime)
-
-
Method Detail
-
destroy
public void destroy()
Destroys all references. This is the last method call of this object's life cycle. This method is called during undeploy of ejb container.- Specified by:
destroyin interfacecom.sun.appserv.util.cache.Cache- Overrides:
destroyin classcom.sun.appserv.util.cache.BaseCache
-
setBackingStore
public void setBackingStore(org.glassfish.ha.store.api.BackingStore<Serializable,org.glassfish.ha.store.util.SimpleMetadata> store)
-
setStatefulSessionStoreMonitor
public void setStatefulSessionStoreMonitor(StatefulSessionStoreMonitor storeMonitor)
-
trimItem
protected void trimItem(com.sun.appserv.util.cache.BaseCache.CacheItem item)
trim the item from the cache and notify listeners- Overrides:
trimItemin classcom.sun.appserv.util.cache.BaseCache- Parameters:
item- to be trimmed
-
itemAccessed
protected void itemAccessed(com.sun.appserv.util.cache.BaseCache.CacheItem item)
- Overrides:
itemAccessedin classcom.sun.appserv.util.cache.LruCache
-
getLoadFromBackupCount
public int getLoadFromBackupCount()
-
incrementLoadFromBackupCount
protected void incrementLoadFromBackupCount()
-
lookupEJB
public StatefulEJBContext lookupEJB(Serializable sessionKey, SFSBContainerCallback container, Object cookie)
-
remove
public Object remove(Object sessionKey)
- Specified by:
removein interfacecom.sun.appserv.util.cache.Cache- Overrides:
removein classcom.sun.appserv.util.cache.BaseCache
-
eligibleForRemovalFromCache
public boolean eligibleForRemovalFromCache(StatefulEJBContext ctx, Serializable sessionKey)
Called by StatefulSessionContainer before passivation to determine whether or not removal-timeout has elapsed for a cache item. If so, it will be directly removed instead of passivated. See issue 16188.
-
passivateEJB
public boolean passivateEJB(StatefulEJBContext ctx, Serializable sessionKey) throws NotSerializableException
- Throws:
NotSerializableException
-
setShutdownState
public void setShutdownState()
-
setUndeployedState
public void setUndeployedState()
-
values
public Iterator values()
get an Iterator for the values stored in the cache- Specified by:
valuesin interfacecom.sun.appserv.util.cache.Cache- Overrides:
valuesin classcom.sun.appserv.util.cache.BaseCache
-
shutdown
public void shutdown()
-
trimTimedoutItems
public void trimTimedoutItems(int maxTrimCount)
trim the timedOut entries from the cache. This call is to be scheduled by a thread managed by the container. In this case a sorted LRU list exists based on access time and this list is scanned
-
trimUnSortedTimedoutItems
public void trimUnSortedTimedoutItems(int maxCount)
This method picks idle items from a cache which does not have a sorted LRU list NRU cache at light loads and FIFO caches do not maintain a LRU list and hence they have to scan the entire cache and select victims
-
getNumVictimsAccessed
public int getNumVictimsAccessed()
-
createItem
protected com.sun.appserv.util.cache.BaseCache.CacheItem createItem(int hashCode, Object sessionKey, Object value, int size)- Overrides:
createItemin classcom.sun.appserv.util.cache.LruCache
-
setConfigData
public void setConfigData(String configData)
-
appendStats
public void appendStats(StringBuffer sbuf)
- Specified by:
appendStatsin interfaceStatsProvider
-
getCacheHits
public int getCacheHits()
- Specified by:
getCacheHitsin interfaceEjbCacheStatsProviderDelegate
-
getCacheMisses
public int getCacheMisses()
- Specified by:
getCacheMissesin interfaceEjbCacheStatsProviderDelegate
-
getNumBeansInCache
public int getNumBeansInCache()
- Specified by:
getNumBeansInCachein interfaceEjbCacheStatsProviderDelegate
-
getNumExpiredSessionsRemoved
public int getNumExpiredSessionsRemoved()
- Specified by:
getNumExpiredSessionsRemovedin interfaceEjbCacheStatsProviderDelegate
-
getNumPassivationErrors
public int getNumPassivationErrors()
- Specified by:
getNumPassivationErrorsin interfaceEjbCacheStatsProviderDelegate
-
getNumPassivations
public int getNumPassivations()
- Specified by:
getNumPassivationsin interfaceEjbCacheStatsProviderDelegate
-
getNumPassivationSuccess
public int getNumPassivationSuccess()
- Specified by:
getNumPassivationSuccessin interfaceEjbCacheStatsProviderDelegate
-
setMaxCacheSize
public void setMaxCacheSize(int val)
-
getMaxCacheSize
public int getMaxCacheSize()
- Specified by:
getMaxCacheSizein interfaceEjbCacheStatsProviderDelegate
-
-