From d4a53237446485c4de48fc81fe00d1335b09bfef Mon Sep 17 00:00:00 2001
From: fguigues <fguigues@localhost>
Date: Thu, 13 Aug 2009 11:44:47 +0000
Subject: [PATCH] Fix the LDAPStatistics data and objects of LDAPConnectionHandler Fix the uninstall tool on windows (classpath too long when stop server is called)

---
 opends/src/server/org/opends/server/protocols/ldap/LDAPClientConnection.java |  119 +++++++++--------------------------------------------------
 1 files changed, 18 insertions(+), 101 deletions(-)

diff --git a/opends/src/server/org/opends/server/protocols/ldap/LDAPClientConnection.java b/opends/src/server/org/opends/server/protocols/ldap/LDAPClientConnection.java
index b73b946..b14755b 100644
--- a/opends/src/server/org/opends/server/protocols/ldap/LDAPClientConnection.java
+++ b/opends/src/server/org/opends/server/protocols/ldap/LDAPClientConnection.java
@@ -72,7 +72,6 @@
 import org.opends.server.extensions.TLSByteChannel;
 import org.opends.server.extensions.TLSCapableConnection;
 import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.monitors.OperationMonitor;
 import org.opends.server.protocols.asn1.ASN1;
 import org.opends.server.protocols.asn1.ASN1ByteChannelReader;
 import org.opends.server.protocols.asn1.ASN1Reader;
@@ -207,9 +206,8 @@
 
   // The statistics tracker associated with this client connection.
   private final LDAPStatistics statTracker;
+  private boolean useNanoTime=false;
 
-  // The connectionHandler statistic tracker.
-  private final LDAPStatistics parentTracker;
 
   // The connection ID assigned to this connection.
   private final long connectionID;
@@ -248,19 +246,6 @@
   private volatile ConnectionSecurityProvider tlsPendingProvider = null;
   private volatile ConnectionSecurityProvider saslPendingProvider = null;
 
