From dfee862f2637845769ee7c9ed594985920c4c6aa Mon Sep 17 00:00:00 2001
From: ludovicp <ludovicp@localhost>
Date: Mon, 31 May 2010 13:06:56 +0000
Subject: [PATCH] Add support for displaying replication CSNs in the Access Logs. The default is disabled, but the log of replication CSNs can be activated by setting the log-changenumber property in the Replication domain configuration.

---
 opends/src/server/org/opends/server/replication/plugin/LDAPReplicationDomain.java |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/opends/src/server/org/opends/server/replication/plugin/LDAPReplicationDomain.java b/opends/src/server/org/opends/server/replication/plugin/LDAPReplicationDomain.java
index 9af9669..04094a0 100644
--- a/opends/src/server/org/opends/server/replication/plugin/LDAPReplicationDomain.java
+++ b/opends/src/server/org/opends/server/replication/plugin/LDAPReplicationDomain.java
@@ -405,6 +405,9 @@
   // The operation should become a no-op
   private static final int FRACTIONAL_BECOME_NO_OP = 3;
 
+  // This configuration boolean indicates if this ReplicationDomain should log
+  // ChangeNumbers.
+  private boolean logChangeNumber = false;
 
   /**
    * The thread that periodically saves the ServerState of this
@@ -551,6 +554,7 @@
     heartbeatInterval = configuration.getHeartbeatInterval();
     isolationpolicy = configuration.getIsolationPolicy();
     configDn = configuration.dn();
+    logChangeNumber = configuration.isLogChangenumber();
     this.updateToReplayQueue = updateToReplayQueue;
 
     // Get assured configuration
@@ -2297,6 +2301,12 @@
     // Note that a failed non-replication operation might not have a change
     // number.
     ChangeNumber curChangeNumber = OperationContext.getChangeNumber(op);
+    if ((curChangeNumber != null) && (logChangeNumber))
+    {
+      Message message =
+        Message.raw("replicationCN:%s", curChangeNumber.toString());
+      op.appendAdditionalLogMessage(message);
+    }
 
     if ((result == ResultCode.SUCCESS) && (!op.isSynchronizationOperation()))
     {
@@ -4234,6 +4244,7 @@
          ReplicationDomainCfg configuration)
   {
     isolationpolicy = configuration.getIsolationPolicy();
+    logChangeNumber = configuration.isLogChangenumber();
 
     changeConfig(
         configuration.getReplicationServer(),

--
Gitblit v1.10.0