From 08f9243b55eb5f0f8030eebe976a0d85ffbd44c2 Mon Sep 17 00:00:00 2001
From: ludovicp <ludovicp@localhost>
Date: Fri, 30 Jul 2010 15:11:25 +0000
Subject: [PATCH] Implements a configurable limit in the number of persistent searches a server can handle.
---
opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendSearchOperation.java | 11 ++++++++++-
1 files changed, 10 insertions(+), 1 deletions(-)
diff --git a/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendSearchOperation.java b/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendSearchOperation.java
index 6e6a124..ae387e4 100644
--- a/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendSearchOperation.java
+++ b/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendSearchOperation.java
@@ -22,7 +22,7 @@
* CDDL HEADER END
*
*
- * Copyright 2008-2009 Sun Microsystems, Inc.
+ * Copyright 2008-2010 Sun Microsystems, Inc.
*/
package org.opends.server.workflowelement.localbackend;
@@ -251,6 +251,15 @@
// If there's a persistent search, then register it with the server.
if (persistentSearch != null)
{
+ //The Core server maintains the count of concurrent persistent searches
+ //so that all the backends (Remote and Local) are aware of it. Verify
+ //with the core if we have already reached the threshold.
+ if(!DirectoryServer.allowNewPersistentSearch())
+ {
+ setResultCode(ResultCode.ADMIN_LIMIT_EXCEEDED);
+ appendErrorMessage(ERR_MAX_PSEARCH_LIMIT_EXCEEDED.get());
+ break searchProcessing;
+ }
wfe.registerPersistentSearch(persistentSearch);
persistentSearch.enable();
}
--
Gitblit v1.10.0