Class SimpleTcpCluster

    • Field Detail

      • log

        public static final Log log
      • BEFORE_MEMBERREGISTER_EVENT

        public static final java.lang.String BEFORE_MEMBERREGISTER_EVENT
        See Also:
        Constant Field Values
      • AFTER_MEMBERREGISTER_EVENT

        public static final java.lang.String AFTER_MEMBERREGISTER_EVENT
        See Also:
        Constant Field Values
      • BEFORE_MANAGERREGISTER_EVENT

        public static final java.lang.String BEFORE_MANAGERREGISTER_EVENT
        See Also:
        Constant Field Values
      • AFTER_MANAGERREGISTER_EVENT

        public static final java.lang.String AFTER_MANAGERREGISTER_EVENT
        See Also:
        Constant Field Values
      • BEFORE_MANAGERUNREGISTER_EVENT

        public static final java.lang.String BEFORE_MANAGERUNREGISTER_EVENT
        See Also:
        Constant Field Values
      • AFTER_MANAGERUNREGISTER_EVENT

        public static final java.lang.String AFTER_MANAGERUNREGISTER_EVENT
        See Also:
        Constant Field Values
      • BEFORE_MEMBERUNREGISTER_EVENT

        public static final java.lang.String BEFORE_MEMBERUNREGISTER_EVENT
        See Also:
        Constant Field Values
      • AFTER_MEMBERUNREGISTER_EVENT

        public static final java.lang.String AFTER_MEMBERUNREGISTER_EVENT
        See Also:
        Constant Field Values
      • SEND_MESSAGE_FAILURE_EVENT

        public static final java.lang.String SEND_MESSAGE_FAILURE_EVENT
        See Also:
        Constant Field Values
      • RECEIVE_MESSAGE_FAILURE_EVENT

        public static final java.lang.String RECEIVE_MESSAGE_FAILURE_EVENT
        See Also:
        Constant Field Values
      • channel

        protected Channel channel
        Group channel.
      • sm

        protected static final StringManager sm
        The string manager for this package.
      • clusterName

        protected java.lang.String clusterName
        The cluster name to join
      • heartbeatBackgroundEnabled

        protected boolean heartbeatBackgroundEnabled
        call Channel.heartbeat() at container background thread
        See Also:
        GroupChannel.heartbeat()
      • container

        protected Container container
        The Container associated with this Cluster.
      • support

        protected final java.beans.PropertyChangeSupport support
        The property change support for this component.
      • managers

        protected final java.util.Map<java.lang.String,​ClusterManager> managers
        The context name <-> manager association for distributed contexts.
      • clusterListeners

        protected final java.util.List<ClusterListener> clusterListeners
        Listeners of messages
      • hasMembers

        protected boolean hasMembers
        has members
    • Constructor Detail

      • SimpleTcpCluster

        public SimpleTcpCluster()
    • Method Detail

      • isHeartbeatBackgroundEnabled

        public boolean isHeartbeatBackgroundEnabled()
        Return heartbeat enable flag (default false)
        Returns:
        the heartbeatBackgroundEnabled
      • setHeartbeatBackgroundEnabled

        public void setHeartbeatBackgroundEnabled​(boolean heartbeatBackgroundEnabled)
        enabled that container backgroundThread call heartbeat at channel
        Parameters:
        heartbeatBackgroundEnabled - the heartbeatBackgroundEnabled to set
      • setClusterName

        public void setClusterName​(java.lang.String clusterName)
        Set the name of the cluster to join, if no cluster with this name is present create one.
        Specified by:
        setClusterName in interface Cluster
        Parameters:
        clusterName - The clustername to join
      • getClusterName

        public java.lang.String getClusterName()
        Return the name of the cluster that this Server is currently configured to operate within.
        Specified by:
        getClusterName in interface Cluster
        Returns:
        The name of the cluster associated with this server
      • setContainer

        public void setContainer​(Container container)
        Set the Container associated with our Cluster
        Specified by:
        setContainer in interface Contained
        Parameters:
        container - The Container to use
      • getContainer

        public Container getContainer()
        Get the Container associated with our Cluster
        Specified by:
        getContainer in interface Contained
        Returns:
        The Container associated with our Cluster
      • isNotifyLifecycleListenerOnFailure

        public boolean isNotifyLifecycleListenerOnFailure()
        Returns:
        Returns the notifyLifecycleListenerOnFailure.
      • setNotifyLifecycleListenerOnFailure

        public void setNotifyLifecycleListenerOnFailure​(boolean notifyListenerOnFailure)
        Parameters:
        notifyListenerOnFailure - The notifyLifecycleListenerOnFailure to set.
      • addValve

        public void addValve​(Valve valve)
        Add cluster valve Cluster Valves are only add to container when cluster is started!
        Specified by:
        addValve in interface CatalinaCluster
        Parameters:
        valve - The new cluster Valve.
      • getValves

        public Valve[] getValves()
        get all cluster valves
        Specified by:
        getValves in interface CatalinaCluster
        Returns:
        current cluster valves
      • findClusterListeners

        public ClusterListener[] findClusterListeners()
        Get the cluster listeners associated with this cluster. If this Array has no listeners registered, a zero-length array is returned.
        Returns:
        the listener array
      • setClusterDeployer

        public void setClusterDeployer​(ClusterDeployer clusterDeployer)
        set a new Deployer, must be set before cluster started!
        Specified by:
        setClusterDeployer in interface CatalinaCluster
        Parameters:
        clusterDeployer - The associated deployer
      • setManagerTemplate

        public void setManagerTemplate​(ClusterManager managerTemplate)
      • setChannelSendOptions

        public void setChannelSendOptions​(int channelSendOptions)
      • setChannelSendOptions

        public void setChannelSendOptions​(java.lang.String channelSendOptions)
      • hasMembers

        public boolean hasMembers()
        Specified by:
        hasMembers in interface CatalinaCluster
        Returns:
        true if the cluster has members.
      • getMembers

        public Member[] getMembers()
        Get all current cluster members
        Specified by:
        getMembers in interface CatalinaCluster
        Returns:
        all members or empty array
      • getChannelSendOptions

        public int getChannelSendOptions()
      • getChannelSendOptionsName

        public java.lang.String getChannelSendOptionsName()
        returns the SendOptions as a comma separated list of names for use by JMX
        Returns:
        a comma separated list of the option names
      • registerManager

        public void registerManager​(Manager manager)
        Description copied from interface: Cluster
        Register a manager with the cluster. If the cluster is not responsible for creating a manager, then the container will at least notify the cluster that this manager is participating in the cluster.
        Specified by:
        registerManager in interface Cluster
        Parameters:
        manager - Manager
      • getManagerName

        public java.lang.String getManagerName​(java.lang.String name,
                                               Manager manager)
        Description copied from interface: CatalinaCluster
        Get a new cluster name for a manager.
        Specified by:
        getManagerName in interface CatalinaCluster
        Parameters:
        name - Override name (optional)
        manager - The manager
        Returns:
        the manager name in the cluster
      • getManager

        public Manager getManager​(java.lang.String name)
        Description copied from interface: CatalinaCluster
        Get Manager
        Specified by:
        getManager in interface CatalinaCluster
        Parameters:
        name - The manager name
        Returns:
        The manager
      • checkDefaults

        protected void checkDefaults()
      • registerClusterValve

        protected void registerClusterValve()
        register all cluster valve to host or engine
      • unregisterClusterValve

        protected void unregisterClusterValve()
        unregister all cluster valve to host or engine
      • toString

        public java.lang.String toString()
        Return a String rendering of this object.
        Overrides:
        toString in class java.lang.Object
      • send

        public void send​(ClusterMessage msg,
                         Member dest,
                         int sendOptions)
        Description copied from interface: CatalinaCluster
        Sends a message with the specified sendOptions to a specific member in the cluster.
        Specified by:
        send in interface CatalinaCluster
        Parameters:
        msg - ClusterMessage
        dest - Member
        sendOptions - sendOptions
      • accept

        public boolean accept​(java.io.Serializable msg,
                              Member sender)
        notify all listeners from receiving a new message is not ClusterMessage emit Failure Event to LifecycleListener
        Specified by:
        accept in interface ChannelListener
        Parameters:
        msg - received Message
        sender - Member
        Returns:
        boolean
      • messageReceived

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

        public void messageReceived​(ClusterMessage message)
      • getChannelStartOptions

        public int getChannelStartOptions()
      • setChannelStartOptions

        public void setChannelStartOptions​(int channelStartOptions)
      • getDomainInternal

        protected java.lang.String getDomainInternal()
        Description copied from class: LifecycleMBeanBase
        Method implemented by sub-classes to identify the domain in which MBeans should be registered.
        Specified by:
        getDomainInternal in class LifecycleMBeanBase
        Returns:
        The name of the domain to use to register MBeans.
      • getObjectNameKeyProperties

        protected java.lang.String getObjectNameKeyProperties()
        Description copied from class: LifecycleMBeanBase
        Allow sub-classes to specify the key properties component of the ObjectName that will be used to register this component.
        Specified by:
        getObjectNameKeyProperties in class LifecycleMBeanBase
        Returns:
        The string representation of the key properties component of the desired ObjectName