From 269a1d06ff820c287bb21a03fa76e3314110516a Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Mon, 22 Apr 2013 10:28:50 +0000
Subject: [PATCH] OPENDJ-832 Leverage the work queue for processing requests received on the HTTP connection handler

---
 opends/src/server/org/opends/server/protocols/http/SdkConnectionAdapter.java |   17 +++++++++++++++--
 1 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/opends/src/server/org/opends/server/protocols/http/SdkConnectionAdapter.java b/opends/src/server/org/opends/server/protocols/http/SdkConnectionAdapter.java
index e878683..02f16b5 100644
--- a/opends/src/server/org/opends/server/protocols/http/SdkConnectionAdapter.java
+++ b/opends/src/server/org/opends/server/protocols/http/SdkConnectionAdapter.java
@@ -59,6 +59,7 @@
 import org.opends.server.core.AbandonOperationBasis;
 import org.opends.server.core.AddOperationBasis;
 import org.opends.server.core.BindOperationBasis;
+import org.opends.server.core.BoundedWorkQueueStrategy;
 import org.opends.server.core.CompareOperationBasis;
 import org.opends.server.core.DeleteOperationBasis;
 import org.opends.server.core.ExtendedOperationBasis;
@@ -67,7 +68,6 @@
 import org.opends.server.core.QueueingStrategy;
 import org.opends.server.core.SearchOperationBasis;
 import org.opends.server.core.UnbindOperationBasis;
-import org.opends.server.core.WorkQueueStrategy;
 import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.AuthenticationInfo;
 import org.opends.server.types.ByteString;
@@ -98,7 +98,7 @@
   private AtomicInteger nextMessageID = new AtomicInteger(0);
 
   /** The queueing strategy used for this connection. */
-  private QueueingStrategy queueingStrategy = new WorkQueueStrategy();
+  private final QueueingStrategy queueingStrategy;
 
   /**
    * Whether this connection has been closed by calling {@link #close()} or
@@ -115,6 +115,9 @@
   public SdkConnectionAdapter(HTTPClientConnection clientConnection)
   {
     this.clientConnection = clientConnection;
+    this.queueingStrategy =
+        new BoundedWorkQueueStrategy(clientConnection.getConnectionHandler()
+            .getCurrentConfig().getMaxConcurrentOpsPerConnection());
   }
 
   @SuppressWarnings({ "rawtypes", "unchecked" })
@@ -269,6 +272,16 @@
     return enqueueOperation(operation, resultHandler);
   }
 
+  /**
+   * Return the queueing strategy used by this connection.
+   *
+   * @return The queueing strategy used by this connection
+   */
+  public QueueingStrategy getQueueingStrategy()
+  {
+    return queueingStrategy;
+  }
+
   /** {@inheritDoc} */
   @Override
   public boolean isClosed()

--
Gitblit v1.10.0