Class ReplicatedHashtable
- java.lang.Object
-
- java.util.Dictionary<K,V>
-
- java.util.Hashtable
-
- org.jgroups.blocks.ReplicatedHashtable
-
- All Implemented Interfaces:
java.io.Serializable,java.lang.Cloneable,java.util.Map,MembershipListener,MessageListener
public class ReplicatedHashtable extends java.util.Hashtable implements MessageListener, MembershipListener
Deprecated.UseReplicatedHashMapinsteadProvides the abstraction of a java.util.Hashtable that is replicated at several locations. Any change to the hashtable (clear, put, remove etc) will transparently be propagated to all replicas in the group. All read-only methods will always access the local replica.Both keys and values added to the hashtable must be serializable, the reason being that they will be sent across the network to all replicas of the group. Having said this, it is now for example possible to add RMI remote objects to the hashtable as they are derived from
java.rmi.server.RemoteObjectwhich in turn is serializable. This allows to lookup shared distributed objects by their name and invoke methods on them, regardless of one's onw location. AReplicatedHashtablethus allows to implement a distributed naming service in just a couple of lines.An instance of this class will contact an existing member of the group to fetch its initial state.
Contrary to DistributedHashtable, this class does not make use of RpcDispatcher (and RequestCorrelator) but uses plain asynchronous messages instead.
- Author:
- Bela Ban, Alfonso Olias-Sanz
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceReplicatedHashtable.NotificationDeprecated.static interfaceReplicatedHashtable.StateTransferListenerDeprecated.
-
Field Summary
Fields Modifier and Type Field Description protected org.apache.commons.logging.LoglogDeprecated.
-
Constructor Summary
Constructors Constructor Description ReplicatedHashtable(java.lang.String groupname, ChannelFactory factory, java.lang.String properties, long state_timeout)Deprecated.ReplicatedHashtable(java.lang.String groupname, ChannelFactory factory, ReplicatedHashtable.StateTransferListener l, java.lang.String properties, long state_timeout)Deprecated.Creates a ReplicatedHashtableReplicatedHashtable(JChannel channel, long state_timeout)Deprecated.ReplicatedHashtable(JChannel channel, ReplicatedHashtable.StateTransferListener l, long state_timeout)Deprecated.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void_putAll(java.util.Map m)Deprecated.voidaddNotifier(ReplicatedHashtable.Notification n)Deprecated.voidaddStateTransferListener(ReplicatedHashtable.StateTransferListener l)Deprecated.voidblock()Deprecated.Block sending and receiving of messages until ViewAccepted is calledvoidclear()Deprecated.Clears this hashtable so that it contains no keysChannelgetChannel()Deprecated.AddressgetLocalAddress()Deprecated.byte[]getState()Deprecated.Answers the group state; e.g., when joining.java.lang.Objectput(java.lang.Object key, java.lang.Object value)Deprecated.Maps the specified key to the specified value in the hashtable.voidputAll(java.util.Map m)Deprecated.Copies all of the mappings from the specified Map to this Hashtable These mappings will replace any mappings that this Hashtable had for any of the keys currently in the specified Map.voidreceive(Message msg)Deprecated.Called when a message is received.java.lang.Objectremove(java.lang.Object key)Deprecated.Removes the key (and its corresponding value) from the Hashtable.voidremoveStateTransferListener(ReplicatedHashtable.StateTransferListener l)Deprecated.voidsetState(byte[] new_state)Deprecated.Sets the group state; e.g., when joining.booleanstateTransferRunning()Deprecated.voidsuspect(Address suspected_mbr)Deprecated.Called when a member is suspectedvoidviewAccepted(View new_view)Deprecated.Called when a change in membership has occurred.-
Methods inherited from class java.util.Hashtable
clone, compute, computeIfAbsent, computeIfPresent, contains, containsKey, containsValue, elements, entrySet, equals, forEach, get, getOrDefault, hashCode, isEmpty, keys, keySet, merge, putIfAbsent, rehash, remove, replace, replace, replaceAll, size, toString, values
-
-
-
-
Constructor Detail
-
ReplicatedHashtable
public ReplicatedHashtable(java.lang.String groupname, ChannelFactory factory, ReplicatedHashtable.StateTransferListener l, java.lang.String properties, long state_timeout)Deprecated.Creates a ReplicatedHashtable- Parameters:
groupname- The name of the group to joinfactory- The ChannelFactory which will be used to create a channelproperties- The property string to be used to define the channelstate_timeout- The time to wait until state is retrieved in milliseconds. A value of 0 means wait forever.
-
ReplicatedHashtable
public ReplicatedHashtable(java.lang.String groupname, ChannelFactory factory, java.lang.String properties, long state_timeout)Deprecated.
-
ReplicatedHashtable
public ReplicatedHashtable(JChannel channel, long state_timeout) throws ChannelClosedException, ChannelNotConnectedException
Deprecated.
-
ReplicatedHashtable
public ReplicatedHashtable(JChannel channel, ReplicatedHashtable.StateTransferListener l, long state_timeout) throws ChannelClosedException, ChannelNotConnectedException
Deprecated.
-
-
Method Detail
-
stateTransferRunning
public boolean stateTransferRunning()
Deprecated.
-
getLocalAddress
public Address getLocalAddress()
Deprecated.
-
getChannel
public Channel getChannel()
Deprecated.
-
addNotifier
public void addNotifier(ReplicatedHashtable.Notification n)
Deprecated.
-
addStateTransferListener
public final void addStateTransferListener(ReplicatedHashtable.StateTransferListener l)
Deprecated.
-
removeStateTransferListener
public void removeStateTransferListener(ReplicatedHashtable.StateTransferListener l)
Deprecated.
-
put
public java.lang.Object put(java.lang.Object key, java.lang.Object value)Deprecated.Maps the specified key to the specified value in the hashtable. Neither of both parameters can be null- Specified by:
putin interfacejava.util.Map- Overrides:
putin classjava.util.Hashtable- Parameters:
key- - the hashtable keyvalue- - the value- Returns:
- the previous value of the specified key in this hashtable, or null if it did not have one
-
putAll
public void putAll(java.util.Map m)
Deprecated.Copies all of the mappings from the specified Map to this Hashtable These mappings will replace any mappings that this Hashtable had for any of the keys currently in the specified Map.- Specified by:
putAllin interfacejava.util.Map- Overrides:
putAllin classjava.util.Hashtable- Parameters:
m- - Mappings to be stored in this map
-
clear
public void clear()
Deprecated.Clears this hashtable so that it contains no keys- Specified by:
clearin interfacejava.util.Map- Overrides:
clearin classjava.util.Hashtable
-
remove
public java.lang.Object remove(java.lang.Object key)
Deprecated.Removes the key (and its corresponding value) from the Hashtable.- Specified by:
removein interfacejava.util.Map- Overrides:
removein classjava.util.Hashtable- Parameters:
key- - the key to be removed.- Returns:
- the value to which the key had been mapped in this hashtable, or null if the key did not have a mapping.
-
_putAll
public void _putAll(java.util.Map m)
Deprecated.- See Also:
Map.putAll(java.util.Map)
-
receive
public void receive(Message msg)
Deprecated.Description copied from interface:MessageListenerCalled when a message is received.- Specified by:
receivein interfaceMessageListener
-
getState
public byte[] getState()
Deprecated.Description copied from interface:MessageListenerAnswers the group state; e.g., when joining.- Specified by:
getStatein interfaceMessageListener- Returns:
- byte[]
-
setState
public void setState(byte[] new_state)
Deprecated.Description copied from interface:MessageListenerSets the group state; e.g., when joining.- Specified by:
setStatein interfaceMessageListener
-
viewAccepted
public void viewAccepted(View new_view)
Deprecated.Description copied from interface:MembershipListenerCalled when a change in membership has occurred. No long running actions or sending of messages should be done in this callback. If some long running action needs to be performed, it should be done in a separate thread. Note that on reception of the first view (a new member just joined), the channel will not yet be in the connected state. This only happens whenChannel.connect(String)returns.- Specified by:
viewAcceptedin interfaceMembershipListener
-
suspect
public void suspect(Address suspected_mbr)
Deprecated.Called when a member is suspected- Specified by:
suspectin interfaceMembershipListener
-
block
public void block()
Deprecated.Block sending and receiving of messages until ViewAccepted is called- Specified by:
blockin interfaceMembershipListener
-
-