Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

org.jgroups.protocols
Class VERIFY_SUSPECT  view VERIFY_SUSPECT download VERIFY_SUSPECT.java

java.lang.Object
  extended byorg.jgroups.stack.Protocol
      extended byorg.jgroups.protocols.VERIFY_SUSPECT
All Implemented Interfaces:
java.lang.Runnable

public class VERIFY_SUSPECT
extends org.jgroups.stack.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
(package private)  org.jgroups.Address local_addr
           
(package private)  java.util.Vector members
           
(package private)  java.lang.String name
           
(package private)  int num_msgs
           
(package private)  java.util.Hashtable suspects
           
(package private)  long timeout
           
(package private)  java.lang.Thread timer
           
 
Fields inherited from class org.jgroups.stack.Protocol
down_handler, down_prot, down_queue, down_thread, down_thread_prio, log, observer, props, stack, stats, trace, up_handler, up_prot, up_queue, up_thread, up_thread_prio, warn
 
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.
(package private)  void startTimer()
           
 void stop()
          This method is called on a Channel.disconnect()>Channel.disconnect() 55 .
(package private)  void suspect(org.jgroups.Address mbr)
          Sends ARE_YOU_DEAD message to suspected_mbr, wait for return or timeout
(package private)  void unsuspect(org.jgroups.Address mbr)
           
 void up(org.jgroups.Event evt)
          An event was received from the layer below.
 
Methods inherited from class org.jgroups.stack.Protocol
destroy, down, downThreadEnabled, dumpStats, enableStats, getDownProtocol, getDownQueue, getProperties, getUpProtocol, getUpQueue, handleSpecialDownEvent, init, isTrace, isWarn, passDown, passUp, printStats, providedDownServices, providedUpServices, receiveDownEvent, receiveUpEvent, requiredDownServices, requiredUpServices, resetStats, setDownProtocol, setObserver, setPropertiesInternal, setProtocolStack, setTrace, setUpProtocol, setWarn, start, startDownHandler, startUpHandler, statsEnabled, stopInternal, upThreadEnabled
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

local_addr

org.jgroups.Address local_addr

timeout

long timeout

num_msgs

int num_msgs

members

final java.util.Vector members

suspects

final java.util.Hashtable suspects

timer

java.lang.Thread timer

name

final java.lang.String name
See Also:
Constant Field Values
Constructor Detail

VERIFY_SUSPECT

public VERIFY_SUSPECT()
Method Detail

getName

public java.lang.String getName()

setProperties

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


up

public void up(org.jgroups.Event evt)
Description copied from class: org.jgroups.stack.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().


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

suspect

void suspect(org.jgroups.Address mbr)
Sends ARE_YOU_DEAD message to suspected_mbr, wait for return or timeout


unsuspect

void unsuspect(org.jgroups.Address mbr)

startTimer

void startTimer()

stop

public void stop()
Description copied from class: org.jgroups.stack.Protocol
This method is called on a Channel.disconnect()>Channel.disconnect() 55 . 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