/* * 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.web.tomcat.service.session; import org.jboss.web.tomcat.statistics.ReplicationStatistics; /** * The MBean-interface for the JBossManager * * @author Thomas Peuss <jboss@peuss.de> * @author Brian Stansberry * * @version $Revision: 85945 $ */ public interface JBossManagerMBean { /** * 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 minutes); /** * Gets whether this manager's sessions are distributable. */ boolean getDistributable(); /** * Gets the cumulative number of milliseconds spent in the * <code>Manager.backgroundProcess()</code> method. */ long getProcessingTime(); /** * 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 message digest algorithm to be used when generating * session identifiers. */ String getAlgorithm(); /** * 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(); /** * Gets the maximum number of active sessions so far. * Same as {@link #getMaxActiveSessionCount()} */ int getMaxActive(); /** * Gets the longest time an expired session had been alive */ int getSessionMaxAliveTime(); /** * 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(); }