public abstract class ManagerBase extends LifecycleMBeanBase implements Manager
| Modifier and Type | Class and Description | 
|---|---|
| protected static class  | ManagerBase.SessionTiming | 
Lifecycle.SingleUse| Modifier and Type | Field and Description | 
|---|---|
| protected Container | containerThe Container with which this Manager is associated. | 
| protected boolean | distributableDeprecated. 
 Ignored.  Context.getDistributable()always takes
             precedence. Will be removed in Tomcat 8.5.x. | 
| protected int | duplicates | 
| protected AtomicLong | expiredSessionsNumber of sessions that have expired. | 
| protected int | maxActive | 
| protected int | maxActiveSessionsThe maximum number of active Sessions allowed, or -1 for no limit. | 
| protected int | maxInactiveIntervalDeprecated. 
 Ignored.  Context.getSessionTimeout()always takes
             precedence. Will be removed in Tomcat 8.5.x. | 
| protected int | processExpiresFrequencyFrequency of the session expiration, and related manager operations. | 
| protected long | processingTimeProcessing time during session expiration. | 
| protected int | rejectedSessionsNumber of session creations that failed due to maxActiveSessions. | 
| protected String | secureRandomAlgorithmThe name of the algorithm to use to create instances of
  SecureRandomwhich are used to generate session IDs. | 
| protected String | secureRandomClassThe Java class name of the secure random number generator class to be
 used when generating session identifiers. | 
| protected String | secureRandomProviderThe name of the provider to use to create instances of
  SecureRandomwhich are used to generate session IDs. | 
| protected static int | SESSION_ID_LENGTH_UNSET | 
| protected long | sessionCounter | 
| protected Deque<ManagerBase.SessionTiming> | sessionCreationTiming | 
| protected Deque<ManagerBase.SessionTiming> | sessionExpirationTiming | 
| protected SessionIdGenerator | sessionIdGenerator | 
| protected Class<? extends SessionIdGenerator> | sessionIdGeneratorClass | 
| protected int | sessionIdLengthThe session id length of Sessions created by this Manager. | 
| protected int | sessionMaxAliveTimeThe longest time (in seconds) that an expired session had been alive. | 
| protected Map<String,Session> | sessionsThe set of currently active Sessions for this Manager, keyed by
 session identifier. | 
| protected static StringManager | smThe string manager for this package. | 
| protected PropertyChangeSupport | supportThe property change support for this component. | 
| protected static int | TIMING_STATS_CACHE_SIZE | 
mserverAFTER_DESTROY_EVENT, AFTER_INIT_EVENT, AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_DESTROY_EVENT, BEFORE_INIT_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, CONFIGURE_START_EVENT, CONFIGURE_STOP_EVENT, PERIODIC_EVENT, START_EVENT, STOP_EVENT| Constructor and Description | 
|---|
| ManagerBase() | 
| Modifier and Type | Method and Description | 
|---|---|
| void | add(Session session)Add this Session to the set of active Sessions for this Manager. | 
| void | addPropertyChangeListener(PropertyChangeListener listener)Add a property change listener to this component. | 
| void | backgroundProcess()This method will be invoked by the context/container on a periodic
 basis and allows the manager to implement
 a method that executes periodic tasks, such as expiring sessions etc. | 
| void | changeSessionId(Session session)Change the session ID of the current session to a new randomly generated
 session ID. | 
| void | changeSessionId(Session session,
               String newId) | 
| Session | createEmptySession()Get a session from the recycled ones or create a new empty one. | 
| Session | createSession(String sessionId)Construct and return a new session object, based on the default
 settings specified by this Manager's properties. | 
| void | expireSession(String sessionId) | 
| Session | findSession(String id)Return the active Session, associated with this Manager, with the
 specified session id (if any); otherwise return  null. | 
| Session[] | findSessions()Return the set of active Sessions associated with this Manager. | 
| protected String | generateSessionId()Generate and return a new session identifier. | 
| int | getActiveSessions()Gets the number of currently active sessions. | 
| String | getClassName() | 
| Container | getContainer()Get the Container with which this Manager is associated. | 
| String | getCreationTime(String sessionId) | 
| long | getCreationTimestamp(String sessionId) | 
| boolean | getDistributable()Deprecated.  | 
| String | getDomainInternal()Method implemented by sub-classes to identify the domain in which MBeans
 should be registered. | 
