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