org.apache.catalina.tribes.group.interceptors
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
Field Summary | |
---|---|
protected HashMap | addSuspects |
protected long | connectTimeout |
protected Membership | membership |
protected boolean | performConnectTest |
protected boolean | performReadTest |
protected boolean | performSendTest |
protected long | readTestTimeout |
protected HashMap | removeSuspects |
protected static byte[] | TCP_FAIL_DETECT |
Method Summary | |
---|---|
void | checkMembers(boolean checkAll) |
long | getConnectTimeout() |
Member | getLocalMember(boolean incAlive) |
Member | getMember(Member mbr) |
Member[] | getMembers() |
boolean | getPerformConnectTest() |
boolean | getPerformReadTest() |
boolean | getPerformSendTest() |
long | getReadTestTimeout() |
boolean | hasMembers() |
void | heartbeat() |
void | memberAdded(Member member) |
protected boolean | memberAlive(Member mbr) |
protected static boolean | memberAlive(Member mbr, byte[] msgData, boolean sendTest, boolean readTest, long readTimeout, long conTimeout, int optionFlag) |
void | memberDisappeared(Member member) |
void | messageReceived(ChannelMessage msg) |
protected void | performBasicCheck() |
protected void | performForcedCheck() |
void | sendMessage(Member[] destination, ChannelMessage msg, InterceptorPayload payload) |
void | setConnectTimeout(long connectTimeout) |
void | setPerformConnectTest(boolean performConnectTest) |
void | setPerformReadTest(boolean performReadTest) |
void | setPerformSendTest(boolean performSendTest) |
void | setReadTestTimeout(long readTestTimeout) |
protected void | setupMembership() |