| int | getDuplicates()Number of duplicated session IDs generated by the random source. | 
| Engine | getEngine()Retrieve the enclosing Engine for this Manager. | 
| long | getExpiredSessions()Gets the number of sessions that have expired. | 
| String | getInfo()Deprecated.  | 
| String | getJvmRoute()Retrieve the JvmRoute for the enclosing Engine. | 
| String | getLastAccessedTime(String sessionId) | 
| long | getLastAccessedTimestamp(String sessionId) | 
| int | getMaxActive()Gets the maximum number of sessions that have been active at the same
 time. | 
| int | getMaxActiveSessions() | 
| int | getMaxInactiveInterval() | 
| String | getName() | 
| protected StandardSession | getNewSession()Get new session class to be used in the doLoad() method. | 
| String | getObjectNameKeyProperties()Allow sub-classes to specify the key properties component of the
  ObjectNamethat will be used to register this component. | 
| boolean | getPersistAuthentication()Return whether sessions managed by this manager shall persist authentication
 information or not. | 
| int | getProcessExpiresFrequency() | 
| long | getProcessingTime() | 
| int | getRejectedSessions()Gets the number of sessions that were not created because the maximum
 number of active sessions was reached. | 
| String | getSecureRandomAlgorithm() | 
| String | getSecureRandomClass() | 
| String | getSecureRandomProvider() | 
| HashMap<String,String> | getSession(String sessionId)Returns information about the session with the given session id. | 
| String | getSessionAttribute(String sessionId,
                   String key)For debugging. | 
| String | getSessionAttributeNameFilter()Obtain the regular expression used to filter session attribute based on
 attribute name. | 
| protected Pattern | getSessionAttributeNamePattern()Provides  getSessionAttributeNameFilter()as a pre-compiled
 regular expression pattern. | 
| String | getSessionAttributeValueClassNameFilter()Obtain the regular expression used to filter session attribute based on
 the implementation class of the value. | 
| protected Pattern | getSessionAttributeValueClassNamePattern()Provides  getSessionAttributeValueClassNameFilter()as a
 pre-compiled regular expression pattern. | 
| int | getSessionAverageAliveTime()Gets the average time (in seconds) that expired sessions had been
 alive. | 
| long | getSessionCounter()Returns the total number of sessions created by this manager. | 
| int | getSessionCreateRate()Gets the current rate of session creation (in session per minute). | 
| int | getSessionExpireRate()Gets the current rate of session expiration (in session per minute). | 
| SessionIdGenerator | getSessionIdGenerator()Gets the session id generator. | 
| int | getSessionIdLength()Deprecated. 
 Use  SessionIdGenerator.getSessionIdLength().
             This method will be removed in Tomcat 9 onwards. | 
| int | getSessionMaxAliveTime()Gets the longest time (in seconds) that an expired session had been
 alive. | 
| String | getThisAccessedTime(String sessionId) | 
| long | getThisAccessedTimestamp(String sessionId) | 
| boolean | getWarnOnSessionAttributeFilterFailure()Should a warn level log message be generated if a session attribute is
 not persisted / replicated / restored. | 
| protected void | initInternal()Sub-classes wishing to perform additional initialization should override
 this method, ensuring that super.initInternal() is the first call in the
 overriding method. | 
| String | listSessionIds()For debugging. | 
| void | processExpires()Invalidate all sessions that have expired. | 
| void | remove(Session session)Remove this Session from the active Sessions for this Manager. | 
| void | remove(Session session,
      boolean update)Remove this Session from the active Sessions for this Manager. | 
| void | removePropertyChangeListener(PropertyChangeListener listener)Remove a property change listener from this component. | 
| String | rotateSessionId(Session session) | 
| void | setContainer(Container container)Set the Container with which this Manager is associated. | 
| void | setDistributable(boolean distributable)Deprecated.  | 
| void | setDuplicates(int duplicates) | 
| void | setExpiredSessions(long expiredSessions)Sets the number of sessions that have expired. | 
| void | setMaxActive(int maxActive)(Re)sets the maximum number of sessions that have been active at the
 same time. | 
| void | setMaxActiveSessions(int max)Set the maximum number of active Sessions allowed, or -1 for
 no limit. | 
| void | setMaxInactiveInterval(int interval)Deprecated.  | 
| void | setPersistAuthentication(boolean persistAuthentication)Set whether sessions managed by this manager shall persist authentication
 information or not. | 
