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
`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 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
`McastService()` Create a membership service.

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`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 Detail

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

#### McastService

    public McastService()

Create a membership service.

### Method Detail

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