Index: /branches/supervisor/src/main/java/omq/common/util/OmqConnectionFactory.java
===================================================================
--- /branches/supervisor/src/main/java/omq/common/util/OmqConnectionFactory.java	(revision 101)
+++ /branches/supervisor/src/main/java/omq/common/util/OmqConnectionFactory.java	(revision 102)
@@ -57,4 +57,5 @@
 				working = true;
 			} catch (Exception e) {
+//				e.printStackTrace();
 				logger.error(e);
 				long milis = 2000;
Index: /branches/supervisor/src/main/java/omq/common/util/ParameterQueue.java
===================================================================
--- /branches/supervisor/src/main/java/omq/common/util/ParameterQueue.java	(revision 101)
+++ /branches/supervisor/src/main/java/omq/common/util/ParameterQueue.java	(revision 102)
@@ -132,8 +132,4 @@
 	 */
 
-	/**
-	 * Set how many threads will be created to invoke remote methods
-	 */
-	public static String NUM_THREADS = "omq.num_threads";
 
 	/**
Index: /branches/supervisor/src/main/java/omq/server/InvocationThread.java
===================================================================
--- /branches/supervisor/src/main/java/omq/server/InvocationThread.java	(revision 101)
+++ /branches/supervisor/src/main/java/omq/server/InvocationThread.java	(revision 102)
@@ -157,4 +157,5 @@
 
 		}
+		logger.info("ObjectMQ ('" + obj.getRef() + "') InvocationThread " + Thread.currentThread().getId() + " is killed");
 	}
 
Index: /branches/supervisor/src/main/java/omq/server/RemoteThreadPool.java
===================================================================
--- /branches/supervisor/src/main/java/omq/server/RemoteThreadPool.java	(revision 101)
+++ /branches/supervisor/src/main/java/omq/server/RemoteThreadPool.java	(revision 102)
@@ -4,4 +4,5 @@
 import java.util.ArrayList;
 import java.util.List;
+import java.util.ListIterator;
 import java.util.concurrent.atomic.AtomicInteger;
 
@@ -102,10 +103,7 @@
 		long now = System.currentTimeMillis();
 
-		int i = 0;
-		for (InvocationThread worker : workers) {
-			// Ensure there are at least minThreads available
-			if (workers.size() == minPoolThreads) {
-				break;
-			}
+		ListIterator<InvocationThread> lIter = workers.listIterator();
+		while (workers.size() > minPoolThreads && lIter.hasNext()) {
+			InvocationThread worker = lIter.next();
 			long lastExec = worker.getLastExecution();
 			System.out.println("last - now = " + (now - lastExec) + " keep alive = " + keepAliveTime);
@@ -114,12 +112,10 @@
 				try {
 					worker.kill();
-					workers.remove(i);
+					lIter.remove();
 				} catch (IOException e) {
-					// TODO Auto-generated catch block
-					e.printStackTrace();
+					logger.error(e);
 				}
 
 			}
-			i++;
 		}
 	}
Index: /branches/supervisor/src/test/java/omq/test/lock/SleepTest.java
===================================================================
--- /branches/supervisor/src/test/java/omq/test/lock/SleepTest.java	(revision 101)
+++ /branches/supervisor/src/test/java/omq/test/lock/SleepTest.java	(revision 102)
@@ -20,5 +20,4 @@
 		env.setProperty(ParameterQueue.RABBIT_HOST, "127.0.0.1");
 		env.setProperty(ParameterQueue.RABBIT_PORT, "5672");
-		env.setProperty(ParameterQueue.NUM_THREADS, "1");
 
 		for (int i = 0; i < 4; i++) {
Index: /branches/supervisor/src/test/java/omq/test/multiThread/ThreadTest.java
===================================================================
--- /branches/supervisor/src/test/java/omq/test/multiThread/ThreadTest.java	(revision 101)
+++ /branches/supervisor/src/test/java/omq/test/multiThread/ThreadTest.java	(revision 102)
@@ -73,5 +73,6 @@
 		env.setProperty(ParameterQueue.RPC_EXCHANGE, "rpc_exchange");
 		env.setProperty(ParameterQueue.RETRY_TIME_CONNECTION, "2000");
-		env.setProperty(ParameterQueue.NUM_THREADS, "4");
+		env.setProperty(ParameterQueue.MIN_POOL_THREADS, "4");
+		env.setProperty(ParameterQueue.MAX_POOL_THREADS, "4");
 
 		RemoteMulti rm = new RemoteMulti();
Index: /branches/supervisor/src/test/java/omq/test/multiThread2/MultiThreadTest.java
===================================================================
--- /branches/supervisor/src/test/java/omq/test/multiThread2/MultiThreadTest.java	(revision 101)
+++ /branches/supervisor/src/test/java/omq/test/multiThread2/MultiThreadTest.java	(revision 102)
@@ -21,6 +21,6 @@
 		env.setProperty(ParameterQueue.RABBIT_HOST, "127.0.0.1");
 		env.setProperty(ParameterQueue.RABBIT_PORT, "5672");
-		env.setProperty(ParameterQueue.NUM_THREADS, "4");
-
+		env.setProperty(ParameterQueue.MIN_POOL_THREADS, "4");
+		env.setProperty(ParameterQueue.MAX_POOL_THREADS, "4");
 		SleepImpl sleep = new SleepImpl();
 
Index: /branches/supervisor/src/test/java/omq/test/multiThread2/PrintTest.java
===================================================================
--- /branches/supervisor/src/test/java/omq/test/multiThread2/PrintTest.java	(revision 101)
+++ /branches/supervisor/src/test/java/omq/test/multiThread2/PrintTest.java	(revision 102)
@@ -21,5 +21,6 @@
 		env.setProperty(ParameterQueue.RABBIT_HOST, "127.0.0.1");
 		env.setProperty(ParameterQueue.RABBIT_PORT, "5672");
-		env.setProperty(ParameterQueue.NUM_THREADS, "2");
+		env.setProperty(ParameterQueue.MIN_POOL_THREADS, "2");
+		env.setProperty(ParameterQueue.MAX_POOL_THREADS, "2");
 
 		PrintImpl print = new PrintImpl(1);
Index: /branches/supervisor/src/test/java/omq/test/remotePool/RemotePoolTest.java
===================================================================
--- /branches/supervisor/src/test/java/omq/test/remotePool/RemotePoolTest.java	(revision 101)
+++ /branches/supervisor/src/test/java/omq/test/remotePool/RemotePoolTest.java	(revision 102)
@@ -47,14 +47,14 @@
 		for (int j = 0; j < 2; j++) {
 
-			for (int i = 0; i < 4; i++) {
+			for (int i = 0; i < 8; i++) {
 				sleep.sleep();
 			}
 			Thread.sleep(3000);
-			for (int i = 0; i < 4; i++) {
+			for (int i = 0; i < 12; i++) {
 				sleep.sleep();
 			}
 			Thread.sleep(10000);
 		}
-		Thread.sleep(20000 * 1000);
+		
 	}
 }
Index: /branches/supervisor/src/test/java/omq/test/supervisor/SleepTest.java
===================================================================
--- /branches/supervisor/src/test/java/omq/test/supervisor/SleepTest.java	(revision 101)
+++ /branches/supervisor/src/test/java/omq/test/supervisor/SleepTest.java	(revision 102)
@@ -24,5 +24,6 @@
 		env1.setProperty(ParameterQueue.RABBIT_HOST, "127.0.0.1");
 		env1.setProperty(ParameterQueue.RABBIT_PORT, "5672");
-		env1.setProperty(ParameterQueue.NUM_THREADS, "4");
+		env1.setProperty(ParameterQueue.MIN_POOL_THREADS, "4");
+		env1.setProperty(ParameterQueue.MAX_POOL_THREADS, "4");
 
 		Broker broker = new Broker(env1);
@@ -35,5 +36,6 @@
 		env2.setProperty(ParameterQueue.RABBIT_HOST, "127.0.0.1");
 		env2.setProperty(ParameterQueue.RABBIT_PORT, "5672");
-		env2.setProperty(ParameterQueue.NUM_THREADS, "1");
+		env2.setProperty(ParameterQueue.MIN_POOL_THREADS, "4");
+		env2.setProperty(ParameterQueue.MAX_POOL_THREADS, "4");
 
 		Broker broker2 = new Broker(env2);
Index: /branches/supervisor/target/classes/log4j.xml
===================================================================
--- /branches/supervisor/target/classes/log4j.xml	(revision 102)
+++ /branches/supervisor/target/classes/log4j.xml	(revision 102)
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
+    <appender name="consoleAppender" class="org.apache.log4j.ConsoleAppender">
+        <param name="Threshold" value="INFO" />
+        <layout class="org.apache.log4j.PatternLayout">
+            <param name="ConversionPattern" value="%d{[yyyy-MM-dd HH:mm:ss]} %-5p %c:%L - %m%n" />
+        </layout>
+    </appender>
+
+    <appender class="org.apache.log4j.rolling.RollingFileAppender" name="A2">
+        <param value="true" name="append"/>
+        <param value="logs/objectmq-temp.log" name="File"/>
+
+        <rollingPolicy class="org.apache.log4j.rolling.FixedWindowRollingPolicy">
+            <param name="fileNamePattern" value="logs/objectmq-%i.log" />
+            <param name="MinIndex" value="0"/> 
+            <param name="MaxIndex" value="1"/> 
+        </rollingPolicy>
+        
+        <triggeringPolicy class="org.apache.log4j.rolling.SizeBasedTriggeringPolicy"> 
+            <param name="MaxFileSize" value="10000000"/> 
+        </triggeringPolicy> 
+        
+        <layout class="org.apache.log4j.PatternLayout">
+            <param value="%d{[yyyy-MM-dd HH:mm:ss]} %-5p %c:%L - %m%n" name="ConversionPattern"/>
+        </layout>        
+    </appender>
+
+  <root> 
+    <priority value ="INFO" /> 
+    <appender-ref ref="consoleAppender" />
+    <appender-ref ref="A2" />  
+  </root>
+  
+</log4j:configuration>