| void | setProcessExpiresFrequency(int processExpiresFrequency)Set the manager checks frequency. | 
| void | setProcessingTime(long processingTime) | 
| void | setSecureRandomAlgorithm(String secureRandomAlgorithm)Set the secure random number generator algorithm name. | 
| void | setSecureRandomClass(String secureRandomClass)Set the secure random number generator class name. | 
| void | setSecureRandomProvider(String secureRandomProvider)Set the secure random number generator provider name. | 
| void | setSessionAttributeNameFilter(String sessionAttributeNameFilter) | 
| void | setSessionAttributeValueClassNameFilter(String sessionAttributeValueClassNameFilter)Set the regular expression to use to filter classes used for session
 attributes. | 
| void | setSessionCounter(long sessionCounter)Sets the total number of sessions created by this manager. | 
| void | setSessionIdGenerator(SessionIdGenerator sessionIdGenerator) | 
| void | setSessionIdLength(int idLength)Deprecated. 
 Use  SessionIdGenerator.setSessionIdLength(int).
             This method will be removed in Tomcat 9 onwards. | 
| void | setSessionMaxAliveTime(int sessionMaxAliveTime)Sets the longest time (in seconds) that an expired session had been
 alive. | 
| void | setWarnOnSessionAttributeFilterFailure(boolean warnOnSessionAttributeFilterFailure)Configure whether or not a warn level log message should be generated if
 a session attribute is not persisted / replicated / restored. | 
| protected void | startInternal()Sub-classes must ensure that the state is changed to
  LifecycleState.STARTINGduring the execution of this method. | 
| protected void | stopInternal()Sub-classes must ensure that the state is changed to
  LifecycleState.STOPPINGduring the execution of this method. | 
| String | toString() | 
| void | updateSessionMaxAliveTime(int sessionAliveTime)Updates the sessionMaxAliveTime attribute if the candidate value is
 larger than the current value. | 
| boolean | willAttributeDistribute(String name,
                       Object value)Would the Manager distribute the given session attribute? | 
destroyInternal, getDomain, getObjectName, postDeregister, postRegister, preDeregister, preRegister, register, setDomain, unregisteraddLifecycleListener, destroy, findLifecycleListeners, fireLifecycleEvent, getState, getStateName, getThrowOnFailure, init, removeLifecycleListener, setState, setState, setThrowOnFailure, start, stopprotected Container container
@Deprecated protected boolean distributable
Context.getDistributable() always takes
             precedence. Will be removed in Tomcat 8.5.x.true, any user attributes added to a
 session controlled by this Manager must be Serializable.@Deprecated protected int maxInactiveInterval
Context.getSessionTimeout() always takes
             precedence. Will be removed in Tomcat 8.5.x.protected static final int SESSION_ID_LENGTH_UNSET
protected int sessionIdLength
protected String secureRandomClass
SecureRandom will be
 generated.protected String secureRandomAlgorithm
SecureRandom which are used to generate session IDs.
 If no algorithm is specified, SHA1PRNG is used. To use the platform
 default (which may be SHA1PRNG), specify the empty string. If an invalid
 algorithm and/or provider is specified the SecureRandom instances will be
 created using the defaults. If that fails, the SecureRandom instances
 will be created using platform defaults.protected String secureRandomProvider
SecureRandom which are used to generate session IDs.
 If no algorithm is specified the of SHA1PRNG default is used. If an
 invalid algorithm and/or provider is specified the SecureRandom instances
 will be created using the defaults. If that fails, the SecureRandom
 instances will be created using platform defaults.protected SessionIdGenerator sessionIdGenerator
protected Class<? extends SessionIdGenerator> sessionIdGeneratorClass
protected volatile int sessionMaxAliveTime
protected static final int TIMING_STATS_CACHE_SIZE
protected final Deque<ManagerBase.SessionTiming> sessionCreationTiming
protected final Deque<ManagerBase.SessionTiming> sessionExpirationTiming
protected final AtomicLong expiredSessions
protected Map<String,Session> sessions
protected long sessionCounter
protected volatile int maxActive
protected int maxActiveSessions
protected int rejectedSessions
protected volatile int duplicates
protected long processingTime
protected int processExpiresFrequency
protected static final StringManager sm
protected final PropertyChangeSupport support
public String getSessionAttributeNameFilter()
null means no filter is applied. If an empty string is
         specified then no names will match the filter and all attributes
         will be blocked.public void setSessionAttributeNameFilter(String sessionAttributeNameFilter)
