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.
  • Field Details

    • 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

    • cnt

      protected static final AtomicInteger cnt
  • Constructor Details

    • TcpPingInterceptor

      public TcpPingInterceptor()
  • Method Details

    • start

      public void start(int svc) throws ChannelException
      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 interface ChannelInterceptor
      Overrides:
      start in class ChannelInterceptorBase
      Parameters:
      svc - one 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

      public void stop(int svc) throws ChannelException
      Description copied from interface: ChannelInterceptor
      Shuts down the channel. This can be called multiple times for individual services to shut down. The svc parameter can be the logical or value of any constants
      Specified by:
      stop in interface ChannelInterceptor
      Overrides:
      stop in class ChannelInterceptorBase
      Parameters:
      svc - one of:
      • Channel.DEFAULT - will shut down 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
      The heartbeat() 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 interface ChannelInterceptor
      Specified by:
      heartbeat in interface Heartbeat
      Overrides:
      heartbeat in class ChannelInterceptorBase
    • getInterval

      public long getInterval()
      Specified by:
      getInterval in interface TcpPingInterceptorMBean
    • 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 interface TcpPingInterceptorMBean
    • 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
      The messageReceived 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 interface ChannelInterceptor
      Overrides:
      messageReceived in class ChannelInterceptorBase
      Parameters:
      msg - ChannelMessage