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)`
Allows skipping processing of the specified message.
`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)`
Set the associated 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.

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