org.apache.catalina.ha

## Interface ClusterManager

- All Superinterfaces:
    Manager
  All Known Implementing Classes:
    BackupManager, ClusterManagerBase, DeltaManager

      public interface ClusterManager
      extends Manager

  The common interface used by all cluster manager. This is so that we can have a more pluggable way of swapping session managers for different algorithms.
  Author:
    Peter Rossbach

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `ClusterManager` | `cloneFromTemplate()`
    `CatalinaCluster` | `getCluster()`
    `String[]` | `getInvalidatedSessions()` When the manager expires session not tied to a request.
    `String` | `getName()` Return the name of the manager, at host /context name and at engine hostname+/context.
    `ReplicationStream` | `getReplicationStream(byte[] data)` Open stream and use correct ClassLoader (Container), switching thread context class loader.
    `ReplicationStream` | `getReplicationStream(byte[] data, int offset, int length)`
    `boolean` | `isNotifyListenersOnReplication()`
    `void` | `messageDataReceived(ClusterMessage msg)` A message was received from another node, this is the callback method to implement if you are interested in receiving replication messages.
    `ClusterMessage` | `requestCompleted(String sessionId)` When the request has been completed, the replication valve will notify the manager, and the manager will decide whether any replication is needed or not.
    `void` | `setCluster(CatalinaCluster cluster)`
    `void` | `setName(String name)` Set the name of the manager, at host /context name and at engine hostname+/context

    - ### Methods inherited from interface org.apache.catalina.Manager

      `add, addPropertyChangeListener, backgroundProcess, changeSessionId, changeSessionId, createEmptySession, createSession, findSession, findSessions, getActiveSessions, getContext, getExpiredSessions, getMaxActive, getRejectedSessions, getSessionAverageAliveTime, getSessionCounter, getSessionCreateRate, getSessionExpireRate, getSessionIdGenerator, getSessionMaxAliveTime, load, remove, remove, removePropertyChangeListener, setContext, setExpiredSessions, setMaxActive, setSessionCounter, setSessionIdGenerator, setSessionMaxAliveTime, unload, willAttributeDistribute`

- - ### Method Detail

    - #### messageDataReceived

          void messageDataReceived(ClusterMessage msg)

      A message was received from another node, this is the callback method to implement if you are interested in receiving replication messages.
      Parameters:
        `msg` - - the message received.

    - #### requestCompleted

          ClusterMessage requestCompleted(String sessionId)

      When the request has been completed, the replication valve will notify the manager, and the manager will decide whether any replication is needed or not. If there is a need for replication, the manager will create a session message and that will be replicated. The cluster determines where it gets sent.
      Parameters:
        `sessionId` - - the sessionId that just completed.
      Returns:
        a SessionMessage to be sent.

    - #### getInvalidatedSessions

          String[] getInvalidatedSessions()

      When the manager expires session not tied to a request. The cluster will periodically ask for a list of sessions that should expire and that should be sent across the wire.
      Returns:
        String[] The invalidated sessions

    - #### getName

          String getName()

      Return the name of the manager, at host /context name and at engine hostname+/context.
      Returns:
        String
      Since:
        5.5.10

    - #### setName

          void setName(String name)

      Set the name of the manager, at host /context name and at engine hostname+/context
      Parameters:
        `name` - The manager name
      Since:
        5.5.10

    - #### getCluster

          CatalinaCluster getCluster()

    - #### setCluster

          void setCluster(CatalinaCluster cluster)

    - #### getReplicationStream

          ReplicationStream getReplicationStream(byte[] data)
                                                 throws IOException

      Open stream and use correct ClassLoader (Container), switching thread context class loader.
      Parameters:
        `data` - The data
      Returns:
        The object input stream
      Throws:
        `IOException` - An error occurred

    - #### getReplicationStream

          ReplicationStream getReplicationStream(byte[] data,
                                               int offset,
                                               int length)
                                                 throws IOException

      Throws:
        `IOException`

    - #### isNotifyListenersOnReplication

          boolean isNotifyListenersOnReplication()

    - #### cloneFromTemplate

          ClusterManager cloneFromTemplate()

Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.