Package org.apache.catalina

# Interface Cluster

All Superinterfaces:
  `Contained`

All Known Subinterfaces:
  `CatalinaCluster`

All Known Implementing Classes:
  `SimpleTcpCluster`

public interface Cluster extends Contained
A Cluster works as a Cluster client/server for the local host Different Cluster implementations can be used to support different ways to communicate within the Cluster. A Cluster implementation is responsible for setting up a way to communicate within the Cluster and also supply "ClientApplications" with `ClusterSender` used when sending information in the Cluster and `ClusterInfo` used for receiving information in the Cluster.

Author:
  Bip Thelin, Remy Maucherat

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `backgroundProcess()`
  Execute a periodic task, such as reloading, etc.
  `Manager`
  `createManager(String name)`
  Create a new manager which will use this cluster to replicate its sessions.
  `String`
  `getClusterName()`
  Return the name of the cluster that this Server is currently configured to operate within.
  `void`
  `registerManager(Manager manager)`
  Register a manager with the cluster.
  `void`
  `removeManager(Manager manager)`
  Removes a manager from the cluster
  `void`
  `setClusterName(String clusterName)`
  Set the name of the cluster to join, if no cluster with this name is present create one.

  ### Methods inherited from interface org.apache.catalina.Contained

  `getContainer, setContainer`

- ## Method Details

  - ### getClusterName

    String getClusterName()
    Return the name of the cluster that this Server is currently configured to operate within.
    Returns:
      The name of the cluster associated with this server

  - ### setClusterName

    void setClusterName(String clusterName)
    Set the name of the cluster to join, if no cluster with this name is present create one.
    Parameters:
      `clusterName` - The clustername to join

  - ### createManager

    Manager createManager(String name)
    Create a new manager which will use this cluster to replicate its sessions.
    Parameters:
      `name` - Name (key) of the application with which the manager is associated
    Returns:
      The newly created Manager instance

  - ### registerManager

    void registerManager(Manager manager)
    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.
    Parameters:
      `manager` - Manager

  - ### removeManager

    void removeManager(Manager manager)
    Removes a manager from the cluster
    Parameters:
      `manager` - Manager

  - ### backgroundProcess

    void backgroundProcess()
    Execute a periodic task, such as reloading, etc. This method will be invoked inside the classloading context of this container. Unexpected throwables will be caught and logged.