MembershipService (Apache Tomcat 9.0.111 API Documentation)
Description: declaration: package: org.apache.catalina.tribes, interface: MembershipService

# Interface MembershipService

All Known Implementing Classes:
  `CloudMembershipService, McastService, MembershipServiceBase, StaticMembershipService`

public interface MembershipService
The `MembershipService` interface is the membership component at the bottom layer, the IO layer (for layers see the javadoc for the `Channel` interface).

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final int`
  `MBR_RX`
  `static final int`
  `MBR_TX`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `broadcast(ChannelMessage message)`
  Broadcasts a message to all members.
  `Member`
  `findMemberByName(String name)`
  Get a member.
  `Channel`
  `getChannel()`
  Return the channel that is related to this MembershipService
  `Member`
  `getLocalMember(boolean incAliveTime)`
  Get the local member.
  `Member`
  `getMember(Member mbr)`
  Retrieve the specified member from the membership.
  `Member[]`
  `getMembers()`
  `String[]`
  `getMembersByName()`
  `MembershipProvider`
  `getMembershipProvider()`
  Get the MembershipProvider
  `Properties`
  `getProperties()`
  `boolean`
  `hasMembers()`
  `void`
  `removeMembershipListener()`
  Removes the membership listener.
  `void`
  `setChannel(Channel channel)`
  Set the channel that is related to this MembershipService
  `void`
  `setDomain(byte[] domain)`
  Set the associated domain.
  `void`
  `setLocalMemberProperties(String listenHost, int listenPort, int securePort, int udpPort)`
  Sets the local member properties for broadcasting.
  `void`
  `setMembershipListener(MembershipListener listener)`
  Sets the membership listener, only one listener can be added.
  `void`
  `setPayload(byte[] payload)`
  Set a payload to be broadcasted with each membership broadcast.
  `void`
  `setProperties(Properties properties)`
  Sets the properties for the membership service.
  `void`
  `start()`
  Starts the membership service.
  `void`
  `start(int level)`
  Starts the membership service.
  `void`
  `stop(int level)`
  Stops the membership service.

- ## Field Details

  - ### MBR_RX

    static final int MBR_RX
    See Also:
      - Constant Field Values

  - ### MBR_TX

    static final int MBR_TX
    See Also:
      - Constant Field Values

- ## Method Details

  - ### setProperties

    void setProperties(Properties properties)
    Sets the properties for the membership service. This must be called before the `start()` method is called. The properties are implementation specific.
    Parameters:
      `properties` - - to be used to configure the membership service.

  - ### getProperties

    Properties getProperties()
    Returns:
      the properties for the configuration used.

  - ### start

    void start() throws Exception
    Starts the membership service. If a membership listeners is added the listener will start to receive membership events. Performs a start level 1 and 2
    Throws:
      `Exception` - if the service fails to start.

  - ### start

    void start(int level) throws Exception
    Starts the membership service. If a membership listeners is added the listener will start to receive membership events.
    Parameters:
      `level` - - level MBR_RX starts listening for members, level MBR_TX starts broadcasting the server
    Throws:
      `Exception` - if the service fails to start.
      `IllegalArgumentException` - if the level is incorrect.

  - ### stop

    void stop(int level)
    Stops the membership service. If a membership listeners is added the listener will start to receive membership events.
    Parameters:
      `level` - - level MBR_RX stops listening for members, level MBR_TX stops broadcasting the server
    Throws:
      `IllegalArgumentException` - if the level is incorrect.

  - ### hasMembers

    boolean hasMembers()
    Returns:
      true if the group contains members

  - ### getMember

    Member getMember(Member mbr)
    Retrieve the specified member from the membership.
    Parameters:
      `mbr` - The member to retrieve
    Returns:
      the member

  - ### getMembers

    Member[] getMembers()
    Returns:
      an array of all the members in the cluster.

  - ### getLocalMember

    Member getLocalMember(boolean incAliveTime)
    Get the local member.
    Parameters:
      `incAliveTime` - `true` to set the alive time on the local member
    Returns:
      the member object that defines this member

  - ### getMembersByName

    String[] getMembersByName()
    Returns:
      all members by name

  - ### findMemberByName

    Member findMemberByName(String name)
    Get a member.
    Parameters:
      `name` - The member name
    Returns:
      the member

  - ### setLocalMemberProperties

    void setLocalMemberProperties(String listenHost, int listenPort, int securePort, int udpPort)
    Sets the local member properties for broadcasting.
    Parameters:
      `listenHost` - Listen to host
      `listenPort` - Listen to port
      `securePort` - Use a secure port
      `udpPort` - Use UDP

  - ### setMembershipListener

    void setMembershipListener(MembershipListener listener)
    Sets the membership listener, only one listener can be added. If you call this method twice, the last listener will be used.
    Parameters:
      `listener` - The listener

  - ### removeMembershipListener

    void removeMembershipListener()
    Removes the membership listener.

  - ### setPayload

    void setPayload(byte[] payload)
    Set a payload to be broadcasted with each membership broadcast.
    Parameters:
      `payload` - byte[]

  - ### setDomain

    void setDomain(byte[] domain)
    Set the associated domain.
    Parameters:
      `domain` - the domain

  - ### broadcast

    void broadcast(ChannelMessage message) throws ChannelException
    Broadcasts a message to all members.
    Parameters:
      `message` - The message to broadcast
    Throws:
      `ChannelException` - Message broadcast failed

  - ### getChannel

    Channel getChannel()
    Return the channel that is related to this MembershipService
    Returns:
      Channel

  - ### setChannel

    void setChannel(Channel channel)
    Set the channel that is related to this MembershipService
    Parameters:
      `channel` - The channel

  - ### getMembershipProvider

    MembershipProvider getMembershipProvider()
    Get the MembershipProvider
    Returns:
      MembershipProvider