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

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `backgroundProcess()` | Execute a periodic task, such as reloading, etc.
    `Manager` | `createManager​(java.lang.String name)` | Create a new manager which will use this cluster to replicate its sessions.
    `java.lang.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​(java.lang.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 Detail

    - #### getClusterName

          java.lang.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​(java.lang.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​(java.lang.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.