protected Pattern getSessionAttributeNamePattern()
getSessionAttributeNameFilter() as a pre-compiled
 regular expression pattern.null means no filter is applied.public String getSessionAttributeValueClassNameFilter()
null means no filter is applied. If an empty string is
         specified then no names will match the filter and all attributes
         will be blocked.protected Pattern getSessionAttributeValueClassNamePattern()
getSessionAttributeValueClassNameFilter() as a
 pre-compiled regular expression pattern.null means
         no filter is applied.public void setSessionAttributeValueClassNameFilter(String sessionAttributeValueClassNameFilter) throws PatternSyntaxException
sessionAttributeValueClassNameFilter - The regular expression to use
            to filter session attributes based on class name. Use null if no filtering is required. If an empty string is
           specified then no names will match the filter and all
           attributes will be blocked.PatternSyntaxException - If the expression is not validpublic boolean getWarnOnSessionAttributeFilterFailure()
true if a warn level log message should be generatedpublic void setWarnOnSessionAttributeFilterFailure(boolean warnOnSessionAttributeFilterFailure)
warnOnSessionAttributeFilterFailure - true if the
            warn level message should be generatedpublic Container getContainer()
ManagergetContainer in interface Managerpublic void setContainer(Container container)
Managernull value) that the Manager is
 associated with.setContainer in interface Managercontainer - The newly associated Containerpublic String getClassName()
@Deprecated public boolean getDistributable()
getDistributable in interface Manager@Deprecated public void setDistributable(boolean distributable)
ManagersetDistributable in interface Managerdistributable - The new distributable flag@Deprecated public String getInfo()
public int getMaxInactiveInterval()
getMaxInactiveInterval in interface Manager@Deprecated public void setMaxInactiveInterval(int interval)
ManagersetMaxInactiveInterval in interface Managerinterval - The new default value@Deprecated public int getSessionIdLength()
SessionIdGenerator.getSessionIdLength().
             This method will be removed in Tomcat 9 onwards.getSessionIdLength in interface Manager@Deprecated public void setSessionIdLength(int idLength)
SessionIdGenerator.setSessionIdLength(int).
             This method will be removed in Tomcat 9 onwards.setSessionIdLength in interface ManageridLength - The session id lengthpublic SessionIdGenerator getSessionIdGenerator()
public void setSessionIdGenerator(SessionIdGenerator sessionIdGenerator)
public String getName()
public String getSecureRandomClass()
public void setSecureRandomClass(String secureRandomClass)
secureRandomClass - The new secure random number generator class
                          namepublic String getSecureRandomAlgorithm()
public void setSecureRandomAlgorithm(String secureRandomAlgorithm)
secureRandomAlgorithm - The new secure random number generator
                              algorithm namepublic String getSecureRandomProvider()
public void setSecureRandomProvider(String secureRandomProvider)
secureRandomProvider - The new secure random number generator
                             provider namepublic int getRejectedSessions()
ManagergetRejectedSessions in interface Managerpublic long getExpiredSessions()
ManagergetExpiredSessions in interface Managerpublic void setExpiredSessions(long expiredSessions)
ManagersetExpiredSessions in interface ManagerexpiredSessions - Number of sessions that have expiredpublic long getProcessingTime()
public void setProcessingTime(long processingTime)
public int getProcessExpiresFrequency()
public void setProcessExpiresFrequency(int processExpiresFrequency)
processExpiresFrequency - the new manager checks frequencypublic boolean getPersistAuthentication()
true, sessions managed by this manager shall persist
         authentication information; false otherwisepublic void setPersistAuthentication(boolean persistAuthentication)
persistAuthentication - if true, sessions managed by this manager
                              shall persist authentication informationpublic void backgroundProcess()
 Direct call to processExpires()
backgroundProcess in interface Managerpublic void processExpires()
protected void initInternal()
                     throws LifecycleException
LifecycleMBeanBaseinitInternal in class LifecycleMBeanBaseLifecycleException - If the initialisation failsprotected void startInternal()
                      throws LifecycleException
LifecycleBaseLifecycleState.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.startInternal in class LifecycleBaseLifecycleException - Start error occurredprotected void stopInternal()
                     throws LifecycleException
