Class ClusterManagerBase

All Implemented Interfaces:
MBeanRegistration, ClusterManager, JmxEnabled, Lifecycle, Manager
Direct Known Subclasses:
BackupManager, DeltaManager

public abstract class ClusterManagerBase extends ManagerBase implements ClusterManager
Base class for cluster session managers. Provides common functionality for session replication and clustering.
  • Field Details

    • sm

      protected static final StringManager sm
      String manager for this class.
    • cluster

      protected CatalinaCluster cluster
      A reference to the cluster
  • Constructor Details

    • ClusterManagerBase

      public ClusterManagerBase()
      Default constructor for ClusterManagerBase.
  • Method Details

    • getDeltaRequestPool

      protected SynchronizedStack<DeltaRequest> getDeltaRequestPool()
      Returns the pool of DeltaRequest objects.
      Returns:
      the delta request pool
    • getCluster

      public CatalinaCluster getCluster()
      Description copied from interface: ClusterManager
      Returns the cluster associated with this manager.
      Specified by:
      getCluster in interface ClusterManager
      Returns:
      the cluster associated with this manager
    • setCluster

      public void setCluster(CatalinaCluster cluster)
      Description copied from interface: ClusterManager
      Set the cluster associated with this manager.
      Specified by:
      setCluster in interface ClusterManager
      Parameters:
      cluster - the cluster
    • isNotifyListenersOnReplication

      public boolean isNotifyListenersOnReplication()
      Description copied from interface: ClusterManager
      Returns whether listeners are notified on replication.
      Specified by:
      isNotifyListenersOnReplication in interface ClusterManager
      Returns:
      true if listeners are notified on replication
    • setNotifyListenersOnReplication

      public void setNotifyListenersOnReplication(boolean notifyListenersOnReplication)
      Sets whether listeners should be notified on replication.
      Parameters:
      notifyListenersOnReplication - the new value
    • isRecordAllActions

      public boolean isRecordAllActions()
      Returns whether all session attribute actions should be recorded.
      Returns:
      true if all actions are recorded
    • setRecordAllActions

      public void setRecordAllActions(boolean recordAllActions)
      Sets whether all session attribute actions should be recorded.
      Parameters:
      recordAllActions - the new value
    • getClassLoaders

      public static ClassLoader[] getClassLoaders(Context context)
      Returns the class loaders for the specified context.
      Parameters:
      context - the context
      Returns:
      the array of class loaders
    • getClassLoaders

      public ClassLoader[] getClassLoaders()
      Returns the class loaders for this manager's context.
      Returns:
      the array of class loaders
    • getReplicationStream

      public ReplicationStream getReplicationStream(byte[] data) throws IOException
      Description copied from interface: ClusterManager
      Open stream and use correct ClassLoader (Container), switching thread context class loader.
      Specified by:
      getReplicationStream in interface ClusterManager
      Parameters:
      data - the data
      Returns:
      the object input stream
      Throws:
      IOException - An error occurred
    • getReplicationStream

      public ReplicationStream getReplicationStream(byte[] data, int offset, int length) throws IOException
      Description copied from interface: ClusterManager
      Open stream and use correct ClassLoader (Container), switching thread context class loader.
      Specified by:
      getReplicationStream in interface ClusterManager
      Parameters:
      data - the data
      offset - the offset in the data array
      length - the data length
      Returns:
      the object input stream
      Throws:
      IOException - An error occurred
    • load

      public void load()
      Manager implementations that also implement ClusterManager do not support local session persistence.
      Specified by:
      load in interface Manager
    • unload

      public void unload()
      Manager implementations that also implement ClusterManager do not support local session persistence.
      Specified by:
      unload in interface Manager
    • clone

      protected void clone(ClusterManagerBase copy)
      Clone the configuration from this manager to the specified copy.
      Parameters:
      copy - the manager to clone to
    • registerSessionAtReplicationValve

      protected void registerSessionAtReplicationValve(DeltaSession session)
      Register cross context session at replication valve thread local
      Parameters:
      session - cross context session
    • startInternal

      protected void startInternal() throws LifecycleException
      Description copied from class: LifecycleBase
      Subclasses must ensure that the state is changed to LifecycleState.STARTING during the execution of this method. Changing state will trigger the Lifecycle.START_EVENT event. If a component fails to start it may either throw a LifecycleException which will cause it's parent to fail to start, or it can place itself in the error state in which case LifecycleBase.stop() will be called on the failed component but the parent component will continue to start normally.
      Overrides:
      startInternal in class ManagerBase
      Throws:
      LifecycleException - Start error occurred
    • stopInternal

      protected void stopInternal() throws LifecycleException
      Description copied from class: LifecycleBase
      Subclasses must ensure that the state is changed to LifecycleState.STOPPING during the execution of this method. Changing state will trigger the Lifecycle.STOP_EVENT event.
      Overrides:
      stopInternal in class ManagerBase
      Throws:
      LifecycleException - Stop error occurred