-  // Statistics for the processed operations
-  private OperationMonitor addMonitor;
-  private OperationMonitor searchMonitor;
-  private OperationMonitor abandonMonitor;
-  private OperationMonitor bindMonitor;
-  private OperationMonitor compareMonitor;
-  private OperationMonitor delMonitor;
-  private OperationMonitor extendedMonitor;
-  private OperationMonitor modMonitor;
-  private OperationMonitor moddnMonitor;
-  private OperationMonitor unbindMonitor;
-
-
 
   /**
    * Creates a new LDAP client connection with the provided information.
@@ -304,15 +289,14 @@
     serverAddress =
         clientChannel.socket().getLocalAddress().getHostAddress();
     serverPort = clientChannel.socket().getLocalPort();
-    parentTracker = connectionHandler.getStatTracker();
-    String instanceName =
-        parentTracker.getMonitorInstanceName() + " for " + toString();
-    this.initializeOperationMonitors();
-    statTracker = new LDAPStatistics(instanceName, parentTracker);
+
+    statTracker =
+            this.connectionHandler.getStatTracker();
 
     if (keepStats)
     {
       statTracker.updateConnect();
+      this.useNanoTime=DirectoryServer.getUseNanoTime();
     }
 
     tlsChannel =
@@ -331,8 +315,6 @@
     }
   }
 
-
-
   /**
    * Retrieves the connection ID assigned to this connection.
    *
@@ -545,6 +527,19 @@
     // can't be canceled after this point, and this will avoid potential
     // race conditions in which the client immediately sends another
     // request with the same message ID as was used for this operation.
+
+    if (keepStats) {
+        long time;
+        if (useNanoTime) {
+            time = operation.getProcessingNanoTime();
+        } else {
+            time = operation.getProcessingTime();
+        }
+        this.statTracker.updateOperationMonitoringData(
+                operation.getOperationType(),
+                time);
+    }
+
     removeOperationInProgress(operation.getMessageID());
 
     LDAPMessage message = operationToResponseLDAPMessage(operation);
@@ -1528,25 +1523,12 @@
       switch (message.getProtocolOpType())
       {
       case OP_TYPE_ABANDON_REQUEST:
-        if (keepStats) this.abandonMonitor.start();
         result = processAbandonRequest(message, opControls);
-        if (keepStats)
-        {
-          this.abandonMonitor.stop();
-          this.abandonMonitor.updateMonitorProvider(statTracker);
-        }
         return result;
       case OP_TYPE_ADD_REQUEST:
-        if (keepStats) this.addMonitor.start();
         result = processAddRequest(message, opControls);
-        if (keepStats)
-        {
-          this.addMonitor.stop();
-          this.addMonitor.updateMonitorProvider(statTracker);
-        }
         return result;
       case OP_TYPE_BIND_REQUEST:
-        if (keepStats) this.bindMonitor.start();
         bindOrStartTLSInProgress.set(true);
         if(message.getBindRequestProtocolOp().
             getAuthenticationType() == AuthenticationType.SASL)
@@ -1563,32 +1545,14 @@
             saslBindInProgress.set(false);
           }
         }
-        if (keepStats)
-        {
-          this.bindMonitor.stop();
-          this.bindMonitor.updateMonitorProvider(statTracker);
-        }
         return result;
       case OP_TYPE_COMPARE_REQUEST:
-        if (keepStats) this.compareMonitor.start();
         result = processCompareRequest(message, opControls);
-        if (keepStats)
-        {
-          this.compareMonitor.stop();
-          this.compareMonitor.updateMonitorProvider(statTracker);
-        }
         return result;
       case OP_TYPE_DELETE_REQUEST:
-        if (keepStats) this.delMonitor.start();
         result = processDeleteRequest(message, opControls);
-        if (keepStats)
-        {
-          this.delMonitor.stop();
-          this.delMonitor.updateMonitorProvider(statTracker);
-        }
         return result;
       case OP_TYPE_EXTENDED_REQUEST:
-        if (keepStats) this.extendedMonitor.start();
         if(message.getExtendedRequestProtocolOp().getOID().equals(
             OID_START_TLS_REQUEST))
         {
@@ -1601,47 +1565,18 @@
         {
           bindOrStartTLSInProgress.set(false);
         }
-        if (keepStats)
-        {
-          this.extendedMonitor.stop();
-          this.extendedMonitor.updateMonitorProvider(statTracker);
-        }
         return result;
       case OP_TYPE_MODIFY_REQUEST:
-        if (keepStats) this.modMonitor.start();
         result = processModifyRequest(message, opControls);
-        if (keepStats)
-        {
-          this.modMonitor.stop();
-          this.modMonitor.updateMonitorProvider(statTracker);
-        }
         return result;
       case OP_TYPE_MODIFY_DN_REQUEST:
-        if (keepStats) this.moddnMonitor.start();
         result = processModifyDNRequest(message, opControls);
-        if (keepStats)
-        {
-          this.moddnMonitor.stop();
-          this.moddnMonitor.updateMonitorProvider(statTracker);
-        }
         return result;
       case OP_TYPE_SEARCH_REQUEST:
-        if (keepStats) this.searchMonitor.start();
         result = processSearchRequest(message, opControls);
-        if (keepStats)
-        {
-          this.searchMonitor.stop();
-          this.searchMonitor.updateMonitorProvider(statTracker);
-        }
         return result;
       case OP_TYPE_UNBIND_REQUEST:
-        if (keepStats) this.unbindMonitor.start();
         result = processUnbindRequest(message, opControls);
-        if (keepStats)
-        {
-          this.unbindMonitor.stop();
-          this.unbindMonitor.updateMonitorProvider(statTracker);
-        }
         return result;
       default:
         Message msg =
@@ -2620,24 +2555,6 @@
       return APPLICATION_BUFFER_SIZE;
   }
 
-
-
-  private void initializeOperationMonitors()
-  {
-    this.addMonitor = OperationMonitor.getOperationMonitor(ADD);
-    this.searchMonitor = OperationMonitor.getOperationMonitor(SEARCH);
-    this.abandonMonitor = OperationMonitor.getOperationMonitor(ABANDON);
-    this.bindMonitor = OperationMonitor.getOperationMonitor(BIND);
-    this.compareMonitor = OperationMonitor.getOperationMonitor(COMPARE);
-    this.delMonitor = OperationMonitor.getOperationMonitor(DELETE);
-    this.extendedMonitor =
-        OperationMonitor.getOperationMonitor(EXTENDED);
-    this.modMonitor = OperationMonitor.getOperationMonitor(MODIFY);
-    this.moddnMonitor = OperationMonitor.getOperationMonitor(MODIFY_DN);
-    this.unbindMonitor = OperationMonitor.getOperationMonitor(UNBIND);
-  }
-
-
   /**
    * {@inheritDoc}
    */

--
Gitblit v1.10.0