Class LruSessionCache

    • Field Detail

      • cacheIdleTimeoutInSeconds

        protected int cacheIdleTimeoutInSeconds
      • removalTimeoutInSeconds

        protected int removalTimeoutInSeconds
      • loadCountLock

        protected Object loadCountLock
      • loadFromBackupCount

        protected int loadFromBackupCount
      • removeIfIdle

        protected boolean removeIfIdle
      • 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:
        destroy in interface com.sun.appserv.util.cache.Cache
        Overrides:
        destroy in class com.sun.appserv.util.cache.BaseCache
      • setBackingStore

        public void setBackingStore​(org.glassfish.ha.store.api.BackingStore<Serializable,​org.glassfish.ha.store.util.SimpleMetadata> store)
      • trimItem

        protected void trimItem​(com.sun.appserv.util.cache.BaseCache.CacheItem item)
        trim the item from the cache and notify listeners
        Overrides:
        trimItem in class com.sun.appserv.util.cache.BaseCache
        Parameters:
        item - to be trimmed
      • itemAccessed

        protected void itemAccessed​(com.sun.appserv.util.cache.BaseCache.CacheItem item)
        Overrides:
        itemAccessed in class com.sun.appserv.util.cache.LruCache
      • getLoadFromBackupCount

        public int getLoadFromBackupCount()
      • incrementLoadFromBackupCount

        protected void incrementLoadFromBackupCount()
      • remove

        public Object remove​(Object sessionKey)
        Specified by:
        remove in interface com.sun.appserv.util.cache.Cache
        Overrides:
        remove in class com.sun.appserv.util.cache.BaseCache
      • remove

        public Object remove​(Object sessionKey,
                             boolean removeFromStore)
      • 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.
      • setShutdownState

        public void setShutdownState()
      • setUndeployedState

        public void setUndeployedState()
      • values

        public Iterator values()
        get an Iterator for the values stored in the cache
        Specified by:
        values in interface com.sun.appserv.util.cache.Cache
        Overrides:
        values in class com.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:
        createItem in class com.sun.appserv.util.cache.LruCache
      • setConfigData

        public void setConfigData​(String configData)
      • setMaxCacheSize

        public void setMaxCacheSize​(int val)