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
Sends a ping to all members. Configure this interceptor with the TcpFailureDetector below it, and the
TcpFailureDetector will act as the membership guide.
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.apache.catalina.tribes.ChannelInterceptor
ChannelInterceptor.InterceptorEvent
-
Field Summary
Modifier and TypeFieldDescriptionprotected static final AtomicInteger
protected long
protected boolean
protected static final StringManager
protected boolean
protected static final byte[]
protected TcpPingInterceptor.PingThread
protected boolean
Fields inherited from class org.apache.catalina.tribes.group.ChannelInterceptorBase
optionFlag
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionlong
boolean
boolean
void
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
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 Details
-
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
-
cnt
-
-
Constructor Details
-
TcpPingInterceptor
public TcpPingInterceptor()
-
-
Method Details
-
start
Description copied from interface:ChannelInterceptor
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
Channel.DEFAULT - will start all services
Channel.MBR_RX_SEQ - starts the membership receiver
Channel.MBR_TX_SEQ - starts the membership broadcaster
Channel.SND_TX_SEQ - starts the replication transmitter
Channel.SND_RX_SEQ - starts the replication receiver- Throws:
ChannelException
- if a startup error occurs or the service is already started.- See Also:
-
stop
Description copied from interface:ChannelInterceptor
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
Channel.DEFAULT - will shutdown all services
Channel.MBR_RX_SEQ - stops the membership receiver
Channel.MBR_TX_SEQ - stops the membership broadcaster
Channel.SND_TX_SEQ - stops the replication transmitter
Channel.SND_RX_SEQ - stops the replication receiver- Throws:
ChannelException
- if a startup error occurs or the service is already started.- See Also:
-
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
-
messageReceived
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
-