org.jgroups.blocks
Class NotificationBus
java.lang.Object
org.jgroups.blocks.NotificationBus
- MembershipListener, MessageListener
public class NotificationBus
extends java.lang.Object
This class provides notification sending and handling capability.
Producers can send notifications to all registered consumers.
Provides hooks to implement shared group state, which allows an
application programmer to maintain a local cache which is replicated
by all instances. NotificationBus sits on
top of a channel, however it creates its channel itself, so the
application programmers do not have to provide their own channel.
log
protected final Log log
NotificationBus
public NotificationBus()
throws Exception
NotificationBus
public NotificationBus(String bus_name)
throws Exception
NotificationBus
public NotificationBus(String bus_name,
String properties)
throws Exception
block
public void block()
Called whenever the member needs to stop sending messages.
When the next view is received (viewAccepted()), the member can resume sending
messages. If a member does not comply, the message(s) sent between a block()
and a matching viewAccepted() callback will probably be delivered in the next view.
The block() callback is only needed by the Virtual Synchrony suite of protocols
(FLUSH protocol)3.2, otherwise it will never be invoked.
- block in interface MembershipListener
getCache
public Serializable getCache()
getCacheFromCoordinator
public Serializable getCacheFromCoordinator(long timeout,
int max_tries)
Determines the coordinator and asks it for its cache. If there is no coordinator (because we are first member),
null will be returned. Used only internally by NotificationBus.
timeout
- Max number of msecs until the call returnsmax_tries
- Max number of attempts to fetch the cache from the coordinator
getCacheFromMember
public Serializable getCacheFromMember(Address mbr,
long timeout,
int max_tries)
Determines the coordinator and asks it for its cache. If there is no coordinator (because we are first member),
null will be returned. Used only internally by NotificationBus.
mbr
- The address of the member from which to fetch the state. If null, the current coordinator
will be asked for the statetimeout
- Max number of msecs until the call returns - if timeout elapses
null will be returnedmax_tries
- Max number of attempts to fetch the cache from the coordinator (will be set to 1 if <321)
getChannel
public Channel getChannel()
Answers the Channel.
Used to operate on the underlying channel directly, e.g. perform operations that are not
provided using only NotificationBus. Should be used sparingly.
getLocalAddress
public Address getLocalAddress()
getMembership
public Vector getMembership()
Returns a reference to the real membership: don't modify.
If you need to modify, make a copy first !
- Vector of Address objects
getState
public byte[] getState()
Answers the group state; e.g., when joining.
- getState in interface MessageListener
isCoordinator
public boolean isCoordinator()
notifyConsumer
public void notifyConsumer(Serializable n)
Don't multicast this to all members, just apply it to local consumers.
sendNotification
public void sendNotification(Serializable n)
Pack the argument in a Info, serialize that one into the message buffer and send the message
setState
public void setState(byte[] state)
Sets the group state; e.g., when joining.
- setState in interface MessageListener
start
public void start()
throws Exception
suspect
public void suspect(Address suspected_mbr)
Called whenever a member is suspected of having crashed,
but has not yet been excluded.
- suspect in interface MembershipListener
viewAccepted
public void viewAccepted(View new_view)
Called when a change in membership has occurred.
No long running actions should be done in this callback.
If some long running action needs to be performed, it should be done in a separate thread.
- viewAccepted in interface MembershipListener
Copyright B) 1998-2005 Bela Ban. All Rights Reserved.