From 793b2352d578039c6070d62fa9f83b4169364694 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Thu, 17 Oct 2013 14:27:16 +0000
Subject: [PATCH] OPENDJ-1116 Introduce abstraction for the changelog DB
---
opends/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java | 11 +++++------
opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnv.java | 28 ++++++++++++++++------------
opends/src/messages/messages/replication.properties | 2 ++
3 files changed, 23 insertions(+), 18 deletions(-)
diff --git a/opends/src/messages/messages/replication.properties b/opends/src/messages/messages/replication.properties
index 854cd46..4bbda0c 100644
--- a/opends/src/messages/messages/replication.properties
+++ b/opends/src/messages/messages/replication.properties
@@ -496,3 +496,5 @@
when accessing the change number database: impossible to read the newest record \
after having successfully read the oldest. Database might have been cleaned or \
closed between successive reads
+SEVERE_WARN_CANNOT_OPEN_DATABASE_BECAUSE_SHUTDOWN_WAS_REQUESTED_218=Cannot \
+ open database %s because shutdown was requested from replication server RS(%d)
\ No newline at end of file
diff --git a/opends/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java b/opends/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java
index 96e81db..c4c614f 100644
--- a/opends/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java
+++ b/opends/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java
@@ -498,11 +498,11 @@
@Override
public void shutdownDomain(DN baseDN)
{
- shutdownReplicaDBs(getDomainMap(baseDN));
- domainToReplicaDBs.remove(baseDN);
+ shutdownReplicaDBs(baseDN, getDomainMap(baseDN));
}
- private void shutdownReplicaDBs(Map<Integer, JEReplicaDB> domainMap)
+ private void shutdownReplicaDBs(DN baseDN,
+ Map<Integer, JEReplicaDB> domainMap)
{
synchronized (domainMap)
{
@@ -510,7 +510,7 @@
{
replicaDB.shutdown();
}
- domainMap.clear();
+ domainToReplicaDBs.remove(baseDN);
}
}
@@ -562,8 +562,7 @@
firstException = e;
}
}
- shutdownReplicaDBs(domainMap);
- domainToReplicaDBs.remove(baseDN);
+ shutdownReplicaDBs(baseDN, domainMap);
}
// 2- clear the ChangeNumber index DB
diff --git a/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnv.java b/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnv.java
index 9c0a9be..48c299e 100644
--- a/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnv.java
+++ b/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnv.java
@@ -171,8 +171,9 @@
{
if (isShuttingDown.get())
{
- // TODO JNR i18n
- throw new ChangelogException(Message.raw("DB is closing"));
+ throw new ChangelogException(
+ WARN_CANNOT_OPEN_DATABASE_BECAUSE_SHUTDOWN_WAS_REQUESTED.get(
+ databaseName, replicationServer.getServerId()));
}
final DatabaseConfig dbConfig = new DatabaseConfig();
dbConfig.setAllowCreate(true);
@@ -182,8 +183,9 @@
if (isShuttingDown.get())
{
closeDB(db);
- // TODO JNR i18n
- throw new ChangelogException(Message.raw("DB is closing"));
+ throw new ChangelogException(
+ WARN_CANNOT_OPEN_DATABASE_BECAUSE_SHUTDOWN_WAS_REQUESTED.get(
+ databaseName, replicationServer.getServerId()));
}
allDbs.add(db);
return db;
@@ -437,7 +439,7 @@
}
catch (DatabaseException e)
{
- logError(newErrorMessage(e));
+ logError(newErrorMessage(null, e));
}
}
@@ -450,19 +452,21 @@
}
catch (DatabaseException e)
{
- logError(newErrorMessage(e));
+ logError(newErrorMessage(db.getDatabaseName(), e));
}
}
- private Message newErrorMessage(DatabaseException e)
+ private Message newErrorMessage(String dbName, DatabaseException e)
{
- if (!isShuttingDown.get())
+ final MessageBuilder mb = new MessageBuilder();
+ if (dbName != null)
{
- return NOTE_EXCEPTION_CLOSING_DATABASE
- .get(stackTraceToSingleLineString(e));
+ mb.append(NOTE_EXCEPTION_CLOSING_DATABASE.get(dbName));
}
- MessageBuilder mb = new MessageBuilder();
- mb.append(ERR_ERROR_CLOSING_CHANGELOG_ENV.get());
+ else
+ {
+ mb.append(ERR_ERROR_CLOSING_CHANGELOG_ENV.get());
+ }
mb.append(" ");
mb.append(stackTraceToSingleLineString(e));
return mb.toMessage();
--
Gitblit v1.10.0