From 7486ef2bb077feb489a55db86707d96e69d12265 Mon Sep 17 00:00:00 2001
From: ludovicp <ludovicp@localhost>
Date: Fri, 30 Jul 2010 12:44:12 +0000
Subject: [PATCH] Implements a disk space thresholds feature, preventing the server from crashing or exiting of disks full.

---
 opends/src/server/org/opends/server/monitors/TraditionalWorkQueueMonitor.java |   34 ++++++----------------------------
 1 files changed, 6 insertions(+), 28 deletions(-)

diff --git a/opends/src/server/org/opends/server/monitors/TraditionalWorkQueueMonitor.java b/opends/src/server/org/opends/server/monitors/TraditionalWorkQueueMonitor.java
index b1329c3..f271c39 100644
--- a/opends/src/server/org/opends/server/monitors/TraditionalWorkQueueMonitor.java
+++ b/opends/src/server/org/opends/server/monitors/TraditionalWorkQueueMonitor.java
@@ -22,13 +22,14 @@
  * CDDL HEADER END
  *
  *
- *      Copyright 2006-2008 Sun Microsystems, Inc.
+ *      Copyright 2006-2010 Sun Microsystems, Inc.
  */
 package org.opends.server.monitors;
 
 
 
 import java.util.ArrayList;
+import java.util.concurrent.TimeUnit;
 
 import org.opends.server.admin.std.server.MonitorProviderCfg;
 import org.opends.server.api.AttributeSyntax;
@@ -50,6 +51,7 @@
  */
 public class TraditionalWorkQueueMonitor
        extends MonitorProvider<MonitorProviderCfg>
+       implements Runnable
 {
   /**
    * The name to use for the monitor attribute that provides the current request
@@ -115,9 +117,6 @@
    */
   public TraditionalWorkQueueMonitor(TraditionalWorkQueue workQueue)
   {
-    super("Work Queue Monitor Provider");
-
-
     this.workQueue = workQueue;
   }
 
@@ -132,6 +131,7 @@
     maxBacklog   = 0;
     totalBacklog = 0;
     numPolls     = 0;
+    scheduleUpdate(this, 0, 10, TimeUnit.SECONDS);
   }
 
 
@@ -148,32 +148,10 @@
   }
 
 
-
   /**
-   * Retrieves the length of time in milliseconds that should elapse between
-   * calls to the <CODE>updateMonitorData()</CODE> method.  A negative or zero
-   * return value indicates that the <CODE>updateMonitorData()</CODE> method
-   * should not be periodically invoked.
-   *
-   * @return  The length of time in milliseconds that should elapse between
-   *          calls to the <CODE>updateMonitorData()</CODE> method.
+   * {@inheritDoc}
    */
-  public long getUpdateInterval()
-  {
-    // We will poll the work queue every 10 seconds.
-    return 10000;
-  }
-
-
-
-  /**
-   * Performs any processing periodic processing that may be desired to update
-   * the information associated with this monitor.  Note that best-effort
-   * attempts will be made to ensure that calls to this method come
-   * <CODE>getUpdateInterval()</CODE> milliseconds apart, but no guarantees will
-   * be made.
-   */
-  public void updateMonitorData()
+  public void run()
   {
     int backlog = workQueue.size();
     totalBacklog += backlog;

--
Gitblit v1.10.0