From 335a984ae6f4afac3d3d44195af75fe8d64ef760 Mon Sep 17 00:00:00 2001
From: gbellato <gbellato@localhost>
Date: Fri, 01 Feb 2008 09:40:56 +0000
Subject: [PATCH] The Replication Server thread that is reading changes from the database to propagate them to the Directory Servers was sometimes leaving some Database cursors open.
---
opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerHandler.java | 21 +++++++++------------
1 files changed, 9 insertions(+), 12 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerHandler.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerHandler.java
index d624741..3b85cb1 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerHandler.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerHandler.java
@@ -857,16 +857,6 @@
if (olderUpdateCN == null)
return null;
- ReplicationIterator ri =
- replicationServerDomain.getChangelogIterator(serverId, olderUpdateCN);
- if (ri != null)
- {
- if (ri.next())
- {
- ChangeNumber firstMissingChange = ri.getChange().getChangeNumber();
- return firstMissingChange.getTime();
- }
- }
return olderUpdateCN.getTime();
}
@@ -1081,9 +1071,16 @@
ChangeNumber lastCsn = serverState.getMaxChangeNumber(serverId);
ReplicationIterator iterator =
replicationServerDomain.getChangelogIterator(serverId, lastCsn);
- if ((iterator != null) && (iterator.getChange() != null))
+ if (iterator != null)
{
- iteratorSortedSet.add(iterator);
+ if (iterator.getChange() != null)
+ {
+ iteratorSortedSet.add(iterator);
+ }
+ else
+ {
+ iterator.releaseCursor();
+ }
}
}
while (!iteratorSortedSet.isEmpty() && (lateQueue.size()<100))
--
Gitblit v1.10.0