org.javagroups.protocols
Class VERIFY_SUSPECT

java.lang.Object
  |
  +--org.javagroups.stack.Protocol
        |
        +--org.javagroups.protocols.VERIFY_SUSPECT
All Implemented Interfaces:
java.lang.Runnable

public class VERIFY_SUSPECT
extends Protocol
implements java.lang.Runnable

Catches SUSPECT events traveling up the stack. Verifies that the suspected member is really dead. If yes, passes SUSPECT event up the stack, otherwise discards it. Has to be placed somewhere above the FD layer and below the GMS layer (receiver of the SUSPECT event). Note that SUSPECT events may be reordered by this protocol.


Nested Class Summary
static class VERIFY_SUSPECT.VerifyHeader
           
 
Field Summary
 
Fields inherited from class org.javagroups.stack.Protocol
down_handler, down_prot, down_queue, down_thread, down_thread_prio, observer, props, stack, up_handler, up_prot, up_queue, up_thread, up_thread_prio
 
Constructor Summary
VERIFY_SUSPECT()
           
 
Method Summary
 java.lang.String getName()
           
 void run()
          Will be started when a suspect is added to the suspects hashtable.
 boolean setProperties(java.util.Properties props)
          Configures the protocol initially.
 void stop()
          This method is called on a Channel.disconnect().
 void up(Event evt)
          An event was received from the layer below.
 
Methods inherited from class org.javagroups.stack.Protocol
destroy, down, getDownProtocol, getDownQueue, getProperties, getUpProtocol, getUpQueue, init, passDown, passUp, providedDownServices, providedUpServices, receiveDownEvent, receiveUpEvent, requiredDownServices, requiredUpServices, setDownProtocol, setObserver, setPropertiesInternal, setProtocolStack, setUpProtocol, start, startDownHandler, startUpHandler, stopInternal
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

VERIFY_SUSPECT

public VERIFY_SUSPECT()
Method Detail

getName

public java.lang.String getName()
Specified by:
getName in class Protocol

setProperties

public boolean setProperties(java.util.Properties props)
Description copied from class: Protocol
Configures the protocol initially. A configuration string consists of name=value items, separated by a ';' (semicolon), e.g.:
 "loopback=false;unicast_inport=4444"
 

Overrides:
setProperties in class Protocol

up

public void up(Event evt)
Description copied from class: Protocol
An event was received from the layer below. Usually the current layer will want to examine the event type and - depending on its type - perform some computation (e.g. removing headers from a MSG event type, or updating the internal membership list when receiving a VIEW_CHANGE event). Finally the event is either a) discarded, or b) an event is sent down the stack using passDown() or c) the event (or another event) is sent up the stack using passUp().

Overrides:
up in class Protocol

run

public void run()
Will be started when a suspect is added to the suspects hashtable. Continually iterates over the entries and removes entries whose time have elapsed. For each removed entry, a SUSPECT event is passed up the stack (because elapsed time means verification of member's liveness failed). Computes the shortest time to wait (min of all timeouts) and waits(time) msecs. Will be woken up when entry is removed (in case of successful verification of that member's liveness). Terminates when no entry remains in the hashtable.

Specified by:
run in interface java.lang.Runnable

stop

public void stop()
Description copied from class: Protocol
This method is called on a Channel.disconnect(). Stops work (e.g. by closing multicast socket). Will be called from top to bottom. This means that at the time of the method invocation the neighbor protocol below is still working. This method will replace the STOP, STOP_OK, CLEANUP and CLEANUP_OK events. The ProtocolStack guarantees that when this method is called all messages in the down queue will have been flushed

Overrides:
stop in class Protocol


Copyright ? 2001,2002 www.javagroups.com . All Rights Reserved.