Class McastService

java.lang.Object
org.apache.catalina.tribes.membership.MembershipServiceBase
org.apache.catalina.tribes.membership.McastService
All Implemented Interfaces:
McastServiceMBean, MembershipListener, MembershipService, MessageListener

public class McastService extends MembershipServiceBase implements MessageListener, McastServiceMBean
A membership implementation using simple multicast. This is the representation of a multicast membership service. This class is responsible for maintaining a list of active cluster nodes in the cluster. If a node fails to send out a heartbeat, the node will be dismissed.
  • Field Details

    • sm

      protected static final StringManager sm
      The string manager for this package.
    • impl

      protected McastServiceImpl impl
      A handle to the actual low level implementation
    • msglistener

      protected MessageListener msglistener
      A message listener delegate for broadcasts
    • localMember

      protected MemberImpl localMember
      The local member
    • payload

      protected byte[] payload
    • domain

      protected byte[] domain
  • Constructor Details

    • McastService

      public McastService()
      Create a membership service.
  • Method Details

    • setProperties

      public void setProperties(Properties properties)
      Sets the properties for the membership service.
      Specified by:
      setProperties in interface MembershipService
      Overrides:
      setProperties in class MembershipServiceBase
      Parameters:
      properties -
      All are required
      1. mcastPort - the port to listen to
      2. mcastAddress - the mcast group address
      4. bindAddress - the bind address if any - only one that can be null
      5. memberDropTime - the time a member is gone before it is considered gone.
      6. mcastFrequency - the frequency of sending messages
      7. tcpListenPort - the port this member listens to
      8. tcpListenHost - the bind address of this member
      Throws:
      IllegalArgumentException - if a property is missing.
    • getLocalMemberName

      public String getLocalMemberName()
      Specified by:
      getLocalMemberName in interface McastServiceMBean
      Returns:
      the local member name
    • getLocalMember

      public Member getLocalMember(boolean alive)
      Description copied from interface: MembershipService
      Get the local member.
      Specified by:
      getLocalMember in interface MembershipService
      Parameters:
      alive - true to set the alive time on the local member
      Returns:
      the member object that defines this member
    • setLocalMemberProperties

      public void setLocalMemberProperties(String listenHost, int listenPort, int securePort, int udpPort)
      Description copied from interface: MembershipService
      Sets the local member properties for broadcasting.
      Specified by:
      setLocalMemberProperties in interface MembershipService
      Parameters:
      listenHost - Listen to host
      listenPort - Listen to port
      securePort - Use a secure port
      udpPort - Use UDP
    • setAddress

      public void setAddress(String addr)
    • getAddress

      public String getAddress()
      Specified by:
      getAddress in interface McastServiceMBean
    • setMcastBindAddress

      public void setMcastBindAddress(String bindaddr)
    • setBind

      public void setBind(String bindaddr)
    • getBind

      public String getBind()
      Specified by:
      getBind in interface McastServiceMBean
    • setPort

      public void setPort(int port)
    • setRecoveryCounter

      public void setRecoveryCounter(int recoveryCounter)
    • getRecoveryCounter

      public int getRecoveryCounter()
      Specified by:
      getRecoveryCounter in interface McastServiceMBean
    • setRecoveryEnabled

      public void setRecoveryEnabled(boolean recoveryEnabled)
    • getRecoveryEnabled

      public boolean getRecoveryEnabled()
      Specified by:
      getRecoveryEnabled in interface McastServiceMBean
    • setRecoverySleepTime

      public void setRecoverySleepTime(long recoverySleepTime)
    • getRecoverySleepTime

      public long getRecoverySleepTime()
      Specified by:
      getRecoverySleepTime in interface McastServiceMBean
    • setLocalLoopbackDisabled

      public void setLocalLoopbackDisabled(boolean localLoopbackDisabled)
    • getLocalLoopbackDisabled

      public boolean getLocalLoopbackDisabled()
      Specified by:
      getLocalLoopbackDisabled in interface McastServiceMBean
    • getPort

      public int getPort()
      Specified by:
      getPort in interface McastServiceMBean
    • setFrequency

      public void setFrequency(long time)
    • getFrequency

      public long getFrequency()
      Specified by:
      getFrequency in interface McastServiceMBean
    • setMcastDropTime

      public void setMcastDropTime(long time)
    • setDropTime

      public void setDropTime(long time)
    • getDropTime

      public long getDropTime()
      Specified by:
      getDropTime in interface McastServiceMBean
    • hasProperty

      protected void hasProperty(Properties properties, String name)
      Check if a required property is available.
      Parameters:
      properties - The set of properties
      name - The property to check for
    • start

      public void start(int level) throws Exception
      Description copied from interface: MembershipService
      Starts the membership service. If a membership listeners is added the listener will start to receive membership events.
      Specified by:
      start in interface MembershipService
      Parameters:
      level - - level MBR_RX starts listening for members, level MBR_TX starts broad casting the server
      Throws:
      Exception - if the service fails to start.
      IllegalArgumentException - if the level is incorrect.
    • stop

      public void stop(int svc)
      Stop broadcasting and listening to membership pings
      Specified by:
      stop in interface MembershipService
      Parameters:
      svc - - level MBR_RX stops listening for members, level MBR_TX stops broad casting the server
    • setMessageListener

      public void setMessageListener(MessageListener listener)
    • removeMessageListener

      public void removeMessageListener()
    • messageReceived

      public void messageReceived(ChannelMessage msg)
      Description copied from interface: MessageListener
      Receive a message from the IO components in the Channel stack
      Specified by:
      messageReceived in interface MessageListener
      Parameters:
      msg - the message
    • accept

      public boolean accept(ChannelMessage msg)
      Description copied from interface: MessageListener
      Allows skipping processing of the specified message.
      Specified by:
      accept in interface MessageListener
      Parameters:
      msg - the message
      Returns:
      true if the message will be processed
    • broadcast

      public void broadcast(ChannelMessage message) throws ChannelException
      Description copied from interface: MembershipService
      Broadcasts a message to all members.
      Specified by:
      broadcast in interface MembershipService
      Overrides:
      broadcast in class MembershipServiceBase
      Parameters:
      message - The message to broadcast
      Throws:
      ChannelException - Message broadcast failed
    • getSoTimeout

      public int getSoTimeout()
      Specified by:
      getSoTimeout in interface McastServiceMBean
    • setSoTimeout

      public void setSoTimeout(int mcastSoTimeout)
    • getTtl

      public int getTtl()
      Specified by:
      getTtl in interface McastServiceMBean
    • getPayload

      public byte[] getPayload()
    • getDomain

      public byte[] getDomain()
      Specified by:
      getDomain in interface McastServiceMBean
    • setTtl

      public void setTtl(int mcastTTL)
    • setPayload

      public void setPayload(byte[] payload)
      Description copied from interface: MembershipService
      Set a payload to be broadcasted with each membership broadcast.
      Specified by:
      setPayload in interface MembershipService
      Parameters:
      payload - byte[]
    • setDomain

      public void setDomain(byte[] domain)
      Description copied from interface: MembershipService
      Set the associated domain.
      Specified by:
      setDomain in interface MembershipService
      Parameters:
      domain - the domain
    • setDomain

      public void setDomain(String domain)
    • getMembershipProvider

      public MembershipProvider getMembershipProvider()
      Description copied from interface: MembershipService
      Get the MembershipProvider
      Specified by:
      getMembershipProvider in interface MembershipService
      Returns:
      MembershipProvider
    • setDefaults

      protected void setDefaults(Properties properties)
    • main

      public static void main(String[] args) throws Exception
      Simple test program
      Parameters:
      args - Command-line arguments
      Throws:
      Exception - If an error occurs