You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2010/07/29 13:49:48 UTC
svn commit: r980411 - in /tomcat/trunk/java/org/apache/catalina: ha/session/
session/
Author: markt
Date: Thu Jul 29 11:49:47 2010
New Revision: 980411
URL: http://svn.apache.org/viewvc?rev=980411&view=rev
Log:
Refactoring - reduce duplication
Handle maxActiveSessions, rejectedSessions and processingTime in ManagerBase
Modified:
tomcat/trunk/java/org/apache/catalina/ha/session/DeltaManager.java
tomcat/trunk/java/org/apache/catalina/ha/session/LocalStrings.properties
tomcat/trunk/java/org/apache/catalina/ha/session/LocalStrings_es.properties
tomcat/trunk/java/org/apache/catalina/session/LocalStrings.properties
tomcat/trunk/java/org/apache/catalina/session/LocalStrings_es.properties
tomcat/trunk/java/org/apache/catalina/session/LocalStrings_fr.properties
tomcat/trunk/java/org/apache/catalina/session/LocalStrings_ja.properties
tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java
tomcat/trunk/java/org/apache/catalina/session/PersistentManagerBase.java
tomcat/trunk/java/org/apache/catalina/session/StandardManager.java
Modified: tomcat/trunk/java/org/apache/catalina/ha/session/DeltaManager.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/session/DeltaManager.java?rev=980411&r1=980410&r2=980411&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/ha/session/DeltaManager.java (original)
+++ tomcat/trunk/java/org/apache/catalina/ha/session/DeltaManager.java Thu Jul 29 11:49:47 2010
@@ -95,10 +95,6 @@ public class DeltaManager extends Cluste
*/
private volatile ReplicationValve replicationValve = null ;
- /**
- * The maximum number of active Sessions allowed, or -1 for no limit.
- */
- private int maxActiveSessions = -1;
private boolean expireSessionsOnShutdown = false;
private boolean notifyListenersOnReplication = true;
private boolean notifySessionListenersOnReplication = true;
@@ -120,9 +116,7 @@ public class DeltaManager extends Cluste
// ------------------------------------------------------------------ stats attributes
- int rejectedSessions = 0;
private long sessionReplaceCounter = 0 ;
- long processingTime = 0;
private long counterReceive_EVT_GET_ALL_SESSIONS = 0 ;
private long counterReceive_EVT_ALL_SESSION_DATA = 0 ;
private long counterReceive_EVT_SESSION_CREATED = 0 ;
@@ -299,15 +293,6 @@ public class DeltaManager extends Cluste
}
/**
- * Number of session creations that failed due to maxActiveSessions
- *
- * @return The count
- */
- public int getRejectedSessions() {
- return rejectedSessions;
- }
-
- /**
* @return Returns the counterNoStateTransfered.
*/
public int getCounterNoStateTransfered() {
@@ -390,25 +375,6 @@ public class DeltaManager extends Cluste
}
/**
- * Return the maximum number of active Sessions allowed, or -1 for no limit.
- */
- public int getMaxActiveSessions() {
- return (this.maxActiveSessions);
- }
-
- /**
- * Set the maximum number of active Sessions allowed, or -1 for no limit.
- *
- * @param max
- * The new maximum number of sessions
- */
- public void setMaxActiveSessions(int max) {
- int oldMaxActiveSessions = this.maxActiveSessions;
- this.maxActiveSessions = max;
- support.firePropertyChange("maxActiveSessions", new Integer(oldMaxActiveSessions), new Integer(this.maxActiveSessions));
- }
-
- /**
*
* @return Returns the sendAllSessions.
*/
@@ -536,10 +502,6 @@ public class DeltaManager extends Cluste
* @return The session
*/
public Session createSession(String sessionId, boolean distribute) {
- if ((maxActiveSessions >= 0) && (sessions.size() >= maxActiveSessions)) {
- rejectedSessions++;
- throw new IllegalStateException(sm.getString("deltaManager.createSession.ise"));
- }
DeltaSession session = (DeltaSession) super.createSession(sessionId) ;
if (distribute) {
sendCreateSession(session.getId(), session);
@@ -547,7 +509,6 @@ public class DeltaManager extends Cluste
if (log.isDebugEnabled())
log.debug(sm.getString("deltaManager.createSession.newSession",session.getId(), new Integer(sessions.size())));
return (session);
-
}
/**
Modified: tomcat/trunk/java/org/apache/catalina/ha/session/LocalStrings.properties
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/session/LocalStrings.properties?rev=980411&r1=980410&r2=980411&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/ha/session/LocalStrings.properties (original)
+++ tomcat/trunk/java/org/apache/catalina/ha/session/LocalStrings.properties Thu Jul 29 11:49:47 2010
@@ -13,7 +13,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-deltaManager.createSession.ise=createSession: Too many active sessions
deltaManager.createSession.newSession=Created a DeltaSession with Id [{0}] Total count={1}
deltaManager.createMessage.access=Manager [{0}]: create session message [{1}] access.
deltaManager.createMessage.accessChangePrimary=Manager [{0}]: create session message [{1}] access to change primary.
Modified: tomcat/trunk/java/org/apache/catalina/ha/session/LocalStrings_es.properties
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/session/LocalStrings_es.properties?rev=980411&r1=980410&r2=980411&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/ha/session/LocalStrings_es.properties (original)
+++ tomcat/trunk/java/org/apache/catalina/ha/session/LocalStrings_es.properties Thu Jul 29 11:49:47 2010
@@ -13,7 +13,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-deltaManager.createSession.ise = createSession\: Demasiadas sesiones activas
deltaManager.createSession.newSession = Creada una DeltaSession con Id [{0}] Total contador\={1}
deltaManager.createMessage.access = Gestor [{0}]\: creado mensaje de sesi\u00F3n [{1}] acceso.
deltaManager.createMessage.accessChangePrimary = Gestor [{0}]\: creado mensaje de sesi\u00F3n [{1}] acceso para cambiar el primario.
Modified: tomcat/trunk/java/org/apache/catalina/session/LocalStrings.properties
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/session/LocalStrings.properties?rev=980411&r1=980410&r2=980411&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/session/LocalStrings.properties (original)
+++ tomcat/trunk/java/org/apache/catalina/session/LocalStrings.properties Thu Jul 29 11:49:47 2010
@@ -28,12 +28,12 @@ JDBCStore.checkConnectionDBReOpenFail=Th
JDBCStore.checkConnectionSQLException=A SQL exception occurred {0}
JDBCStore.checkConnectionClassNotFoundException=JDBC driver class not found {0}
managerBase.complete=Seeding of random number generator has been completed
+managerBase.createSession.ise=createSession: Too many active sessions
managerBase.getting=Getting message digest component for algorithm {0}
managerBase.gotten=Completed getting message digest component
managerBase.random=Exception initializing random number generator of class {0}
managerBase.seeding=Seeding random number generator class {0}
serverSession.value.iae=null value
-standardManager.createSession.ise=createSession: Too many active sessions
standardManager.expireException=processsExpire: Exception during session expiration
standardManager.loading=Loading persisted sessions from {0}
standardManager.loading.cnfe=ClassNotFoundException while loading persisted sessions: {0}
Modified: tomcat/trunk/java/org/apache/catalina/session/LocalStrings_es.properties
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/session/LocalStrings_es.properties?rev=980411&r1=980410&r2=980411&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/session/LocalStrings_es.properties (original)
+++ tomcat/trunk/java/org/apache/catalina/session/LocalStrings_es.properties Thu Jul 29 11:49:47 2010
@@ -27,12 +27,12 @@ JDBCStore.checkConnectionDBReOpenFail =
JDBCStore.checkConnectionSQLException = Ha tenido lugar una excepci\u00F3n SQL {0}
JDBCStore.checkConnectionClassNotFoundException = No se ha hallado la clase del manejador (driver) JDBC {0}
managerBase.complete = Se ha completado la siembra del generador de n\u00FAmeros aleatorios
+managerBase.createSession.ise = createSession\: Demasiadas sesiones activas
managerBase.getting = Obteniendo mensaje de componente de resumen (digest) para algoritmo {0}
managerBase.gotten = Completada la obtenci\u00F3n de mensaje de componente de resumen (digest)
managerBase.random = Excepci\u00F3n inicializando generador de n\u00FAmeros aleatorios de clase {0}
managerBase.seeding = Sembrando clase de generador de n\u00FAmeros aleatorios {0}
serverSession.value.iae = valor nulo
-standardManager.createSession.ise = createSession\: Demasiadas sesiones activas
standardManager.expireException = processsExpire\: Excepci\u00F3n durante la expiraci\u00F3n de sesi\u00F3n
standardManager.loading = Cargando sesiones persistidas desde {0}
standardManager.loading.cnfe = ClassNotFoundException al cargar sesiones persistidas\: {0}
Modified: tomcat/trunk/java/org/apache/catalina/session/LocalStrings_fr.properties
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/session/LocalStrings_fr.properties?rev=980411&r1=980410&r2=980411&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/session/LocalStrings_fr.properties (original)
+++ tomcat/trunk/java/org/apache/catalina/session/LocalStrings_fr.properties Thu Jul 29 11:49:47 2010
@@ -27,12 +27,12 @@ JDBCStore.checkConnectionDBReOpenFail=La
JDBCStore.checkConnectionSQLException=Une exception SQL s''est produite {0}
JDBCStore.checkConnectionClassNotFoundException=La classe du driver JDBC n''a pas \u00e9t\u00e9 trouv\u00e9e {0}
managerBase.complete=L''alimentation du g\u00e9n\u00e9rateur de nombre al\u00e9atoire est termin\u00e9
+managerBase.createSession.ise="createSession": Trop de sessions actives
managerBase.getting=Prise du composant d''algorithme empreinte de message (message digest) pour l''algorithme {0}
managerBase.gotten=Prise du composant d''algorithme empreinte de message (message digest) termin\u00e9e
managerBase.random=Exception durant l''initialisation de la classe du g\u00e9n\u00e9rateur de nombre al\u00e9atoire {0}
managerBase.seeding=Alimentation de la classe du g\u00e9n\u00e9rateur de nombre al\u00e9atoire {0}
serverSession.value.iae=valeur nulle
-standardManager.createSession.ise="createSession": Trop de sessions actives
standardManager.expireException="processsExpire": Exception lors de l''expiration de la session
standardManager.loading=Chargement des sessions qui ont persist\u00e9 depuis {0}
standardManager.loading.cnfe="ClassNotFoundException" lors du chargement de sessions persistantes: {0}
Modified: tomcat/trunk/java/org/apache/catalina/session/LocalStrings_ja.properties
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/session/LocalStrings_ja.properties?rev=980411&r1=980410&r2=980411&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/session/LocalStrings_ja.properties (original)
+++ tomcat/trunk/java/org/apache/catalina/session/LocalStrings_ja.properties Thu Jul 29 11:49:47 2010
@@ -28,12 +28,12 @@ JDBCStore.checkConnectionDBReOpenFail=\u
JDBCStore.checkConnectionSQLException=SQL\u4f8b\u5916\u304c\u767a\u751f\u3057\u307e\u3057\u305f {0}
JDBCStore.checkConnectionClassNotFoundException=JDBC\u30c9\u30e9\u30a4\u30d0\u30af\u30e9\u30b9\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093 {0}
managerBase.complete=\u4e71\u6570\u767a\u751f\u5668\u306e\u30b7\u30fc\u30c9\u306e\u751f\u6210\u304c\u5b8c\u4e86\u3057\u307e\u3057\u305f
+managerBase.createSession.ise=createSession: \u30a2\u30af\u30c6\u30a3\u30d6\u30bb\u30c3\u30b7\u30e7\u30f3\u304c\u591a\u3059\u304e\u307e\u3059
managerBase.getting=\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0 {0} \u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u30c0\u30a4\u30b8\u30a7\u30b9\u30c8\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3092\u53d6\u5f97\u3057\u307e\u3059
managerBase.gotten=\u30e1\u30c3\u30bb\u30fc\u30b8\u30c0\u30a4\u30b8\u30a7\u30b9\u30c8\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u306e\u53d6\u5f97\u3092\u5b8c\u4e86\u3057\u307e\u3057\u305f
managerBase.random=\u30af\u30e9\u30b9 {0} \u306e\u4e71\u6570\u767a\u751f\u5668\u306e\u521d\u671f\u5316\u306e\u4f8b\u5916\u3067\u3059
managerBase.seeding=\u4e71\u6570\u767a\u751f\u5668\u30af\u30e9\u30b9 {0} \u306e\u30b7\u30fc\u30c9\u3092\u751f\u6210\u3057\u3066\u3044\u307e\u3059
serverSession.value.iae=null\u5024\u3067\u3059
-standardManager.createSession.ise=createSession: \u30a2\u30af\u30c6\u30a3\u30d6\u30bb\u30c3\u30b7\u30e7\u30f3\u304c\u591a\u3059\u304e\u307e\u3059
standardManager.expireException=processsExpire: \u30bb\u30c3\u30b7\u30e7\u30f3\u306e\u7d42\u4e86\u51e6\u7406\u4e2d\u306e\u4f8b\u5916\u3067\u3059
standardManager.loading={0} \u304b\u3089\u6301\u7d9a\u3055\u308c\u305f\u30bb\u30c3\u30b7\u30e7\u30f3\u3092\u30ed\u30fc\u30c9\u3057\u3066\u3044\u307e\u3059
standardManager.loading.cnfe=\u6301\u7d9a\u3055\u308c\u305f\u30bb\u30c3\u30b7\u30e7\u30f3\u3092\u30ed\u30fc\u30c9\u4e2d\u306bClassNotFoundException\u304c\u767a\u751f\u3057\u307e\u3057\u305f: {0}
Modified: tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java?rev=980411&r1=980410&r2=980411&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java (original)
+++ tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java Thu Jul 29 11:49:47 2010
@@ -185,6 +185,16 @@ public abstract class ManagerBase extend
private final Object maxActiveUpdateLock = new Object();
+ /**
+ * The maximum number of active Sessions allowed, or -1 for no limit.
+ */
+ protected int maxActiveSessions = -1;
+
+ /**
+ * Number of session creations that failed due to maxActiveSessions.
+ */
+ protected int rejectedSessions = 0;
+
// number of duplicated session ids - anything >0 means we have problems
protected volatile int duplicates=0;
@@ -617,6 +627,15 @@ public abstract class ManagerBase extend
/**
+ * Number of session creations that failed due to maxActiveSessions
+ *
+ * @return The count
+ */
+ public int getRejectedSessions() {
+ return rejectedSessions;
+ }
+
+ /**
* Gets the number of sessions that have expired.
*
* @return Number of sessions that have expired
@@ -778,6 +797,13 @@ public abstract class ManagerBase extend
*/
public Session createSession(String sessionId) {
+ if ((maxActiveSessions >= 0) &&
+ (sessions.size() >= maxActiveSessions)) {
+ rejectedSessions++;
+ throw new IllegalStateException(
+ sm.getString("managerBase.createSession.ise"));
+ }
+
// Recycle or create a Session instance
Session session = createEmptySession();
@@ -1053,6 +1079,34 @@ public abstract class ManagerBase extend
/**
+ * Return the maximum number of active Sessions allowed, or -1 for
+ * no limit.
+ */
+ public int getMaxActiveSessions() {
+
+ return (this.maxActiveSessions);
+
+ }
+
+
+ /**
+ * Set the maximum number of active Sessions allowed, or -1 for
+ * no limit.
+ *
+ * @param max The new maximum number of sessions
+ */
+ public void setMaxActiveSessions(int max) {
+
+ int oldMaxActiveSessions = this.maxActiveSessions;
+ this.maxActiveSessions = max;
+ support.firePropertyChange("maxActiveSessions",
+ new Integer(oldMaxActiveSessions),
+ new Integer(this.maxActiveSessions));
+
+ }
+
+
+ /**
* Gets the longest time (in seconds) that an expired session had been
* alive.
*
Modified: tomcat/trunk/java/org/apache/catalina/session/PersistentManagerBase.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/session/PersistentManagerBase.java?rev=980411&r1=980410&r2=980411&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/session/PersistentManagerBase.java (original)
+++ tomcat/trunk/java/org/apache/catalina/session/PersistentManagerBase.java Thu Jul 29 11:49:47 2010
@@ -139,12 +139,6 @@ public abstract class PersistentManagerB
/**
- * The maximum number of active Sessions allowed, or -1 for no limit.
- */
- protected int maxActiveSessions = -1;
-
-
- /**
* The descriptive name of this Manager implementation (for logging).
*/
private static String name = "PersistentManagerBase";
@@ -186,12 +180,6 @@ public abstract class PersistentManagerB
/**
- * Number of session creations that failed due to maxActiveSessions.
- */
- protected int rejectedSessions = 0;
-
-
- /**
* Processing time during session expiration and passivation.
*/
protected long processingTime = 0;
@@ -372,44 +360,6 @@ public abstract class PersistentManagerB
/**
- * Return the maximum number of active Sessions allowed, or -1 for
- * no limit.
- */
- public int getMaxActiveSessions() {
-
- return (this.maxActiveSessions);
-
- }
-
-
- /**
- * Set the maximum number of active Sessions allowed, or -1 for
- * no limit.
- *
- * @param max The new maximum number of sessions
- */
- public void setMaxActiveSessions(int max) {
-
- int oldMaxActiveSessions = this.maxActiveSessions;
- this.maxActiveSessions = max;
- support.firePropertyChange("maxActiveSessions",
- new Integer(oldMaxActiveSessions),
- new Integer(this.maxActiveSessions));
-
- }
-
-
- /**
- * Number of session creations that failed due to maxActiveSessions.
- *
- * @return The count
- */
- public int getRejectedSessions() {
- return rejectedSessions;
- }
-
-
- /**
* Return the descriptive short name of this Manager implementation.
*/
@Override
Modified: tomcat/trunk/java/org/apache/catalina/session/StandardManager.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/session/StandardManager.java?rev=980411&r1=980410&r2=980411&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/session/StandardManager.java (original)
+++ tomcat/trunk/java/org/apache/catalina/session/StandardManager.java Thu Jul 29 11:49:47 2010
@@ -107,12 +107,6 @@ public class StandardManager extends Man
/**
- * The maximum number of active Sessions allowed, or -1 for no limit.
- */
- protected int maxActiveSessions = -1;
-
-
- /**
* The descriptive name of this Manager implementation (for logging).
*/
protected static String name = "StandardManager";
@@ -129,12 +123,6 @@ public class StandardManager extends Man
protected String pathname = "SESSIONS.ser";
- /**
- * Number of session creations that failed due to maxActiveSessions.
- */
- protected int rejectedSessions = 0;
-
-
// ------------------------------------------------------------- Properties
@@ -179,43 +167,6 @@ public class StandardManager extends Man
/**
- * Return the maximum number of active Sessions allowed, or -1 for
- * no limit.
- */
- public int getMaxActiveSessions() {
-
- return (this.maxActiveSessions);
-
- }
-
-
- /** Number of session creations that failed due to maxActiveSessions
- *
- * @return The count
- */
- public int getRejectedSessions() {
- return rejectedSessions;
- }
-
-
- /**
- * Set the maximum number of active Sessions allowed, or -1 for
- * no limit.
- *
- * @param max The new maximum number of sessions
- */
- public void setMaxActiveSessions(int max) {
-
- int oldMaxActiveSessions = this.maxActiveSessions;
- this.maxActiveSessions = max;
- support.firePropertyChange("maxActiveSessions",
- new Integer(oldMaxActiveSessions),
- new Integer(this.maxActiveSessions));
-
- }
-
-
- /**
* Return the descriptive short name of this Manager implementation.
*/
@Override
@@ -254,31 +205,6 @@ public class StandardManager extends Man
// --------------------------------------------------------- Public Methods
/**
- * Construct and return a new session object, based on the default
- * settings specified by this Manager's properties. The session
- * id will be assigned by this method, and available via the getId()
- * method of the returned session. If a new session cannot be created
- * for any reason, return <code>null</code>.
- *
- * @exception IllegalStateException if a new session cannot be
- * instantiated for any reason
- */
- @Override
- public Session createSession(String sessionId) {
-
- if ((maxActiveSessions >= 0) &&
- (sessions.size() >= maxActiveSessions)) {
- rejectedSessions++;
- throw new IllegalStateException
- (sm.getString("standardManager.createSession.ise"));
- }
-
- return (super.createSession(sessionId));
-
- }
-
-
- /**
* Load any currently active sessions that were previously unloaded
* to the appropriate persistence mechanism, if any. If persistence is not
* supported, this method returns without doing anything.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org