public class TransactionalRMICachePeer extends RMICachePeer
CachePeer
supporting transactions.ref
Constructor and Description |
---|
TransactionalRMICachePeer(Ehcache cache,
String hostName,
Integer rmiRegistryPort,
Integer remoteObjectPort,
Integer socketTimeoutMillis)
Construct a new remote peer supporting transactions
|
Modifier and Type | Method and Description |
---|---|
List |
getElements(List keys)
Gets a list of elements from the cache, for a list of keys, without updating Element statistics.
|
List |
getKeys()
Returns a list of all elements in the cache, whether or not they are expired.
|
Element |
getQuiet(Serializable key)
Gets an element from the cache, without updating Element statistics.
|
void |
put(Element element)
Puts an Element into the underlying cache without notifying listeners or updating statistics.
|
boolean |
remove(Serializable key)
Removes an Element from the underlying cache without notifying listeners or updating statistics.
|
void |
removeAll()
Removes all cached items.
|
void |
send(List eventMessages)
Send the cache peer with an ordered list of
EventMessage s |
getGuid, getName, getUrl, getUrlBase, toString
clone, exportObject, exportObject, exportObject, unexportObject
getClientHost, getLog, setLog
equals, getRef, hashCode, toStub
public TransactionalRMICachePeer(Ehcache cache, String hostName, Integer rmiRegistryPort, Integer remoteObjectPort, Integer socketTimeoutMillis) throws 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
- RemoteException
public List getKeys() throws RemoteException
RMICachePeer
The returned keys are unique and can be considered a set.
The List returned is not live. It is a copy.
The time taken is O(n). On a single cpu 1.8Ghz P4, approximately 8ms is required for each 1000 entries.
getKeys
in interface CachePeer
getKeys
in class RMICachePeer
Object
keysRemoteException
public Element getQuiet(Serializable key) throws RemoteException
RMICachePeer
getQuiet
in interface CachePeer
getQuiet
in class RMICachePeer
key
- a serializable valueRemoteException
public List getElements(List keys) throws RemoteException
RMICachePeer
Cache statistics are still updated.
Callers should ideally first call this method with a small list of keys to gauge the size of a typical Element. Then a calculation can be made of the right number to request each time so as to optimise network performance and not cause an OutOfMemory error on this Cache.
getElements
in interface CachePeer
getElements
in class RMICachePeer
keys
- a list of serializable values which represent keysRemoteException
public void put(Element element) throws RemoteException, IllegalArgumentException, IllegalStateException
RMICachePeer
put
in interface CachePeer
put
in class RMICachePeer
IllegalArgumentException
- if the element is nullIllegalStateException
- if the cache is not Status.STATUS_ALIVE
RemoteException
public boolean remove(Serializable key) throws RemoteException, IllegalStateException
RMICachePeer
remove
in interface CachePeer
remove
in class RMICachePeer
IllegalStateException
- if the cache is not Status.STATUS_ALIVE
RemoteException
public void removeAll() throws RemoteException, IllegalStateException
RMICachePeer
removeAll
in interface CachePeer
removeAll
in class RMICachePeer
IllegalStateException
- if the cache is not Status.STATUS_ALIVE
RemoteException
public void send(List eventMessages) throws RemoteException
RMICachePeer
EventMessage
s
This enables multiple messages to be delivered in one network invocation.
send
in interface CachePeer
send
in class RMICachePeer
eventMessages
- a list of type EventMessage
RemoteException
Copyright 2001-2021, Terracotta, Inc.