public class RMICachePeer extends java.rmi.server.UnicastRemoteObject implements CachePeer, java.rmi.Remote
CachePeer
.
This class features a customised RMIClientSocketFactory which enables socket timeouts to be configured.Modifier and Type | Field and Description |
---|---|
private Ehcache |
cache |
private java.lang.String |
hostname |
private static org.slf4j.Logger |
LOG |
private java.lang.Integer |
remoteObjectPort |
private java.lang.Integer |
rmiRegistryPort |
Constructor and Description |
---|
RMICachePeer(Ehcache cache,
java.lang.String hostName,
java.lang.Integer rmiRegistryPort,
java.lang.Integer remoteObjectPort,
java.lang.Integer socketTimeoutMillis)
Construct a new remote peer.
|
Modifier and Type | Method and Description |
---|---|
(package private) Ehcache |
getBoundCacheInstance()
Gets the cache instance that this listener is bound to
|
java.util.List |
getElements(java.util.List keys)
Gets a list of elements from the cache, for a list of keys, without updating Element statistics.
|
java.lang.String |
getGuid()
Gets the globally unique id for the underlying
Cache instance. |
java.util.List |
getKeys()
Returns a list of all elements in the cache, whether or not they are expired.
|
java.lang.String |
getName()
Gets the cache name
|
Element |
getQuiet(java.io.Serializable key)
Gets an element from the cache, without updating Element statistics.
|
java.lang.String |
getUrl()
The URL for the remote replicator to connect.
|
java.lang.String |
getUrlBase()
The URL base for the remote replicator to connect.
|
void |
put(Element element)
Puts an Element into the underlying cache without notifying listeners or updating statistics.
|
boolean |
remove(java.io.Serializable key)
Removes an Element from the underlying cache without notifying listeners or updating statistics.
|
void |
removeAll()
Removes all cached items.
|
void |
send(java.util.List eventMessages)
Send the cache peer with an ordered list of
EventMessage s
This enables multiple messages to be delivered in one network invocation. |
java.lang.String |
toString()
Returns a String that represents the value of this object.
|
private static final org.slf4j.Logger LOG
private final java.lang.String hostname
private final java.lang.Integer rmiRegistryPort
private java.lang.Integer remoteObjectPort
private final Ehcache cache
public RMICachePeer(Ehcache cache, java.lang.String hostName, java.lang.Integer rmiRegistryPort, java.lang.Integer remoteObjectPort, java.lang.Integer socketTimeoutMillis) throws java.rmi.RemoteException
cache
- The cache attached to the peerhostName
- The host name the peer is running on.rmiRegistryPort
- The port number on which the RMI Registry listens. Should be an unused port in
the range 1025 - 65536remoteObjectPort
- the port number on which the remote objects bound in the registry receive calls.
This defaults to a free port if not specified.
Should be an unused port in the range 1025 - 65536socketTimeoutMillis
- java.rmi.RemoteException
public final java.lang.String getUrl()
public final java.lang.String getUrlBase()
getUrlBase
in interface CachePeer
public java.util.List getKeys() throws java.rmi.RemoteException
public Element getQuiet(java.io.Serializable key) throws java.rmi.RemoteException
public java.util.List getElements(java.util.List keys) throws java.rmi.RemoteException
getElements
in interface CachePeer
keys
- a list of serializable values which represent keysjava.rmi.RemoteException
public void put(Element element) throws java.rmi.RemoteException, java.lang.IllegalArgumentException, java.lang.IllegalStateException
public boolean remove(java.io.Serializable key) throws java.rmi.RemoteException, java.lang.IllegalStateException
public void removeAll() throws java.rmi.RemoteException, java.lang.IllegalStateException
removeAll
in interface CachePeer
java.lang.IllegalStateException
- if the cache is not Status.STATUS_ALIVE
java.rmi.RemoteException
public void send(java.util.List eventMessages) throws java.rmi.RemoteException
EventMessage
s
This enables multiple messages to be delivered in one network invocation.send
in interface CachePeer
eventMessages
- a list of type EventMessage
java.rmi.RemoteException
public final java.lang.String getName() throws java.rmi.RemoteException
public final java.lang.String getGuid() throws java.rmi.RemoteException
Cache
instance.final Ehcache getBoundCacheInstance()
public java.lang.String toString()
toString
in class java.rmi.server.RemoteObject