Author: kwall
Date: Tue Jul 17 14:09:37 2012
New Revision: 1362502

URL: http://svn.apache.org/viewvc?rev=1362502&view=rev
Log:
QPID-4143: tweaked topic test config to introduce a start delay on message 
production, allowing the consumers enough time to implicitly create the queues 
(unfortunately the Qpid client can't explicitly create topics).

Also improved error reporting and increased time outs to better cope with large 
scale tests.

Applied patch from Philip Harvey <[email protected]>

Modified:
    qpid/trunk/qpid/java/perftests/etc/log4j.properties
    qpid/trunk/qpid/java/perftests/etc/perftests-jndi.properties
    qpid/trunk/qpid/java/perftests/etc/testdefs/Topic-AckModes.js
    qpid/trunk/qpid/java/perftests/etc/testdefs/Topic-NumberOfConsumers.js
    qpid/trunk/qpid/java/perftests/etc/testdefs/Topic-NumberOfTopics.js
    qpid/trunk/qpid/java/perftests/etc/testdefs/Topic-Persistence.js
    qpid/trunk/qpid/java/perftests/example/log4j.properties
    qpid/trunk/qpid/java/perftests/example/perftests-jndi.properties
    
qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/disttest/ControllerRunner.java
    
qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/disttest/DistributedTestConstants.java
    
qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/disttest/controller/Controller.java
    
qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/disttest/controller/TestRunner.java

Modified: qpid/trunk/qpid/java/perftests/etc/log4j.properties
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/perftests/etc/log4j.properties?rev=1362502&r1=1362501&r2=1362502&view=diff
==============================================================================
--- qpid/trunk/qpid/java/perftests/etc/log4j.properties (original)
+++ qpid/trunk/qpid/java/perftests/etc/log4j.properties Tue Jul 17 14:09:37 2012
@@ -25,4 +25,4 @@ log4j.appender.console=org.apache.log4j.
 log4j.appender.console.Threshold=all
 log4j.appender.console.layout=org.apache.log4j.PatternLayout
 
-log4j.appender.console.layout.ConversionPattern=%d %p [%c{1}] %m%n
\ No newline at end of file
+log4j.appender.console.layout.ConversionPattern=%d %p [%t] [%c{1}] %m%n

Modified: qpid/trunk/qpid/java/perftests/etc/perftests-jndi.properties
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/perftests/etc/perftests-jndi.properties?rev=1362502&r1=1362501&r2=1362502&view=diff
==============================================================================
--- qpid/trunk/qpid/java/perftests/etc/perftests-jndi.properties (original)
+++ qpid/trunk/qpid/java/perftests/etc/perftests-jndi.properties Tue Jul 17 
14:09:37 2012
@@ -23,4 +23,4 @@ java.naming.factory.initial = org.apache
 # use QpidBrokerTestCase's default port
 connectionfactory.connectionfactory = 
amqp://guest:guest@clientid/test?brokerlist='tcp://localhost:5672'
 
-destination.controllerqueue = direct://amq.direct//controllerqueue
+destination.controllerqueue = 
direct://amq.direct//controllerqueue?autodelete='true'

Modified: qpid/trunk/qpid/java/perftests/etc/testdefs/Topic-AckModes.js
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/perftests/etc/testdefs/Topic-AckModes.js?rev=1362502&r1=1362501&r2=1362502&view=diff
==============================================================================
--- qpid/trunk/qpid/java/perftests/etc/testdefs/Topic-AckModes.js (original)
+++ qpid/trunk/qpid/java/perftests/etc/testdefs/Topic-AckModes.js Tue Jul 17 
14:09:37 2012
@@ -30,7 +30,8 @@ var jsonObject = {
                     {
                       "_name": "Producer",
                       "_destinationName": topicName,
-                      "_maximumDuration": duration
+                      "_maximumDuration": duration,
+                      "_startDelay": 2000 // gives the consumers time to 
implicitly create the topic
                     }
                   ]
                 }

Modified: qpid/trunk/qpid/java/perftests/etc/testdefs/Topic-NumberOfConsumers.js
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/perftests/etc/testdefs/Topic-NumberOfConsumers.js?rev=1362502&r1=1362501&r2=1362502&view=diff
==============================================================================
--- qpid/trunk/qpid/java/perftests/etc/testdefs/Topic-NumberOfConsumers.js 
(original)
+++ qpid/trunk/qpid/java/perftests/etc/testdefs/Topic-NumberOfConsumers.js Tue 
Jul 17 14:09:37 2012
@@ -26,7 +26,8 @@ for(i=0; i < numbersOfConsumers.length ;
                     {
                       "_name": "Producer1",
                       "_destinationName": topicName,
-                      "_maximumDuration": duration
+                      "_maximumDuration": duration,
+                      "_startDelay": 2000 // gives the consumers time to 
implicitly create the topic
                     }
                   ]
                 }

