wt.lifecycle
Class LifeCycleTemplateNameCache

java.lang.Object
  extended byjava.rmi.server.RemoteObject
      extended byjava.rmi.server.RemoteServer
          extended bywt.util.RMIServer
              extended bywt.cache.CacheManager
                  extended bywt.lifecycle.LifeCycleTemplateNameCache
All Implemented Interfaces:
CacheServer, Remote, Serializable, Unreferenced

public class LifeCycleTemplateNameCache
extends CacheManager

This class implements cache service to store QuerySpec of all Life Cycle template, based on the name of the template. It follows the 2-level cache paradigm. Creation and updates to Life Cycle templates objects must be communicated to the cache by the Life Cycle service.

See Also:
Serialized Form

Nested Class Summary
static class LifeCycleTemplateNameCache.LifeCycleNameKey
           
 
Field Summary
private static int cacheHits
           
private static int cacheSummaryInterval
           
(package private)  Cache names
           
(package private)  Cache persistables
           
protected static boolean STACKTRACE
           
protected static boolean VERBOSE
           
 
Fields inherited from class wt.cache.CacheManager
MASTER
 
Fields inherited from class wt.util.RMIServer
csf, ssf
 
Fields inherited from class java.rmi.server.RemoteServer
 
Fields inherited from class java.rmi.server.RemoteObject
ref
 
Fields inherited from interface wt.cache.CacheServer
versionID
 
Constructor Summary
LifeCycleTemplateNameCache()
          Contruct a LifeCycleTemplateName cache.
 
Method Summary
 Object get(Object key)
          Key is expected to be an ObjectIdentifier or LifeCycleNameKey The return Object is a Persistable.
 int getDefaultSize()
          Get desired size of this cache.
protected  void putEntry(Object key, Object value)
          Protected method which allows subclasses of CacheManager to take some action when a new entry is being put into the local cache.
protected  void removeEntry(Object key)
          Protected method which allows subclasses of CacheManager to take some action when a entry is being removed from the local cache.
private  void reportCacheStats()
           
 void reset()
          Reset local cache after master reconnect.
 
Methods inherited from class wt.cache.CacheManager
checkAccess, getDefaultName, getEntry, isCacheHost, overflow, ping, put, putEntry, reference, registerSlave, remove, remove, removeEntry, unreferenced, update, updateEntry, updateEntry
 
Methods inherited from class wt.util.RMIServer
clone, exportObject, exportObject, exportObject, getClientSocketFactory, getPort, getServerSocketFactory, getStub, isHostInList, isLocalHost, setPort, writeReplace
 
Methods inherited from class java.rmi.server.RemoteServer
getClientHost, getLog, setLog
 
Methods inherited from class java.rmi.server.RemoteObject
equals, getRef, hashCode, toString, toStub
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

VERBOSE

protected static boolean VERBOSE

STACKTRACE

protected static boolean STACKTRACE

cacheSummaryInterval

private static int cacheSummaryInterval

cacheHits

private static int cacheHits

names

Cache names

persistables

Cache persistables
Constructor Detail

LifeCycleTemplateNameCache

public LifeCycleTemplateNameCache()
                           throws RemoteException
Contruct a LifeCycleTemplateName cache.

Method Detail

get

public Object get(Object key)
Key is expected to be an ObjectIdentifier or LifeCycleNameKey The return Object is a Persistable.

Overrides:
get in class CacheManager
Parameters:
key - the key object
Returns:
the corresponding cached object or null if not in cache

putEntry

protected void putEntry(Object key,
                        Object value)
Description copied from class: CacheManager
Protected method which allows subclasses of CacheManager to take some action when a new entry is being put into the local cache. This method is invoked to put the entry in the local cache as a result of a local put call or a call forwarded from a slave cache or when a local get call downloads the entry from a master cache. If this cache has a master cache, the put call will already be forwarded to the master before this method is invoked. Slave caches will be notified to remove their entries after this method returns. This method must not cause a recursive put call.

Supported API: true

Overrides:
putEntry in class CacheManager
Parameters:
key - the key object
value - the value object

removeEntry

protected void removeEntry(Object key)
Description copied from class: CacheManager
Protected method which allows subclasses of CacheManager to take some action when a entry is being removed from the local cache. This method is invoked to remove the entry in the local cache as a result of a local remove call or a call forwarded from a master cache. If this cache has a master cache, the remove call will already be forwarded to the master before this method is invoked. Slave caches will be notified to remove their entries after this method returns. This method must not cause a recursive remove call.

This method is not called when entries are being removed by the overflow or reset methods.

Supported API: true

Overrides:
removeEntry in class CacheManager
Parameters:
key - the key object (null = clear entire cache)

reportCacheStats

private void reportCacheStats()

reset

public void reset()
           throws RemoteException
Description copied from class: CacheManager
Reset local cache after master reconnect. Called after recovery from communication failure when a connection to a new master has been established. The current cache contents are cleared and the local cache is registered as a slave of the new master.

NOTE: This may be called as a result of calling other cache updating operations since that is when the disconnect and reconnect may take place. When this happens, this method is called before the other methods return.

Supported API: true

Overrides:
reset in class CacheManager
Throws:
RemoteException

getDefaultSize

public int getDefaultSize()
Description copied from class: CacheManager
Get desired size of this cache. This method attemps to find a size property called wt.cache.size.CacheName where cacheName is the name of this cache. Subclasses can override this method to control cache size in some other way. If no property is found, the default size is 100.

Supported API: true

Overrides:
getDefaultSize in class CacheManager