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 classFD_PID.FdHeader
Method Summary
voiddown(Event evt)
StringgetName()
booleansetProperties(Properties props)
voidstart()
voidstop()
voidup(Event evt)

Method Detail

down

public void down(Event evt)

getName

public String getName()

setProperties

public boolean setProperties(Properties props)

start

public void start()

stop

public void stop()

up

public void up(Event evt)
Copyright ? 1998-2005 Bela Ban. All Rights Reserved.