luehe 2004/09/07 13:57:03 Modified: catalina/src/share/org/apache/catalina Manager.java catalina/src/share/org/apache/catalina/session ManagerBase.java StandardSession.java StandardManager.java mbeans-descriptors.xml Log: Added average time an expired session had been alive to set of monitorable session manager attributes Revision Changes Path 1.14 +21 -1 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/Manager.java Index: Manager.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/Manager.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- Manager.java 3 Sep 2004 00:53:02 -0000 1.13 +++ Manager.java 7 Sep 2004 20:57:02 -0000 1.14 @@ -219,6 +219,26 @@ public void setSessionMaxAliveTime(int sessionMaxAliveTime); + /** + * Gets the average time (in seconds) that expired sessions had been + * alive. + * + * @return Average time (in seconds) that expired sessions had been + * alive. + */ + public int getSessionAverageAliveTime(); + + + /** + * Sets the average time (in seconds) that expired sessions had been + * alive. + * + * @param sessionAverageAliveTime Average time (in seconds) that expired + * sessions had been alive. + */ + public void setSessionAverageAliveTime(int sessionAverageAliveTime); + + // --------------------------------------------------------- Public Methods 1.34 +31 -1 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/ManagerBase.java Index: ManagerBase.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/ManagerBase.java,v retrieving revision 1.33 retrieving revision 1.34 diff -u -r1.33 -r1.34 --- ManagerBase.java 3 Sep 2004 00:53:02 -0000 1.33 +++ ManagerBase.java 7 Sep 2004 20:57:02 -0000 1.34 @@ -154,6 +154,12 @@ /** + * Average time (in seconds) that expired sessions had been alive. + */ + protected int sessionAverageAliveTime; + + + /** * The set of currently active Sessions for this Manager, keyed by * session identifier. */ @@ -907,6 +913,30 @@ */ public void setSessionMaxAliveTime(int sessionMaxAliveTime) { this.sessionMaxAliveTime = sessionMaxAliveTime; + } + + + /** + * Gets the average time (in seconds) that expired sessions had been + * alive. + * + * @return Average time (in seconds) that expired sessions had been + * alive. + */ + public int getSessionAverageAliveTime() { + return sessionAverageAliveTime; + } + + + /** + * Sets the average time (in seconds) that expired sessions had been + * alive. + * + * @param sessionAverageAliveTime Average time (in seconds) that expired + * sessions had been alive. + */ + public void setSessionAverageAliveTime(int sessionAverageAliveTime) { + this.sessionAverageAliveTime = sessionAverageAliveTime; } 1.48 +12 -5 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/StandardSession.java Index: StandardSession.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/StandardSession.java,v retrieving revision 1.47 retrieving revision 1.48 diff -u -r1.47 -r1.48 --- StandardSession.java 3 Sep 2004 00:53:02 -0000 1.47 +++ StandardSession.java 7 Sep 2004 20:57:02 -0000 1.48 @@ -685,14 +685,21 @@ /* * Compute how long this session has been alive, and update - * manager's sessionMaxAliveTime property if necessary + * session manager's related properties accordingly */ long timeNow = System.currentTimeMillis(); int timeAlive = (int) ((timeNow - creationTime)/1000); - if (timeAlive > manager.getSessionMaxAliveTime()) { - manager.setSessionMaxAliveTime(timeAlive); + synchronized (manager) { + if (timeAlive > manager.getSessionMaxAliveTime()) { + manager.setSessionMaxAliveTime(timeAlive); + } + int numExpired = manager.getExpiredSessions(); + numExpired++; + manager.setExpiredSessions(numExpired); + int average = manager.getSessionAverageAliveTime(); + average = ((average * (numExpired-1)) + timeAlive)/numExpired; + manager.setSessionAverageAliveTime(average); } - // Remove this session from our manager's active sessions manager.remove(this); 1.23 +2 -5 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/StandardManager.java Index: StandardManager.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/StandardManager.java,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- StandardManager.java 26 May 2004 16:14:10 -0000 1.22 +++ StandardManager.java 7 Sep 2004 20:57:02 -0000 1.23 @@ -778,10 +778,7 @@ Session sessions[] = findSessions(); for (int i = 0; i < sessions.length; i++) { - StandardSession session = (StandardSession) sessions[i]; - if (!session.isValid()) { - expiredSessions++; - } + sessions[i].isValid(); } long timeEnd = System.currentTimeMillis(); processingTime += ( timeEnd - timeNow ); 1.8 +4 -0 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/mbeans-descriptors.xml Index: mbeans-descriptors.xml =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/mbeans-descriptors.xml,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- mbeans-descriptors.xml 3 Sep 2004 00:53:02 -0000 1.7 +++ mbeans-descriptors.xml 7 Sep 2004 20:57:02 -0000 1.8 @@ -75,6 +75,10 @@ description="Longest time an expired session had been alive" type="int" /> + <attribute name="sessionAverageAliveTime" + description="Average time an expired session had been alive" + type="int" /> + <attribute name="rejectedSessions" description="Number of sessions we rejected due to maxActive beeing reached" type="int" />
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]