--- serverctl.new	2009-12-08 17:34:34.000000000 +0100
+++ serverctl	2009-12-15 08:06:13.000000000 +0100
@@ -240,6 +240,18 @@
 	echo $JARS	
 }
 
+# set ulimit value appropriately
+setUlimit()  {
+	NOF=`ulimit -n`
+	if [ $NOF -lt $CQ_MAX_OPEN_FILES ]; then
+		# already set limit is too low, increase it at least
+		# standard value
+		ulimit -n $CQ_MAX_OPEN_FILES	
+	fi
+
+}
+
+
 #---------------------------------------------------------------------
 # main program begins here
 #---------------------------------------------------------------------
@@ -477,7 +489,7 @@
     info "Using JVM found at $CQ_JVM"
 
     if [ -n "$CQ_FOREGROUND" ]; then
-        ulimit -n $CQ_MAX_OPEN_FILES
+        setUlimit
         info "Starting $CQ_TITLE in foreground"
         info "$STOP_MESSAGE"
         printDebug
@@ -561,7 +575,7 @@
       usage
       exit
     fi
-    ulimit -n $CQ_MAX_OPEN_FILES
+    setUlimit
     echo $$ > "$CQ_LOGDIR/cq.pid" 
 	cd $CQ_CONTEXT || fatal "Cannot cd to $CQ_CONTEXT"
     exec $jvmExe >> "$CQ_LOG" 2>&1
