From 272f803e2dbe9da48152ea61814e43e387146f8b Mon Sep 17 00:00:00 2001
From: dugan <dugan@localhost>
Date: Mon, 17 Mar 2008 15:41:50 +0000
Subject: [PATCH] These changes remove the temporary file limitation from import-ldif. Several other changes were made also:

---
 opends/src/server/org/opends/server/backends/jeb/BackendImpl.java |   70 ++++++++++++++--------------------
 1 files changed, 29 insertions(+), 41 deletions(-)

diff --git a/opends/src/server/org/opends/server/backends/jeb/BackendImpl.java b/opends/src/server/org/opends/server/backends/jeb/BackendImpl.java
index 56d799a..e54ecd9 100644
--- a/opends/src/server/org/opends/server/backends/jeb/BackendImpl.java
+++ b/opends/src/server/org/opends/server/backends/jeb/BackendImpl.java
@@ -74,6 +74,7 @@
 import org.opends.server.admin.server.ConfigurationChangeListener;
 import org.opends.server.protocols.asn1.ASN1OctetString;
 import org.opends.server.types.DN;
+import org.opends.server.backends.jeb.importLDIF.Importer;
 
 /**
  * This is an implementation of a Directory Server Backend which stores entries
@@ -1166,50 +1167,31 @@
     try
     {
       EnvironmentConfig envConfig =
-          ConfigurableEnvironment.parseConfigEntry(cfg);
-      /**
-       envConfig.setConfigParam("je.env.runCleaner", "false");
-       envConfig.setConfigParam("je.log.numBuffers", "2");
-       envConfig.setConfigParam("je.log.bufferSize", "15000000");
-       envConfig.setConfigParam("je.log.totalBufferBytes", "30000000");
-       envConfig.setConfigParam("je.log.fileMax", "100000000");
-       **/
-
-      if (importConfig.appendToExistingData())
-      {
-        envConfig.setReadOnly(false);
-        envConfig.setAllowCreate(true);
-        envConfig.setTransactional(true);
-        envConfig.setTxnNoSync(true);
-        envConfig.setConfigParam("je.env.isLocking", "true");
-        envConfig.setConfigParam("je.env.runCheckpointer", "false");
-      }
-      else if(importConfig.clearBackend() || cfg.getBaseDN().size() <= 1)
-      {
-        // We have the writer lock on the environment, now delete the
-        // environment and re-open it. Only do this when we are
-        // importing to all the base DNs in the backend or if the backend only
-        // have one base DN.
-        File parentDirectory = getFileForPath(cfg.getDBDirectory());
-        File backendDirectory = new File(parentDirectory, cfg.getBackendId());
-        // If the backend does not exist the import will create it.
-        if (backendDirectory.exists())
-        {
-          EnvManager.removeFiles(backendDirectory.getPath());
+              ConfigurableEnvironment.parseConfigEntry(cfg);
+      if(!importConfig.appendToExistingData()) {
+        if(importConfig.clearBackend() || cfg.getBaseDN().size() <= 1) {
+          // We have the writer lock on the environment, now delete the
+          // environment and re-open it. Only do this when we are
+          // importing to all the base DNs in the backend or if the backend only
+          // have one base DN.
+          File parentDirectory = getFileForPath(cfg.getDBDirectory());
+          File backendDirectory = new File(parentDirectory, cfg.getBackendId());
+          // If the backend does not exist the import will create it.
+          if (backendDirectory.exists()) {
+            EnvManager.removeFiles(backendDirectory.getPath());
+          }
         }
-
-        envConfig.setReadOnly(false);
-        envConfig.setAllowCreate(true);
-        envConfig.setTransactional(false);
-        envConfig.setTxnNoSync(false);
-        envConfig.setConfigParam("je.env.isLocking", "false");
-        envConfig.setConfigParam("je.env.runCheckpointer", "false");
       }
-
+      envConfig.setReadOnly(false);
+      envConfig.setAllowCreate(true);
+      envConfig.setTransactional(false);
+      envConfig.setTxnNoSync(false);
+      envConfig.setConfigParam("je.env.isLocking", "false");
+      envConfig.setConfigParam("je.env.runCheckpointer", "false");
+      Importer importer = new Importer(importConfig);
+      envConfig.setConfigParam("je.maxMemory", importer.getDBCacheSize());
       rootContainer = initializeRootContainer(envConfig);
-
-      ImportJob importJob = new ImportJob(importConfig);
-      return importJob.importLDIF(rootContainer);
+      return importer.processImport(rootContainer);
     }
     catch (IOException ioe)
     {
@@ -1263,7 +1245,13 @@
       {
         if (rootContainer != null)
         {
+          long startTime = System.currentTimeMillis();
           rootContainer.close();
+          long finishTime = System.currentTimeMillis();
+          long closeTime = (finishTime - startTime) / 1000;
+          Message msg =
+                       INFO_JEB_IMPORT_LDIF_ROOTCONTAINER_CLOSE.get(closeTime);
+          logError(msg);
           rootContainer = null;
         }
 

--
Gitblit v1.10.0