Class TcpPingInterceptor
- java.lang.Object
-
- org.apache.catalina.tribes.group.ChannelInterceptorBase
-
- org.apache.catalina.tribes.group.interceptors.TcpPingInterceptor
-
- All Implemented Interfaces:
ChannelInterceptor
,TcpPingInterceptorMBean
,Heartbeat
,MembershipListener
public class TcpPingInterceptor extends ChannelInterceptorBase implements TcpPingInterceptorMBean
Sends a ping to all members. Configure this interceptor with the TcpFailureDetector below it, and the TcpFailureDetector will act as the membership guide.- Version:
- 1.0
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
TcpPingInterceptor.PingThread
-
Nested classes/interfaces inherited from interface org.apache.catalina.tribes.ChannelInterceptor
ChannelInterceptor.InterceptorEvent
-
-
Field Summary
Fields Modifier and Type Field Description protected static java.util.concurrent.atomic.AtomicInteger
cnt
protected long
interval
protected boolean
running
protected static StringManager
sm
protected boolean
staticOnly
protected static byte[]
TCP_PING_DATA
protected TcpPingInterceptor.PingThread
thread
protected boolean
useThread
-
Fields inherited from class org.apache.catalina.tribes.group.ChannelInterceptorBase
optionFlag
-
-
Constructor Summary
Constructors Constructor Description TcpPingInterceptor()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description long
getInterval()
boolean
getStaticOnly()
boolean
getUseThread()
void
heartbeat()
Theheartbeat()
method gets invoked periodically to allow interceptors to clean up resources, time out object and perform actions that are unrelated to sending/receiving data.void
messageReceived(ChannelMessage msg)
themessageReceived
is invoked when a message is received.protected void
sendPing()
protected void
sendPingMessage(Member[] members)
void
setInterval(long interval)
void
setStaticOnly(boolean staticOnly)
void
setUseThread(boolean useThread)
void
start(int svc)
Starts up the channel.void
stop(int svc)
Shuts down the channel.-
Methods inherited from class org.apache.catalina.tribes.group.ChannelInterceptorBase
fireInterceptorEvent, getChannel, getLocalMember, getMember, getMembers, getNext, getOptionFlag, getPrevious, hasMembers, memberAdded, memberDisappeared, okToProcess, sendMessage, setChannel, setNext, setOptionFlag, setPrevious
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.catalina.tribes.group.interceptors.TcpPingInterceptorMBean
getOptionFlag
-
-
-
-
Field Detail
-
sm
protected static final StringManager sm
-
TCP_PING_DATA
protected static final byte[] TCP_PING_DATA
-
interval
protected long interval
-
useThread
protected boolean useThread
-
staticOnly
protected boolean staticOnly
-
running
protected volatile boolean running
-
thread
protected TcpPingInterceptor.PingThread thread
-
cnt
protected static final java.util.concurrent.atomic.AtomicInteger cnt
-
-
Method Detail
-
start
public void start(int svc) throws ChannelException
Description copied from class:ChannelInterceptorBase
Starts up the channel. This can be called multiple times for individual services to start The svc parameter can be the logical or value of any constants- Specified by:
start
in interfaceChannelInterceptor
- Overrides:
start
in classChannelInterceptorBase
- Parameters:
svc
- int value of
DEFAULT - will start all services
MBR_RX_SEQ - starts the membership receiver
MBR_TX_SEQ - starts the membership broadcaster
SND_TX_SEQ - starts the replication transmitter
SND_RX_SEQ - starts the replication receiver- Throws:
ChannelException
- if a startup error occurs or the service is already started.- See Also:
Channel
-
stop
public void stop(int svc) throws ChannelException
Description copied from class:ChannelInterceptorBase
Shuts down the channel. This can be called multiple times for individual services to shutdown The svc parameter can be the logical or value of any constants- Specified by:
stop
in interfaceChannelInterceptor
- Overrides:
stop
in classChannelInterceptorBase
- Parameters:
svc
- int value of
DEFAULT - will shutdown all services
MBR_RX_SEQ - stops the membership receiver
MBR_TX_SEQ - stops the membership broadcaster
SND_TX_SEQ - stops the replication transmitter
SND_RX_SEQ - stops the replication receiver- Throws:
ChannelException
- if a startup error occurs or the service is already started.- See Also:
Channel
-
heartbeat
public void heartbeat()
Description copied from interface:ChannelInterceptor
Theheartbeat()
method gets invoked periodically to allow interceptors to clean up resources, time out object and perform actions that are unrelated to sending/receiving data.- Specified by:
heartbeat
in interfaceChannelInterceptor
- Specified by:
heartbeat
in interfaceHeartbeat
- Overrides:
heartbeat
in classChannelInterceptorBase
-
getInterval
public long getInterval()
- Specified by:
getInterval
in interfaceTcpPingInterceptorMBean
-
setInterval
public void setInterval(long interval)
-
setUseThread
public void setUseThread(boolean useThread)
-
setStaticOnly
public void setStaticOnly(boolean staticOnly)
-
getUseThread
public boolean getUseThread()
- Specified by:
getUseThread
in interfaceTcpPingInterceptorMBean
-
getStaticOnly
public boolean getStaticOnly()
-
sendPing
protected void sendPing()
-
sendPingMessage
protected void sendPingMessage(Member[] members)
-
messageReceived
public void messageReceived(ChannelMessage msg)
Description copied from interface:ChannelInterceptor
themessageReceived
is invoked when a message is received.ChannelMessage.getAddress()
is the sender, or the reply-to address if it has been overwritten.- Specified by:
messageReceived
in interfaceChannelInterceptor
- Overrides:
messageReceived
in classChannelInterceptorBase
- Parameters:
msg
- ChannelMessage
-
-