Author: rjung
Date: Mon Jan 31 20:45:31 2011
New Revision: 1065767

URL: http://svn.apache.org/viewvc?rev=1065767&view=rev
Log:
Add session creation / expiration rate statistics to the session managers.

Backport of r1036595 from trunk, resp. r1061433 from TC6.

Modified:
    tomcat/sandbox/tomcat-oacc/trunk/docs/changelog.xml
    
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/DeltaManager.java

Modified: tomcat/sandbox/tomcat-oacc/trunk/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-oacc/trunk/docs/changelog.xml?rev=1065767&r1=1065766&r2=1065767&view=diff
==============================================================================
--- tomcat/sandbox/tomcat-oacc/trunk/docs/changelog.xml (original)
+++ tomcat/sandbox/tomcat-oacc/trunk/docs/changelog.xml Mon Jan 31 20:45:31 2011
@@ -31,6 +31,10 @@
 <body>
 <section name="Tomcat OACC 0.1 (rjung)">
   <subsection name="Cluster">
+      <add>
+        Provide session creation and destruction rate metrics in the session
+        managers. (rjung)
+      </add>
       <fix>
         <bug>50600</bug>: Prevent a 
<code>ConcurrentModificationException</code>
         when removing a WAR file via the FarmWarDeployer. (rjung)

Modified: 
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/DeltaManager.java
URL: 
http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/DeltaManager.java?rev=1065767&r1=1065766&r2=1065767&view=diff
==============================================================================
--- 
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/DeltaManager.java
 (original)
+++ 
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/DeltaManager.java
 Mon Jan 31 20:45:31 2011
@@ -25,6 +25,7 @@ import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
+import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.Iterator;
@@ -43,6 +44,7 @@ import org.apache.catalina.cluster.Catal
 import org.apache.catalina.cluster.ClusterMessage;
 import org.apache.catalina.cluster.Member;
 import org.apache.catalina.cluster.tcp.ReplicationValve;
+import org.apache.catalina.session.ManagerBase;
 import org.apache.catalina.util.CustomObjectInputStream;
 import org.apache.catalina.util.LifecycleSupport;
 import org.apache.catalina.util.StringManager;
@@ -140,6 +142,7 @@ public class DeltaManager extends Cluste
     private boolean receiverQueue = false ;
     private boolean stateTimestampDrop = true ;
     private long stateTransferCreateSendTime; 
+    private boolean hasSessionCreateStatistics = false;
     
     // ------------------------------------------------------------------ 
stats attributes
     
@@ -168,6 +171,17 @@ public class DeltaManager extends Cluste
     // ------------------------------------------------------------- 
Constructor
     public DeltaManager() {
         super();
+        /* Check for TC 6.0.27+ API */
+        Class<?> clazz = super.getClass();
+        try {
+            Method method = clazz.getDeclaredMethod("getSessionCreateRate",
+                    new Class[] {});
+            hasSessionCreateStatistics = true;
+        } catch (NoSuchMethodException e) {
+             // IGNORE
+        } catch (SecurityException e) {
+             // IGNORE
+        }
     }
 
     // ------------------------------------------------------------- Properties
@@ -1377,6 +1391,18 @@ public class DeltaManager extends Cluste
     public synchronized void resetStatistics() {
         processingTime = 0 ;
         expiredSessions = 0 ;
+        if (hasSessionCreateStatistics) {
+            sessionCreationTiming.clear();
+            while (sessionCreationTiming.size() <
+                    ManagerBase.TIMING_STATS_CACHE_SIZE) {
+                sessionCreationTiming.add(null);
+            }
+            sessionExpirationTiming.clear();
+            while (sessionExpirationTiming.size() <
+                    ManagerBase.TIMING_STATS_CACHE_SIZE) {
+                sessionExpirationTiming.add(null);
+            }
+        }
         rejectedSessions = 0 ;
         sessionReplaceCounter = 0 ;
         counterNoStateTransfered = 0 ;



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to