Class StaticMembershipProvider

    • Field Detail

      • sm

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

        protected Channel channel
        The channel associated with this provider.
      • rpcChannel

        protected RpcChannel rpcChannel
        RPC channel for sending messages.
      • staticMembers

        protected java.util.ArrayList<StaticMember> staticMembers
        List of static members for this cluster.
      • sendOptions

        protected int sendOptions
        Send options flag for channel messages.
      • expirationTime

        protected long expirationTime
        Time in milliseconds after which a member is considered expired.
      • connectTimeout

        protected int connectTimeout
        Socket connection timeout in milliseconds.
      • rpcTimeout

        protected long rpcTimeout
        RPC operation timeout in milliseconds.
      • startLevel

        protected int startLevel
        Current start level bitmask.
      • useThread

        protected boolean useThread
        Whether to use a background thread for pinging.
      • pingInterval

        protected long pingInterval
        Interval between ping messages in milliseconds.
      • running

        protected volatile boolean running
        Whether the ping thread is currently running.
    • Constructor Detail

      • StaticMembershipProvider

        public StaticMembershipProvider()
        Default constructor.
    • Method Detail

      • init

        public void init​(java.util.Properties properties)
                  throws java.lang.Exception
        Description copied from interface: MembershipProvider
        Initialize the membership provider with the specified configuration.
        Specified by:
        init in interface MembershipProvider
        Overrides:
        init in class MembershipProviderBase
        Parameters:
        properties - configuration
        Throws:
        java.lang.Exception - if an error occurs
      • start

        public void start​(int level)
                   throws java.lang.Exception
        Description copied from interface: MembershipProvider
        Start the membership provider.
        Specified by:
        start in interface MembershipProvider
        Parameters:
        level - the readiness level
        • Channel.DEFAULT - will start all services
        • Channel.MBR_RX_SEQ - starts the membership receiver
        • Channel.MBR_TX_SEQ - starts the membership broadcaster
        Throws:
        java.lang.Exception - if an error occurs
      • stop

        public boolean stop​(int level)
                     throws java.lang.Exception
        Description copied from interface: MembershipProvider
        Stop the membership provider.
        Specified by:
        stop in interface MembershipProvider
        Parameters:
        level - the readiness level
        • Channel.DEFAULT - will stop all services
        • Channel.MBR_RX_SEQ - stops the membership receiver
        • Channel.MBR_TX_SEQ - stops the membership broadcaster
        Returns:
        true if successful
        Throws:
        java.lang.Exception - if an error occurs
      • startMembership

        protected void startMembership​(Member[] members)
                                throws ChannelException
        Sends start messages to the given members.
        Parameters:
        members - the members to notify
        Throws:
        ChannelException - if sending fails
      • setupMember

        protected Member setupMember​(Member mbr)
        Sets up a member after it joins. Override for customization.
        Parameters:
        mbr - the member to set up
        Returns:
        the configured member
      • memberAdded

        protected void memberAdded​(Member member)
        Handles the addition of a new member to the cluster.
        Parameters:
        member - the member that was added
      • memberDisappeared

        protected void memberDisappeared​(Member member)
        Handles the disappearance of a member from the cluster.
        Parameters:
        member - the member that disappeared
      • memberAlive

        protected void memberAlive​(Member member)
        Updates the alive status of a member.
        Parameters:
        member - the member to update
      • stopMembership

        protected void stopMembership​(Member[] members)
        Sends stop messages to the given members.
        Parameters:
        members - the members to notify
      • messageReceived

        public void messageReceived​(java.io.Serializable msg,
                                    Member sender)
        Description copied from interface: ChannelListener
        Receive a message from the channel
        Specified by:
        messageReceived in interface ChannelListener
        Parameters:
        msg - Serializable
        sender - - the source of the message
      • accept

        public boolean accept​(java.io.Serializable msg,
                              Member sender)
        Description copied from interface: ChannelListener
        Invoked by the channel to determine if the listener will process this message or not.
        Specified by:
        accept in interface ChannelListener
        Parameters:
        msg - Serializable
        sender - Member
        Returns:
        boolean
      • replyRequest

        public java.io.Serializable replyRequest​(java.io.Serializable msg,
                                                 Member sender)
        Description copied from interface: RpcCallback
        Allows sending a response to a received message.
        Specified by:
        replyRequest in interface RpcCallback
        Parameters:
        msg - The message
        sender - Member
        Returns:
        Serializable object, null if no reply should be sent
      • leftOver

        public void leftOver​(java.io.Serializable msg,
                             Member sender)
        Description copied from interface: RpcCallback
        If the reply has already been sent to the requesting thread, the rpc callback can handle any data that comes in after the fact.
        Specified by:
        leftOver in interface RpcCallback
        Parameters:
        msg - The message
        sender - Member
      • heartbeat

        public void heartbeat()
        Description copied from interface: Heartbeat
        Heartbeat invocation for resources cleanup etc
        Specified by:
        heartbeat in interface Heartbeat
      • ping

        protected void ping()
                     throws ChannelException
        Sends ping messages to all static members and checks for expired members.
        Throws:
        ChannelException - if pinging fails
      • checkExpired

        protected void checkExpired()
        Checks for and removes expired members.
      • setChannel

        public void setChannel​(Channel channel)
        Sets the channel for this provider.
        Parameters:
        channel - the channel
      • setStaticMembers

        public void setStaticMembers​(java.util.ArrayList<StaticMember> staticMembers)
        Sets the static members for this cluster.
        Parameters:
        staticMembers - the list of static members