From 8f75a9918071b92a1320d08b6d75e69c1d8bd217 Mon Sep 17 00:00:00 2001
From: gbellato <gbellato@localhost>
Date: Fri, 20 Feb 2009 08:44:40 +0000
Subject: [PATCH] Fix for 3804 : improve replication monitoring
---
opends/src/server/org/opends/server/replication/service/ReplicationBroker.java | 17 +++++++++++++----
1 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/opends/src/server/org/opends/server/replication/service/ReplicationBroker.java b/opends/src/server/org/opends/server/replication/service/ReplicationBroker.java
index f79d4c3..78a036e 100644
--- a/opends/src/server/org/opends/server/replication/service/ReplicationBroker.java
+++ b/opends/src/server/org/opends/server/replication/service/ReplicationBroker.java
@@ -137,6 +137,7 @@
private List<RSInfo> rsList = new ArrayList<RSInfo>();
private long generationID;
+ private int updateDoneCount = 0;
/**
* Creates a new ReplicationServer Broker for a particular ReplicationDomain.
@@ -1363,6 +1364,13 @@
try
{
ReplicationMsg msg = session.receive();
+ if (msg instanceof UpdateMsg)
+ {
+ synchronized (this)
+ {
+ rcvWindow--;
+ }
+ }
if (msg instanceof WindowMsg)
{
WindowMsg windowMsg = (WindowMsg) msg;
@@ -1410,11 +1418,12 @@
{
try
{
- rcvWindow--;
- if ((rcvWindow < halfRcvWindow) && (session != null))
+ updateDoneCount ++;
+ if ((updateDoneCount >= halfRcvWindow) && (session != null))
{
- session.publish(new WindowMsg(halfRcvWindow));
- rcvWindow += halfRcvWindow;
+ session.publish(new WindowMsg(updateDoneCount));
+ rcvWindow += updateDoneCount;
+ updateDoneCount = 0;
}
} catch (IOException e)
{
--
Gitblit v1.10.0