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
`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 Detail

#### 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.