Package org.apache.catalina.tribes.membership

# 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 Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected byte[]`
  `domain`
  `protected McastServiceImpl`
  `impl`
  A handle to the actual low level implementation
  `protected MemberImpl`
  `localMember`
  The local member
  `protected MessageListener`
  `msglistener`
  A message listener delegate for broadcasts
  `protected byte[]`
  `payload`
  `protected static final StringManager`
  `sm`
  The string manager for this package.

  ### Fields inherited from class org.apache.catalina.tribes.membership.MembershipServiceBase

  `channel, listener, properties`

  ### Fields inherited from interface org.apache.catalina.tribes.MembershipService

  `MBR_RX, MBR_TX`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `McastService()`
  Create a membership service.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `accept(ChannelMessage msg)`
  `void`
  `broadcast(ChannelMessage message)`
  Broadcasts a message to all members.
  `String`
  `getAddress()`
  `String`
  `getBind()`
  `byte[]`
  `getDomain()`
  `long`
  `getDropTime()`
  `long`
  `getFrequency()`
  `boolean`
  `getLocalLoopbackDisabled()`
  `Member`
  `getLocalMember(boolean alive)`
  Get the local member.
  `String`
  `getLocalMemberName()`
  `MembershipProvider`
  `getMembershipProvider()`
  Get the MembershipProvider
  `byte[]`
  `getPayload()`
  `int`
  `getPort()`
  `int`
  `getRecoveryCounter()`
  `boolean`
  `getRecoveryEnabled()`
  `long`
  `getRecoverySleepTime()`
  `int`
  `getSoTimeout()`
  `int`
  `getTtl()`
  `protected void`
  `hasProperty(Properties properties, String name)`
  Check if a required property is available.
  `static void`
  `main(String[] args)`
  Simple test program
  `void`
  `messageReceived(ChannelMessage msg)`
  Receive a message from the IO components in the Channel stack
  `void`
  `removeMessageListener()`
  `void`
  `setAddress(String addr)`
  `void`
  `setBind(String bindaddr)`
  `protected void`
  `setDefaults(Properties properties)`
  `void`
  `setDomain(byte[] domain)`
  `void`
  `setDomain(String domain)`
  `void`
  `setDropTime(long time)`
  `void`
  `setFrequency(long time)`
  `void`
  `setLocalLoopbackDisabled(boolean localLoopbackDisabled)`
  `void`
  `setLocalMemberProperties(String listenHost, int listenPort, int securePort, int udpPort)`
  Sets the local member properties for broadcasting.
  `void`
  `setMcastBindAddress(String bindaddr)`
  `void`
  `setMcastDropTime(long time)`
  `void`
  `setMessageListener(MessageListener listener)`
  `void`
  `setPayload(byte[] payload)`
  Set a payload to be broadcasted with each membership broadcast.
  `void`
  `setPort(int port)`
  `void`
  `setProperties(Properties properties)`
  Sets the properties for the membership service.
  `void`
  `setRecoveryCounter(int recoveryCounter)`
  `void`
  `setRecoveryEnabled(boolean recoveryEnabled)`
  `void`
  `setRecoverySleepTime(long recoverySleepTime)`
  `void`
  `setSoTimeout(int mcastSoTimeout)`
  `void`
  `setTtl(int mcastTTL)`
  `void`
  `start(int level)`
  Starts the membership service.
  `void`
  `stop(int svc)`
  Stop broadcasting and listening to membership pings

  ### Methods inherited from class org.apache.catalina.tribes.membership.MembershipServiceBase

  `findMemberByName, getChannel, getMember, getMembers, getMembersByName, getProperties, hasMembers, memberAdded, memberDisappeared, removeMembershipListener, setChannel, setMembershipListener, start`

  ### 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.membership.McastServiceMBean

  `findMemberByName, getMembersByName, getProperties, hasMembers`

- ## 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` - ChannelMessage

  - ### accept

    public boolean accept(ChannelMessage msg)
    Specified by:
      `accept` in interface `MessageListener`

  - ### 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)
    Specified by:
      `setDomain` in interface `MembershipService`

  - ### 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