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]

Reply via email to