From 860b0be3a8040fffbc0e6fa89b066efb8f4234fb Mon Sep 17 00:00:00 2001
From: gbellato <gbellato@localhost>
Date: Wed, 28 Feb 2007 13:36:23 +0000
Subject: [PATCH] Fix for issue 517 : Configurable purge delay

---
 opendj-sdk/opends/src/server/org/opends/server/synchronization/changelog/DbHandler.java |   21 ++++++++++++++++++---
 1 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/synchronization/changelog/DbHandler.java b/opendj-sdk/opends/src/server/org/opends/server/synchronization/changelog/DbHandler.java
index 90132ac..ebd5d63 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/synchronization/changelog/DbHandler.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/synchronization/changelog/DbHandler.java
@@ -83,13 +83,17 @@
   private boolean done = false;
   private DirectoryThread thread = null;
   private Object flushLock = new Object();
+  /**
+   * the trim age in milliseconds.
+   */
+  private long trimage;
 
   /**
    * Creates a New dbHandler associated to a given LDAP server.
    *
    * @param id Identifier of the DB.
-   * @param baseDn of the DB.
-   * @param changelog the Changelog that creates this dbHandler.
+   * @param baseDn the baseDn for which this DB was created.
+   * @param changelog The Changelog that creates this dbHandler.
    * @param dbenv the Database Env to use to create the Changelog DB.
    * @throws DatabaseException If a database problem happened
    */
@@ -99,6 +103,7 @@
   {
     this.serverId = id;
     this.baseDn = baseDn;
+    this.trimage = changelog.getTrimage();
     db = new ChangelogDB(id, baseDn, changelog, dbenv);
     firstChange = db.readFirstChange();
     lastChange = db.readLastChange();
@@ -337,9 +342,10 @@
    */
   private void trim() throws DatabaseException, Exception
   {
+    if (trimage == 0)
+      return;
     int size = 0;
     boolean finished = false;
-    int trimage = 24*60*60*1000; // TODO : make trim-age a config parameter
     ChangeNumber trimDate = new ChangeNumber(TimeThread.getTime() - trimage,
         (short) 0, (short)0);
 
@@ -493,4 +499,13 @@
     return(baseDn + " " + serverId + " " + firstChange + " " + lastChange);
   }
 
+  /**
+   * Set the Purge delay for this db Handler.
+   * @param delay The purge delay in Milliseconds.
+   */
+  public void setPurgeDelay(long delay)
+  {
+    trimage = delay;
+  }
+
 }

--
Gitblit v1.10.0