Class StaticMembershipInterceptor

java.lang.Object
org.apache.catalina.tribes.group.ChannelInterceptorBase
org.apache.catalina.tribes.group.interceptors.StaticMembershipInterceptor
All Implemented Interfaces:
ChannelInterceptor, StaticMembershipInterceptorMBean, Heartbeat, MembershipListener

public class StaticMembershipInterceptor extends ChannelInterceptorBase implements StaticMembershipInterceptorMBean
Channel interceptor that manages static membership for a cluster.
  • Field Details

    • sm

      protected static final StringManager sm
      String manager for this class.
    • MEMBER_START

      protected static final byte[] MEMBER_START
      Payload sent when a member starts.
    • MEMBER_STOP

      protected static final byte[] MEMBER_STOP
      Payload sent when a member shuts down.
    • members

      protected final ArrayList<Member> members
      List of static members configured for this interceptor.
    • localMember

      protected Member localMember
      The local member for this interceptor.
  • Constructor Details

    • StaticMembershipInterceptor

      public StaticMembershipInterceptor()
      Default constructor.
  • Method Details

    • addStaticMember

      public void addStaticMember(Member member)
      Adds a static member to the membership list.
      Parameters:
      member - the member to add
    • removeStaticMember

      public void removeStaticMember(Member member)
      Removes a static member from the membership list.
      Parameters:
      member - the member to remove
    • setLocalMember

      public void setLocalMember(Member member)
      Sets the local member for this interceptor.
      Parameters:
      member - the local member
    • messageReceived

      public void messageReceived(ChannelMessage msg)
      Description copied from interface: ChannelInterceptor
      The messageReceived is invoked when a message is received. ChannelMessage.getAddress() is the sender, or the reply-to address if it has been overwritten.
      Specified by:
      messageReceived in interface ChannelInterceptor
      Overrides:
      messageReceived in class ChannelInterceptorBase
      Parameters:
      msg - ChannelMessage
    • hasMembers

      public boolean hasMembers()
      Description copied from interface: ChannelInterceptor
      Intercepts the Channel.hasMembers() method
      Specified by:
      hasMembers in interface ChannelInterceptor
      Overrides:
      hasMembers in class ChannelInterceptorBase
      Returns:
      boolean - if the channel has members in its membership group
      See Also:
    • getMembers

      public Member[] getMembers()
      Description copied from interface: ChannelInterceptor
      Intercepts the Channel.getMembers() method
      Specified by:
      getMembers in interface ChannelInterceptor
      Overrides:
      getMembers in class ChannelInterceptorBase
      Returns:
      the members
      See Also:
    • getMember

      public Member getMember(Member mbr)
      Description copied from interface: ChannelInterceptor
      Intercepts the Channel.getMember(Member) method
      Specified by:
      getMember in interface ChannelInterceptor
      Overrides:
      getMember in class ChannelInterceptorBase
      Parameters:
      mbr - Member
      Returns:
      Member - the actual member information, including stay alive
      See Also:
    • getLocalMember

      public Member getLocalMember(boolean incAlive)
      Description copied from interface: ChannelInterceptor
      Intercepts the Channel.getLocalMember(boolean) method
      Specified by:
      getLocalMember in interface ChannelInterceptor
      Specified by:
      getLocalMember in interface StaticMembershipInterceptorMBean
      Overrides:
      getLocalMember in class ChannelInterceptorBase
      Parameters:
      incAlive - boolean
      Returns:
      the member that represents this node
      See Also:
    • start

      public void start(int svc) throws ChannelException
      Starts up the channel. This can be called multiple times for individual services to start The svc parameter can be the logical or value of any constants

      Sends notifications upwards.

      Specified by:
      start in interface ChannelInterceptor
      Overrides:
      start in class ChannelInterceptorBase
      Parameters:
      svc - one of:
      • Channel.DEFAULT - will start all services
      • Channel.MBR_RX_SEQ - starts the membership receiver
      • Channel.MBR_TX_SEQ - starts the membership broadcaster
      • Channel.SND_TX_SEQ - starts the replication transmitter
      • Channel.SND_RX_SEQ - starts the replication receiver
      Throws:
      ChannelException - if a startup error occurs or the service is already started.
      See Also:
    • stop

      public void stop(int svc) throws ChannelException
      Shuts down the channel. This can be called multiple times for individual services to shut down. The svc parameter can be the logical or value of any constants

      Sends local member shutdown.

      Specified by:
      stop in interface ChannelInterceptor
      Overrides:
      stop in class ChannelInterceptorBase
      Parameters:
      svc - one of:
      • Channel.DEFAULT - will shut down all services
      • Channel.MBR_RX_SEQ - stops the membership receiver
      • Channel.MBR_TX_SEQ - stops the membership broadcaster
      • Channel.SND_TX_SEQ - stops the replication transmitter
      • Channel.SND_RX_SEQ - stops the replication receiver
      Throws:
      ChannelException - if a startup error occurs or the service is already started.
      See Also:
    • sendLocalMember

      protected void sendLocalMember(Member[] members)
      Sends a local member start message to the given members.
      Parameters:
      members - the members to notify
    • sendShutdown

      protected void sendShutdown(Member[] members)
      Sends a shutdown message to the given members.
      Parameters:
      members - the members to notify
    • getfirstInterceptor

      protected ChannelInterceptor getfirstInterceptor()
      Returns the first (bottom-most) interceptor in the chain.
      Returns:
      the first channel interceptor
    • sendMemberMessage

      protected void sendMemberMessage(Member[] members, byte[] message) throws ChannelException
      Sends a member message to the given members.
      Parameters:
      members - the members to send to
      message - the message payload
      Throws:
      ChannelException - if sending fails