| java.lang.Object net.sf.ehcache.distribution.RMISynchronousCacheReplicator
All known Subclasses: net.sf.ehcache.distribution.RMIAsynchronousCacheReplicator,
Field Summary | |
final protected boolean | replicatePuts Whether to replicate puts. | final protected boolean | replicateRemovals | final protected boolean | replicateUpdates Whether to replicate updates. | final protected boolean | replicateUpdatesViaCopy Whether an update (a put) should be by copy or by invalidation, (a remove).
By copy is best when the entry is expensive to produce. | protected Status | status The status of the replicator. |
Constructor Summary | |
public | RMISynchronousCacheReplicator(boolean replicatePuts, boolean replicateUpdates, boolean replicateUpdatesViaCopy, boolean replicateRemovals) |
replicatePuts | final protected boolean replicatePuts(Code) | | Whether to replicate puts.
|
replicateRemovals | final protected boolean replicateRemovals(Code) | | Whether to replicate removes
|
replicateUpdates | final protected boolean replicateUpdates(Code) | | Whether to replicate updates.
|
replicateUpdatesViaCopy | final protected boolean replicateUpdatesViaCopy(Code) | | Whether an update (a put) should be by copy or by invalidation, (a remove).
By copy is best when the entry is expensive to produce. By invalidation is best when
we are really trying to force other caches to sync back to a canonical source like a database.
An example of a latter usage would be a read/write cache being used in Hibernate.
This setting only has effect if #replicateUpdates is true.
|
status | protected Status status(Code) | | The status of the replicator. Only replicates when STATUS_ALIVE
|
RMISynchronousCacheReplicator | public RMISynchronousCacheReplicator(boolean replicatePuts, boolean replicateUpdates, boolean replicateUpdatesViaCopy, boolean replicateRemovals)(Code) | | Constructor for internal and subclass use
Parameters: replicatePuts - Parameters: replicateUpdates - Parameters: replicateUpdatesViaCopy - Parameters: replicateRemovals - |
alive | final public boolean alive()(Code) | | Checks that the replicator is is STATUS_ALIVE .
|
clone | public Object clone() throws CloneNotSupportedException(Code) | | Creates a clone of this listener. This method will only be called by ehcache before a cache is initialized.
This may not be possible for listeners after they have been initialized. Implementations should throw
CloneNotSupportedException if they do not support clone.
a clone throws: CloneNotSupportedException - if the listener could not be cloned. |
dispose | public void dispose()(Code) | | Give the replicator a chance to cleanup and free resources when no longer needed
|
isReplicateUpdatesViaCopy | final public boolean isReplicateUpdatesViaCopy()(Code) | | whether update is through copy or invalidate |
listRemoteCachePeers | static List listRemoteCachePeers(Ehcache cache)(Code) | | Package protected List of cache peers
Parameters: cache - a list of CachePeer peers for the given cache, excluding the local peer. |
notAlive | final public boolean notAlive()(Code) | | Asserts that the replicator is active.
true if the status is not STATUS_ALIVE |
notifyElementEvicted | public void notifyElementEvicted(Ehcache cache, Element element)(Code) | | Called immediately after an element is evicted from the cache. Evicted in this sense
means evicted from one store and not moved to another, so that it exists nowhere in the
local cache.
In a sense the Element has been removed from the cache, but it is different,
thus the separate notification.
This replicator does not propagate these events
Parameters: cache - the cache emitting the notification Parameters: element - the element that has just been evicted |
notifyElementExpired | final public void notifyElementExpired(Ehcache cache, Element element)(Code) | |
This implementation does not propagate expiries. It does not need to do anything because the element will
expire in the remote cache at the same time. If the remote peer is not configured the same way they should
not be in an cache cluster.
|
notifyElementPut | public void notifyElementPut(Ehcache cache, Element element) throws CacheException(Code) | | Called immediately after an element has been put into the cache. The
net.sf.ehcache.Cache.put(net.sf.ehcache.Element) method
will block until this method returns.
Implementers may wish to have access to the Element's fields, including value, so the element is provided.
Implementers should be careful not to modify the element. The effect of any modifications is undefined.
Parameters: cache - the cache emitting the notification Parameters: element - the element which was just put into the cache. |
notifyElementRemoved | public void notifyElementRemoved(Ehcache cache, Element element) throws CacheException(Code) | | Called immediately after an attempt to remove an element. The remove method will block until
this method returns.
This notification is received regardless of whether the cache had an element matching
the removal key or not. If an element was removed, the element is passed to this method,
otherwise a synthetic element, with only the key set is passed in.
Parameters: cache - the cache emitting the notification Parameters: element - the element just deleted, or a synthetic element with just the key set ifno element was removed.param element just deleted |
notifyElementUpdated | public void notifyElementUpdated(Ehcache cache, Element element) throws CacheException(Code) | | Called immediately after an element has been put into the cache and the element already
existed in the cache. This is thus an update.
The
net.sf.ehcache.Cache.put(net.sf.ehcache.Element) method
will block until this method returns.
Implementers may wish to have access to the Element's fields, including value, so the element is provided.
Implementers should be careful not to modify the element. The effect of any modifications is undefined.
Parameters: cache - the cache emitting the notification Parameters: element - the element which was just put into the cache. |
|
|