Modified: qpid/trunk/qpid/java/perftests/etc/testdefs/Topic-NumberOfTopics.js
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/perftests/etc/testdefs/Topic-NumberOfTopics.js?rev=1362502&r1=1362501&r2=1362502&view=diff
==============================================================================
--- qpid/trunk/qpid/java/perftests/etc/testdefs/Topic-NumberOfTopics.js 
(original)
+++ qpid/trunk/qpid/java/perftests/etc/testdefs/Topic-NumberOfTopics.js Tue Jul 
17 14:09:37 2012
@@ -29,7 +29,8 @@ for(i=0; i < numbersOfTopics.length ; i+
                         {
                           "_name": "Producer-__INDEX",
                           "_destinationName": topicName,
-                          "_maximumDuration": duration
+                          "_maximumDuration": duration,
+                          "_startDelay": 2000 // gives the consumers time to 
implicitly create the topic
                         }
                       ]
                     }

Modified: qpid/trunk/qpid/java/perftests/etc/testdefs/Topic-Persistence.js
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/perftests/etc/testdefs/Topic-Persistence.js?rev=1362502&r1=1362501&r2=1362502&view=diff
==============================================================================
--- qpid/trunk/qpid/java/perftests/etc/testdefs/Topic-Persistence.js (original)
+++ qpid/trunk/qpid/java/perftests/etc/testdefs/Topic-Persistence.js Tue Jul 17 
14:09:37 2012
@@ -32,6 +32,7 @@ var jsonObject = {
                       "_name": "Producer",
                       "_destinationName": topicName,
                       "_maximumDuration": duration,
+                      "_startDelay": 2000 // gives the consumers time to 
implicitly create the topic
                     }
                   ]
                 }

Modified: qpid/trunk/qpid/java/perftests/example/log4j.properties
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/perftests/example/log4j.properties?rev=1362502&r1=1362501&r2=1362502&view=diff
==============================================================================
--- qpid/trunk/qpid/java/perftests/example/log4j.properties (original)
+++ qpid/trunk/qpid/java/perftests/example/log4j.properties Tue Jul 17 14:09:37 
2012
@@ -25,11 +25,11 @@ log4j.appender.console=org.apache.log4j.
 log4j.appender.console.Threshold=all
 log4j.appender.console.layout=org.apache.log4j.PatternLayout
 
-log4j.appender.console.layout.ConversionPattern=%d %p [%c{1}] %m%n
+log4j.appender.console.layout.ConversionPattern=%d %p [%t] [%c{1}] %m%n
 
 log4j.appender.fileApp=org.apache.log4j.FileAppender
 log4j.appender.fileApp.file=perftests.log
 log4j.appender.fileApp.Threshold=info
 log4j.appender.fileApp.append=false
 log4j.appender.fileApp.layout=org.apache.log4j.PatternLayout
-log4j.appender.fileApp.layout.ConversionPattern=%d %p [%c{1}] %m%n
\ No newline at end of file
+log4j.appender.fileApp.layout.ConversionPattern=%d %p [%t] [%c{1}] %m%n

Modified: qpid/trunk/qpid/java/perftests/example/perftests-jndi.properties
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/perftests/example/perftests-jndi.properties?rev=1362502&r1=1362501&r2=1362502&view=diff
==============================================================================
--- qpid/trunk/qpid/java/perftests/example/perftests-jndi.properties (original)
+++ qpid/trunk/qpid/java/perftests/example/perftests-jndi.properties Tue Jul 17 
14:09:37 2012
@@ -23,4 +23,4 @@ java.naming.factory.initial = org.apache
 # use QpidBrokerTestCase's default port
 connectionfactory.connectionfactory = 
amqp://guest:guest@clientid/test?brokerlist='tcp://localhost:5672'
 
-destination.controllerqueue = direct://amq.direct//controllerqueue
+destination.controllerqueue = 
direct://amq.direct//controllerqueue?autodelete='true'

Modified: 
qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/disttest/ControllerRunner.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/disttest/ControllerRunner.java?rev=1362502&r1=1362501&r2=1362502&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/disttest/ControllerRunner.java
 (original)
+++ 
qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/disttest/ControllerRunner.java
 Tue Jul 17 14:09:37 2012
@@ -103,6 +103,10 @@ public class ControllerRunner extends Ab
                 runTest(controller, testConfigFile);
             }
         }
