From 111c22a17e3ab4bdca9052891a810f5ab7cea6b6 Mon Sep 17 00:00:00 2001
From: pgamba <pgamba@localhost>
Date: Wed, 19 Mar 2008 10:33:45 +0000
Subject: [PATCH] The following changes fix a bug in the clearing of the replication server db that make the clearing sometimes fail silently . Particularly Berkeley DB requires to close the db and any reference to the db handle released before to truncate the db. That requires to lock the db when it is closed/cleared with a limited impact on the performances in the other cases. A RW lock is added on the db : every thread using the db takes/releases the READ lock before /after usage. That still allow these threads to run concurrently and prevent a big impact on performances. Every thread closing the db (shutdown or clear) takes/releases the WRITE lock before/after the closure.
---
opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java | 8 +++++---
1 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java b/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
index 5215f7c..5e70f1f 100644
--- a/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
+++ b/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
@@ -1196,9 +1196,11 @@
catch (Exception e)
{
// TODO: i18n
- logError(Message.raw(
- "Exception caught while clearing dbHandler:" +
- e.getLocalizedMessage()));
+ MessageBuilder mb = new MessageBuilder();
+ mb.append(ERR_ERROR_CLEARING_DB.get(dbHandler.toString(),
+ e.getMessage() + " " +
+ stackTraceToSingleLineString(e)));
+ logError(mb.toMessage());
}
}
sourceDbHandlers.clear();
--
Gitblit v1.10.0