2011/1/20 <[email protected]>:
> Author: markt
> Date: Thu Jan 20 18:10:16 2011
> New Revision: 1061433
>
> URL: http://svn.apache.org/viewvc?rev=1061433&view=rev
> Log:
> Add session creation / expiration rate statistics to the session managers
> Adds ~10% to the session creation/destruction process when that is all Tomcat
> is doing. Should be less overhead with less contention.
>
> Modified:
> tomcat/tc6.0.x/trunk/STATUS.txt
> tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/DeltaManager.java
> tomcat/tc6.0.x/trunk/java/org/apache/catalina/session/ManagerBase.java
> tomcat/tc6.0.x/trunk/java/org/apache/catalina/session/StandardSession.java
>
> tomcat/tc6.0.x/trunk/java/org/apache/catalina/session/mbeans-descriptors.xml
> tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml
>
> Modified: tomcat/tc6.0.x/trunk/STATUS.txt
> URL:
> http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/STATUS.txt?rev=1061433&r1=1061432&r2=1061433&view=diff
> ==============================================================================
> --- tomcat/tc6.0.x/trunk/STATUS.txt (original)
> +++ tomcat/tc6.0.x/trunk/STATUS.txt Thu Jan 20 18:10:16 2011
> @@ -89,16 +89,6 @@ PATCHES PROPOSED TO BACKPORT:
> We can stall this item until we get some feedback about 7.0.5.
> -1:
>
> - rjung: getSessionExpireRate() and getSessionCreateRate() could share a
> common
> - implementation (same method body except for the input list). The
> member
> - "duration" of SessionTiming does not seem to get used.
> -
> ---
> tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/DeltaManager.java
> (original)
> +++
> tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/DeltaManager.java
> Thu Jan 20 18:10:16 2011
> @@ -40,6 +40,7 @@ import org.apache.catalina.core.Standard
> import org.apache.catalina.ha.CatalinaCluster;
> import org.apache.catalina.ha.ClusterMessage;
> import org.apache.catalina.ha.tcp.ReplicationValve;
> +import org.apache.catalina.session.ManagerBase;
> import org.apache.catalina.tribes.Member;
> import org.apache.catalina.tribes.io.ReplicationStream;
> import org.apache.catalina.util.LifecycleSupport;
> @@ -1286,6 +1287,16 @@ public class DeltaManager extends Cluste
> public synchronized void resetStatistics() {
> processingTime = 0 ;
> expiredSessions = 0 ;
> + 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);
> + }
This resetStatistics() is a synchronized method, i.e. synchronizes on
this, but in all other places these linked lists use themselves as the
lock:
synchronized (sessionCreationTiming) {
resetStatistics() is called from JMX only, so it does not concern
normal operation.
Best regards,
Konstantin Kolinko
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]