Class MulticastKeepaliveHeartbeatSender


  • public final class MulticastKeepaliveHeartbeatSender
    extends java.lang.Object
    Sends heartbeats to a multicast group containing a compressed list of URLs.

    You can control how far the multicast packets propagate by setting the badly misnamed "TTL". Using the multicast IP protocol, the TTL value indicates the scope or range in which a packet may be forwarded. By convention:

    • 0 is restricted to the same host
    • 1 is restricted to the same subnet
    • 32 is restricted to the same site
    • 64 is restricted to the same region
    • 128 is restricted to the same continent
    • 255 is unrestricted
    You can also control how often the heartbeat sends by setting the interval.
    Version:
    $Id$
    Author:
    Greg Luck
    • Constructor Summary

      Constructors 
      Constructor Description
      MulticastKeepaliveHeartbeatSender​(CacheManager cacheManager, java.net.InetAddress multicastAddress, java.lang.Integer multicastPort, java.lang.Integer timeToLive, java.net.InetAddress hostAddress)
      Constructor.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void dispose()
      Shutdown this heartbeat sender
      static long getHeartBeatInterval()
      Returns the heartbeat interval.
      static long getHeartBeatStaleTime()
      Returns the time after which a heartbeat is considered stale.
      java.lang.Integer getTimeToLive()  
      void init()
      Start the heartbeat thread
      static void setHeartBeatInterval​(long heartBeatInterval)
      Sets the heartbeat interval to something other than the default of 5000ms.
      static void setHeartBeatStaleTime​(long heartBeatStaleTime)
      Sets the heartbeat stale time to something other than the default of ((2 * HeartBeatInterval) + 100)ms.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • MulticastKeepaliveHeartbeatSender

        public MulticastKeepaliveHeartbeatSender​(CacheManager cacheManager,
                                                 java.net.InetAddress multicastAddress,
                                                 java.lang.Integer multicastPort,
                                                 java.lang.Integer timeToLive,
                                                 java.net.InetAddress hostAddress)
        Constructor.
        Parameters:
        cacheManager - the bound CacheManager. Each CacheManager has a maximum of one sender
        multicastAddress -
        multicastPort -
        timeToLive - See class description for the meaning of this parameter.
    • Method Detail

      • init

        public final void init()
        Start the heartbeat thread
      • dispose

        public final void dispose()
        Shutdown this heartbeat sender
      • setHeartBeatInterval

        public static void setHeartBeatInterval​(long heartBeatInterval)
        Sets the heartbeat interval to something other than the default of 5000ms. This is useful for testing, but not recommended for production. This method is static and so affects the heartbeat interval of all senders. The change takes effect after the next scheduled heartbeat.
        Parameters:
        heartBeatInterval - a time in ms, greater than 1000
      • setHeartBeatStaleTime

        public static void setHeartBeatStaleTime​(long heartBeatStaleTime)
        Sets the heartbeat stale time to something other than the default of ((2 * HeartBeatInterval) + 100)ms. This is useful for testing, but not recommended for production. This method is static and so affects the stale time all users.
        Parameters:
        heartBeatStaleTime - a time in ms
      • getHeartBeatInterval

        public static long getHeartBeatInterval()
        Returns the heartbeat interval.
      • getHeartBeatStaleTime

        public static long getHeartBeatStaleTime()
        Returns the time after which a heartbeat is considered stale.
      • getTimeToLive

        public java.lang.Integer getTimeToLive()
        Returns:
        the TTL