org.jgroups.protocols

Class FD_PID


public class FD_PID
extends Protocol

Process-ID based FD protocol. The existence of a process will be tested via the process ID instead of message based pinging. In order to probe a process' existence, the application (or some other protocol layer) has to send down a SET_PID event for the member. The addresses of all members will be associated with their respective PIDs. The PID will be used to probe for the existence of that process.

A cache of Addresses and PIDs is maintained in each member, which is adjusted upon reception of view changes. The population of the addr:pid cache is as follows:
When a new member joins, it requests the PID cache from the coordinator. Then it broadcasts its own addr:pid association, so all members can update their cache. When a member P is to be pinged by Q, and Q doesn't have P'd PID, Q will broadcast a WHO_HAS_PID message, to which all members who have that entry will respond. The latter case should actually never happen because all members should always have consistent caches. However, it is left in the code as a second line of defense.

Note that 1. The SET_PID has to be sent down after connecting to a channel !

2. Note that if a process is shunned and subsequently reconnects, the SET_PID event has to be resent !

3. This protocol only works for groups whose members are on the same host . 'Host' actually means the same IP address (e.g. for multi-homed systems).

Nested Class Summary

static class
FD_PID.FdHeader

Field Summary

Fields inherited from class org.jgroups.stack.Protocol

down_handler, down_prot, down_queue, down_thread, down_thread_prio, log, observer, props, stack, up_handler, up_prot, up_queue, up_thread, up_thread_prio

Method Summary

void
down(Event evt)
String
getName()
boolean
setProperties(Properties props)
void
start()
void
stop()
void
up(Event evt)

Methods inherited from class org.jgroups.stack.Protocol

destroy, down, getDownProtocol, getDownQueue, getName, getProperties, getUpProtocol, getUpQueue, handleSpecialDownEvent, init, passDown, passUp, providedDownServices, providedUpServices, receiveDownEvent, receiveUpEvent, requiredDownServices, requiredUpServices, setDownProtocol, setObserver, setProperties, setPropertiesInternal, setProtocolStack, setUpProtocol, start, startDownHandler, startUpHandler, stop, stopInternal, up

Method Details

down

public void down(Event evt)
Overrides:
down in interface Protocol

getName

public String getName()
Overrides:
getName in interface Protocol

setProperties

public boolean setProperties(Properties props)
Overrides:
setProperties in interface Protocol

start

public void start()
            throws Exception
Overrides:
start in interface Protocol

stop

public void stop()
Overrides:
stop in interface Protocol

up

public void up(Event evt)
Overrides:
up in interface Protocol

Copyright B) 2001,2002 www.jgroups.com . All Rights Reserved.