+        catch(Exception e)
+        {
+            LOGGER.error("Problem running test", e);
+        }
         finally
         {
             controller.stopAllRegisteredClients();

Modified: 
qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/disttest/DistributedTestConstants.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/disttest/DistributedTestConstants.java?rev=1362502&r1=1362501&r2=1362502&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/disttest/DistributedTestConstants.java
 (original)
+++ 
qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/disttest/DistributedTestConstants.java
 Tue Jul 17 14:09:37 2012
@@ -26,8 +26,10 @@ public abstract class DistributedTestCon
     public static final String MSG_COMMAND_PROPERTY = "COMMAND";
     public static final String MSG_JSON_PROPERTY = "JSON";
 
-    public static final long REGISTRATION_TIMEOUT = 60000;
-    public static final long COMMAND_RESPONSE_TIMEOUT = 10000;
+    public static final long REGISTRATION_TIMEOUT = 60 * 1000;
+
+    /** set to a long time out because stopping clients can take a long time */
+    public static final long COMMAND_RESPONSE_TIMEOUT = 120 * 1000;
 
     public static final String CONTROLLER_QUEUE_JNDI_NAME = "controllerqueue";
 }

Modified: 
qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/disttest/controller/Controller.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/disttest/controller/Controller.java?rev=1362502&r1=1362501&r2=1362502&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/disttest/controller/Controller.java
 (original)
+++ 
qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/disttest/controller/Controller.java
 Tue Jul 17 14:09:37 2012
@@ -92,15 +92,18 @@ public class Controller
         }
     }
 
-    private void awaitLatch(CountDownLatch latch, long timeout, String 
messageWithOneDecimalPlaceholder)
+    private void awaitStopResponses(CountDownLatch latch, long timeout)
     {
+        String message = "Timed out after %d waiting for stop command 
responses. Expecting %d more responses.";
+
         try
         {
-            final boolean countedDownOK = latch.await(timeout, 
TimeUnit.MILLISECONDS);
+            boolean countedDownOK = latch.await(timeout, 
TimeUnit.MILLISECONDS);
             if (!countedDownOK)
             {
-                final long latchCount = latch.getCount();
-                String formattedMessage = 
String.format(messageWithOneDecimalPlaceholder, latchCount);
+                long latchCount = latch.getCount();
+                String formattedMessage = String.format(message, timeout, 
latchCount);
+                LOGGER.error(formattedMessage);
                 throw new DistributedTestException(formattedMessage);
             }
         }
@@ -141,7 +144,7 @@ public class Controller
             _jmsDelegate.sendCommandToClient(clientName, command);
         }
 
-        awaitLatch(_stopClientsResponseLatch, _commandResponseTimeout, "Timed 
out waiting for stop command responses. Expecting %d more responses.");
+        awaitStopResponses(_stopClientsResponseLatch, _commandResponseTimeout);
 
         LOGGER.info("Stopped all clients");
     }

Modified: 
qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/disttest/controller/TestRunner.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/disttest/controller/TestRunner.java?rev=1362502&r1=1362501&r2=1362502&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/disttest/controller/TestRunner.java
 (original)
+++ 
qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/disttest/controller/TestRunner.java
 Tue Jul 17 14:09:37 2012
@@ -104,6 +104,11 @@ public class TestRunner
 
             return _testResult;
         }
+        catch(RuntimeException e)
+        {
+            LOGGER.error("Couldn't run test", e);
+            throw e;
+        }
         finally
         {
             _jmsDelegate.removeCommandListener(participantResultListener);
@@ -140,7 +145,6 @@ public class TestRunner
             }
 
             Runtime.getRuntime().removeShutdownHook(_removeQueuesShutdownHook);
-
         }
     }
 
@@ -176,7 +180,7 @@ public class TestRunner
 
     void awaitCommandResponses()
     {
-        awaitLatch(_commandResponseLatch, _commandResponseTimeout, "Timed out 
waiting for command responses. Expecting %d more responses.");
+        awaitLatch(_commandResponseLatch, _commandResponseTimeout, "Timed out 
waiting for command responses");
     }
 
 
@@ -204,7 +208,7 @@ public class TestRunner
         {
             try
             {
-                awaitLatch(_testResultsLatch, interval, "Waiting for 
participant results... Expecting %d more responses.");
+                awaitLatch(_testResultsLatch, interval, "Timed out waiting for 
participant results");
             }
             catch (DistributedTestException e)
             {
@@ -276,7 +280,7 @@ public class TestRunner
         _jmsDelegate.sendCommandToClient(registeredClientName, command);
     }
 
-    private void awaitLatch(CountDownLatch latch, long timeout, String 
messageWithOneDecimalPlaceholder)
+    private void awaitLatch(CountDownLatch latch, long timeout, String message)
     {
         try
         {
@@ -284,7 +288,8 @@ public class TestRunner
             if (!countedDownOK)
             {
                 final long latchCount = latch.getCount();
-                String formattedMessage = 
String.format(messageWithOneDecimalPlaceholder, latchCount);
+                String formattedMessage = "After " + timeout + "ms ... " + 
message + " ... Expecting " + latchCount + " more responses.";
+                LOGGER.error(formattedMessage);
                 throw new DistributedTestException(formattedMessage);
             }
         }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to