org.apache.catalina.tribes.group.interceptors

Class TcpFailureDetector

public class TcpFailureDetector extends ChannelInterceptorBase

Title: A perfect failure detector

Description: The TcpFailureDetector is a useful interceptor that adds reliability to the membership layer.

If the network is busy, or the system is busy so that the membership receiver thread is not getting enough time to update its table, members can be "timed out" This failure detector will intercept the memberDisappeared message(unless its a true shutdown message) and connect to the member using TCP.

The TcpFailureDetector works in two ways.
1. It intercepts memberDisappeared events 2. It catches send errors

Version: 1.0

Author: Filip Hanik

Field Summary
protected HashMapaddSuspects
protected longconnectTimeout
protected Membershipmembership
protected booleanperformConnectTest
protected booleanperformReadTest
protected booleanperformSendTest
protected longreadTestTimeout
protected HashMapremoveSuspects
protected static byte[]TCP_FAIL_DETECT
Method Summary
voidcheckMembers(boolean checkAll)
longgetConnectTimeout()
MembergetLocalMember(boolean incAlive)
MembergetMember(Member mbr)
Member[]getMembers()
booleangetPerformConnectTest()
booleangetPerformReadTest()
booleangetPerformSendTest()
longgetReadTestTimeout()
booleanhasMembers()
voidheartbeat()
voidmemberAdded(Member member)
protected booleanmemberAlive(Member mbr)
protected static booleanmemberAlive(Member mbr, byte[] msgData, boolean sendTest, boolean readTest, long readTimeout, long conTimeout, int optionFlag)
voidmemberDisappeared(Member member)
voidmessageReceived(ChannelMessage msg)
protected voidperformBasicCheck()
protected voidperformForcedCheck()
voidsendMessage(Member[] destination, ChannelMessage msg, InterceptorPayload payload)
voidsetConnectTimeout(long connectTimeout)
voidsetPerformConnectTest(boolean performConnectTest)
voidsetPerformReadTest(boolean performReadTest)
voidsetPerformSendTest(boolean performSendTest)
voidsetReadTestTimeout(long readTestTimeout)
protected voidsetupMembership()

Field Detail

addSuspects

protected HashMap addSuspects

connectTimeout

protected long connectTimeout

membership

protected Membership membership

performConnectTest

protected boolean performConnectTest

performReadTest

protected boolean performReadTest

performSendTest

protected boolean performSendTest

readTestTimeout

protected long readTestTimeout

removeSuspects

protected HashMap removeSuspects

TCP_FAIL_DETECT

protected static byte[] TCP_FAIL_DETECT

Method Detail

checkMembers

public void checkMembers(boolean checkAll)

getConnectTimeout

public long getConnectTimeout()

getLocalMember

public Member getLocalMember(boolean incAlive)

getMember

public Member getMember(Member mbr)

getMembers

public Member[] getMembers()

getPerformConnectTest

public boolean getPerformConnectTest()

getPerformReadTest

public boolean getPerformReadTest()

getPerformSendTest

public boolean getPerformSendTest()

getReadTestTimeout

public long getReadTestTimeout()

hasMembers

public boolean hasMembers()

heartbeat

public void heartbeat()

memberAdded

public void memberAdded(Member member)

memberAlive

protected boolean memberAlive(Member mbr)

memberAlive

protected static boolean memberAlive(Member mbr, byte[] msgData, boolean sendTest, boolean readTest, long readTimeout, long conTimeout, int optionFlag)

memberDisappeared

public void memberDisappeared(Member member)

messageReceived

public void messageReceived(ChannelMessage msg)

performBasicCheck

protected void performBasicCheck()

performForcedCheck

protected void performForcedCheck()

sendMessage

public void sendMessage(Member[] destination, ChannelMessage msg, InterceptorPayload payload)

setConnectTimeout

public void setConnectTimeout(long connectTimeout)

setPerformConnectTest

public void setPerformConnectTest(boolean performConnectTest)

setPerformReadTest

public void setPerformReadTest(boolean performReadTest)

setPerformSendTest

public void setPerformSendTest(boolean performSendTest)

setReadTestTimeout

public void setReadTestTimeout(long readTestTimeout)

setupMembership

protected void setupMembership()
Copyright © 2000-2011 Apache Software Foundation. All Rights Reserved.