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]
