remm        2003/08/20 01:24:23

  Modified:    catalina/src/share/org/apache/catalina/core
                        StandardContext.java
  Log:
  - Manager checks should be a lot less frequent than the eventual reloader
    check, or the other container's checks. The current settings would have caused
    too much strain on the store.
  - Add a variable to configure the check interval.
  - Call the persistent manager checks.
  
  Revision  Changes    Path
  1.85      +54 -3     
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardContext.java
  
  Index: StandardContext.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardContext.java,v
  retrieving revision 1.84
  retrieving revision 1.85
  diff -u -r1.84 -r1.85
  --- StandardContext.java      19 Aug 2003 17:11:49 -0000      1.84
  +++ StandardContext.java      20 Aug 2003 08:24:22 -0000      1.85
  @@ -541,6 +541,21 @@
   
   
       /**
  +     * Frequency of the session expiration, and related manager operations.
  +     * Manager operations will be done once for the specified amount of
  +     * backgrondProcess calls (ie, the lower the amount, the most often the
  +     * checks will occur).
  +     */
  +    private int managerChecksFrequency = 6;
  +
  +
  +    /**
  +     * Iteration count for background processing.
  +     */
  +    private int count = 0;
  +
  +
  +    /**
        * Caching allowed flag.
        */
       private boolean cachingAllowed = true;
  @@ -688,7 +703,8 @@
                                      new Boolean(this.available));
   
       }
  -        
  +
  +
       /**
        * Return the Locale to character set mapper for this Context.
        */
  @@ -975,6 +991,37 @@
           this.lazy = lazy;
       }
   
  +
  +    /**
  +     * Return the frequency of manager checks.
  +     */
  +    public int getManagerChecksFrequency() {
  +
  +        return (this.managerChecksFrequency);
  +
  +    }
  +
  +
  +    /**
  +     * Set the manager checks frequency.
  +     *
  +     * @param managerChecksFrequency the new manager checks frequency
  +     */
  +    public void setManagerChecksFrequency(int managerChecksFrequency) {
  +
  +        if (managerChecksFrequency <= 0) {
  +            return;
  +        }
  +
  +        int oldManagerChecksFrequency = this.managerChecksFrequency;
  +        this.managerChecksFrequency = managerChecksFrequency;
  +        support.firePropertyChange("managerChecksFrequency",
  +                                   new Integer(oldManagerChecksFrequency),
  +                                   new Integer(this.managerChecksFrequency));
  +
  +    }
  +
  +
       /**
        * Return descriptive information about this Container implementation and
        * the corresponding version number, in the format
  @@ -4302,12 +4349,16 @@
           if (!started)
               return;
   
  -        if (getManager() != null) {
  +        count = (count + 1) % managerChecksFrequency;
  +
  +        if ((getManager() != null) && (count == 0)) {
               if (getManager() instanceof StandardManager) {
                   ((StandardManager) getManager()).processExpires();
               } else if (getManager() instanceof PersistentManagerBase) {
                   PersistentManagerBase pManager = 
                       (PersistentManagerBase) getManager();
  +                pManager.processExpires();
  +                pManager.processPersistenceChecks();
                   if ((pManager.getStore() != null) 
                       && (pManager.getStore() instanceof StoreBase)) {
                       ((StoreBase) pManager.getStore()).processExpires();
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to