You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by lu...@apache.org on 2004/09/07 22:57:03 UTC
cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session ManagerBase.java StandardSession.java StandardManager.java mbeans-descriptors.xml
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: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org