LifecycleBaseLifecycleState.STOPPING during the execution of this method.
 Changing state will trigger the Lifecycle.STOP_EVENT event.stopInternal in class LifecycleBaseLifecycleException - Stop error occurredpublic void add(Session session)
Managerpublic void addPropertyChangeListener(PropertyChangeListener listener)
ManageraddPropertyChangeListener in interface Managerlistener - The listener to addpublic Session createSession(String sessionId)
Managernull.createSession in interface ManagersessionId - The session id which should be used to create the
  new session; if null, the session
  id will be assigned by this method, and available via the getId()
  method of the returned session.public Session createEmptySession()
ManagercreateEmptySession in interface Managerpublic Session findSession(String id) throws IOException
Managernull.findSession in interface Managerid - The session id for the session to be returnednull if a session with the
         requested ID could not be foundIOException - if an input/output error occurs while
  processing this requestpublic Session[] findSessions()
ManagerfindSessions in interface Managerpublic void remove(Session session)
Managerpublic void remove(Session session, boolean update)
Managerpublic void removePropertyChangeListener(PropertyChangeListener listener)
ManagerremovePropertyChangeListener in interface Managerlistener - The listener to removepublic void changeSessionId(Session session)
ManagerchangeSessionId in interface Managersession - The session to change the session ID forpublic boolean willAttributeDistribute(String name, Object value)
This implementation excludes session attributes from distribution if the:
getSessionAttributeNameFilter()willAttributeDistribute in interface Managername - The attribute namevalue - The attribute valuetrue if the Manager would distribute the given attribute
         otherwise falseprotected StandardSession getNewSession()
protected String generateSessionId()
public Engine getEngine()
public String getJvmRoute()
public void setSessionCounter(long sessionCounter)
ManagersetSessionCounter in interface ManagersessionCounter - Total number of sessions created by this manager.public long getSessionCounter()
ManagergetSessionCounter in interface Managerpublic int getDuplicates()
public void setDuplicates(int duplicates)
public int getActiveSessions()
ManagergetActiveSessions in interface Managerpublic int getMaxActive()
ManagergetMaxActive in interface Managerpublic void setMaxActive(int maxActive)
ManagersetMaxActive in interface ManagermaxActive - Maximum number of sessions that have been active at
 the same time.public int getMaxActiveSessions()
public void setMaxActiveSessions(int max)
max - The new maximum number of sessionspublic int getSessionMaxAliveTime()
ManagergetSessionMaxAliveTime in interface Managerpublic void setSessionMaxAliveTime(int sessionMaxAliveTime)
ManagersetSessionMaxAliveTime in interface ManagersessionMaxAliveTime - Longest time (in seconds) that an expired
 session had been alive.public void updateSessionMaxAliveTime(int sessionAliveTime)
sessionAliveTime - The candidate value (in seconds) for the new
                          sessionMaxAliveTime value.public int getSessionAverageAliveTime()
Based on the last 100 sessions to expire. If less than 100 sessions have expired then all available data is used.
getSessionAverageAliveTime in interface Managerpublic int getSessionCreateRate()
Based on the creation time of the previous 100 sessions created. If less than 100 sessions have been created then all available data is used.
getSessionCreateRate in interface Managerpublic int getSessionExpireRate()
Based on the expiry time of the previous 100 sessions expired. If less than 100 sessions have expired then all available data is used.
getSessionExpireRate in interface Managerpublic String listSessionIds()
public String getSessionAttribute(String sessionId, String key)
sessionId - The ID for the session of interestkey - The key for the attribute to obtainpublic HashMap<String,String> getSession(String sessionId)
The session information is organized as a HashMap, mapping session attribute names to the String representation of their values.
sessionId - Session idpublic void expireSession(String sessionId)
public long getThisAccessedTimestamp(String sessionId)
public long getLastAccessedTimestamp(String sessionId)
public long getCreationTimestamp(String sessionId)
public String getObjectNameKeyProperties()
LifecycleMBeanBaseObjectName that will be used to register this component.getObjectNameKeyProperties in class LifecycleMBeanBaseObjectNamepublic String getDomainInternal()
LifecycleMBeanBasegetDomainInternal in class LifecycleMBeanBaseCopyright © 2000-2020 Apache Software Foundation. All Rights Reserved.