2011/1/20 <ma...@apache.org>: > 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: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org