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

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