/* * JBoss, Home of Professional Open Source. * Copyright 2008, Red Hat Middleware LLC, and individual contributors * as indicated by the @author tags. See the copyright.txt file in the * distribution for a full listing of individual contributors. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ package org.jboss.as.undertow.session; /** * The MBean-interface for the JBossManager * * @author Thomas Peuss <jboss@peuss.de> * @author Brian Stansberry * * @version $Revision: 106011 $ */ public interface SessionManagerStatistics { /** * Gets the replication statistics for the sessions managed by this manager. * * @return the statistics */ ReplicationStatistics getReplicationStatistics(); /** * Resets all statistics. */ void resetStats(); /** * Gets the elapsed time (in seconds) since this manager was instantiated or the last call to resetStats() */ long getTimeSinceLastReset(); /** * Gets the number of sessions active on this node. This includes replicated sessions that have not been accessed on this * node. */ long getActiveSessionCount(); /** * Gets the count of sessions known to this manager, excluding those in the distributed stored that have not been accessed * on this node. */ long getLocalActiveSessionCount(); /** * Gets the number of times session creation has failed because the number of active sessions exceeds * {@link #getMaxActiveAllowed() maxActiveAllowed} */ long getRejectedSessionCount(); /** * Gets the number of sessions created on this node. Does not include sessions initially created on other nodes, even if * those sessions were accessed on this node. */ long getCreatedSessionCount(); /** * Gets the number of sessions that have been expired on this node. */ long getExpiredSessionCount(); /** * Gets the highest number of sessions concurrently active on this node. This includes replicated sessions that have not * been accessed on this node. */ long getMaxActiveSessionCount(); /** * Gets the highest value seen for {@link #getLocalSessionCount()} */ long getMaxLocalActiveSessionCount(); /** * Gets the maximum number of {@link #getActiveSessionCount() active sessions} that will concurrently be allowed on this * node. This includes replicated sessions that have not been accessed on this node. */ int getMaxActiveAllowed(); /** * Sets the maximum number of active sessions that will concurrently be allowed on this node, excluding any sessions that * have been passivated. This includes replicated sessions that have not been accessed on this node. If the * {@link #getActiveSessionCount() active session count} exceeds this value and an attempt to create a new session is made, * session creation will fail with an {@link IllegalStateException}. * * @param max the max number of sessions, or <code>-1</code> if there is no limit. */ void setMaxActiveAllowed(int max); /** * Gets the maximum time interval, in seconds, between client requests after which sessions created by this manager should * be expired. A negative time indicates that the session should never time out. */ int getMaxInactiveInterval(); /** * Sets the maximum time interval, in seconds, between client requests after which sessions created by this manager should * be expired. A negative time indicates that the session should never time out. * * @param interval The new maximum interval */ void setMaxInactiveInterval(int seconds); /** * Gets whether this manager's sessions are distributable. */ boolean getDistributable(); /** * Set the distributable flag for the sessions supported by this Manager. If this flag is set, all user data objects added * to sessions associated with this manager must implement Serializable. * * @param distributable the distributable flag */ void setDistributable(boolean distributable); /** * Gets the cumulative number of milliseconds spent in the <code>Manager.backgroundProcess()</code> method. */ long getProcessingTime(); /** * Sets the cumulative number of milliseconds spent in the <code>Manager.backgroundProcess()</code> method. * * @param processingTime the processing time */ void setProcessingTime(long processingTime); /** * Outputs the replication statistics as an HTML table, with one row per session. */ // String reportReplicationStatistics(); /** * Outputs the replication statistics as a comma-separated-values, with one row per session. First row is a header listing * field names. */ // String reportReplicationStatisticsCSV(); /** * Outputs the replication statistics for the given session as a set of comma-separated-values. First row is a header * listing field names. */ // String reportReplicationStatisticsCSV(String sessionId); /** * Gets the number of characters used in creating a session id. Excludes any jvmRoute. */ int getSessionIdLength(); // StandardManager Attributes /** * Gets the fully qualified class name of the managed object */ String getClassName(); /** * Gets the maximum number of active Sessions allowed, or -1 for no limit. */ int getMaxActiveSessions(); /** * Gets the frequency of the manager checks (expiration and passivation) */ int getProcessExpiresFrequency(); /** * Sets the frequency of the manager checks (expiration and passivation) */ void setProcessExpiresFrequency(int frequency); /** * Gets the name of this Manager implementation. */ String getName(); /** * Number of active sessions at this moment. Same as {@link #getActiveSessionCount()}. */ int getActiveSessions(); /** * Total number of sessions created by this manager. Same as {@link #getCreatedSessionCount()} */ int getSessionCounter(); /** * Sets the total number of sessions created by this manager. * * @param sessionCounter the new created session count */ void setSessionCounter(int sessionCounter); /** * Gets the maximum number of active sessions so far. Same as {@link #getMaxActiveSessionCount()} */ int getMaxActive(); /** * Sets the maximum number of active sessions so far. * * @param maxActive the new maximum number of active sessions */ void setMaxActive(int maxActive); /** * Gets the longest time an expired session had been alive */ int getSessionMaxAliveTime(); /** * Sets the longest time an expired session had been alive * * @param sessionAliveTime the new longest session life */ void setSessionMaxAliveTime(int sessionAliveTime); /** * Gets the average time an expired session had been alive */ int getSessionAverageAliveTime(); /** * Gets the number of sessions that expired. Same as {@link #getExpiredSessionCount()} */ int getExpiredSessions(); /** * Gets the number of sessions we rejected due to maxActive being reached. Same as {@link #getRejectedSessionCount()} */ int getRejectedSessions(); }