From 7a34cefa2a5bbdf339f1a50b856e3d7441006b8d Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Wed, 08 Jun 2011 14:33:10 +0000
Subject: [PATCH] Fix OPENDJ-184: Transient errors when accessing cn=changelog DraftCN DB result in complete shutdown of the replication service

---
 opends/src/server/org/opends/server/replication/server/ReplicationServer.java |   23 ++++++++++++++++++++++-
 1 files changed, 22 insertions(+), 1 deletions(-)

diff --git a/opends/src/server/org/opends/server/replication/server/ReplicationServer.java b/opends/src/server/org/opends/server/replication/server/ReplicationServer.java
index a21b51b..5c96d23 100644
--- a/opends/src/server/org/opends/server/replication/server/ReplicationServer.java
+++ b/opends/src/server/org/opends/server/replication/server/ReplicationServer.java
@@ -32,6 +32,7 @@
 import static org.opends.server.loggers.debug.DebugLogger.getTracer;
 import static org.opends.server.util.ServerConstants.EOL;
 import static org.opends.server.util.StaticUtils.getFileForPath;
+import static org.opends.server.util.StaticUtils.stackTraceToSingleLineString;
 
 import java.io.File;
 import java.io.IOException;
@@ -992,7 +993,7 @@
    * @return  The time after which changes must be deleted from the
    *          persistent storage (in milliseconds).
    */
-  long getTrimage()
+  long getTrimAge()
   {
     return purgeDelay * 1000;
   }
@@ -2002,4 +2003,24 @@
     }
   }
 
+
+
+  /**
+   * Shuts down replication when an unexpected database exception occurs. Note
+   * that we do not expect lock timeouts or txn timeouts because the replication
+   * databases are deadlock free, thus all operations should complete
+   * eventually.
+   *
+   * @param e
+   *          The unexpected database exception.
+   */
+  void handleUnexpectedDatabaseException(DatabaseException e)
+  {
+    MessageBuilder mb = new MessageBuilder();
+    mb.append(ERR_CHANGELOG_SHUTDOWN_DATABASE_ERROR.get());
+    mb.append(stackTraceToSingleLineString(e));
+    logError(mb.toMessage());
+    shutdown();
+  }
+
 }

--
Gitblit v1.10.0