From e23bb7e50248fe49ff8627eb6e54a1f1fe2dc4b7 Mon Sep 17 00:00:00 2001
From: mrossign <mrossign@localhost>
Date: Thu, 02 Apr 2009 09:44:38 +0000
Subject: [PATCH] Fix for 2963: dsreplication status large value for missing changes dsreplication status sometimes returns very unexpected high values. This is due to the fact that the replication server monitoring algorithm sometimes does not compute well the max server state available in the whole topology and thus is sometimes calling ChangeNumber.diffSeqNum(CN1,CN2) with a CN1 lower than CN2.
---
opendj-sdk/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
index a9ade5f..5729a31 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
@@ -2306,6 +2306,7 @@
// - from our own local db state
// - whatever they are directly or undirectly connected
ServerState dbServerState = getDbServerState();
+ wrkMonitorData.setRSState(replicationServer.getServerId(), dbServerState);
Iterator<Short> it = dbServerState.iterator();
while (it.hasNext())
{
@@ -2471,8 +2472,9 @@
while (lsidIterator.hasNext())
{
short sid = lsidIterator.next();
- wrkMonitorData.setLDAPServerState(sid,
- msg.getLDAPServerState(sid).duplicate());
+ ServerState dsServerState = msg.getLDAPServerState(sid);
+ wrkMonitorData.setMaxCNs(dsServerState);
+ wrkMonitorData.setLDAPServerState(sid, dsServerState);
wrkMonitorData.setFirstMissingDate(sid,
msg.getLDAPApproxFirstMissingDate(sid));
}
--
Gitblit v1.10.0