You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ra...@apache.org on 2008/05/14 21:37:45 UTC

svn commit: r656379 - in /activemq/trunk/activemq-core/src/test/java/org/apache/activemq/perf: PerfConsumer.java SimpleDurableTopicTest.java

Author: rajdavies
Date: Wed May 14 12:37:45 2008
New Revision: 656379

URL: http://svn.apache.org/viewvc?rev=656379&view=rev
Log:
Add an optional initial delay for the consumer

Modified:
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/perf/PerfConsumer.java
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/perf/SimpleDurableTopicTest.java

Modified: activemq/trunk/activemq-core/src/test/java/org/apache/activemq/perf/PerfConsumer.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/perf/PerfConsumer.java?rev=656379&r1=656378&r2=656379&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/test/java/org/apache/activemq/perf/PerfConsumer.java (original)
+++ activemq/trunk/activemq-core/src/test/java/org/apache/activemq/perf/PerfConsumer.java Wed May 14 12:37:45 2008
@@ -38,15 +38,17 @@
     protected Connection connection;
     protected MessageConsumer consumer;
     protected long sleepDuration;
+    protected long initialDelay;
     protected boolean enableAudit = false;
     protected ActiveMQMessageAudit audit = new ActiveMQMessageAudit(16 * 1024,20);
+    protected boolean firstMessage =true;
 
     protected PerfRate rate = new PerfRate();
 
     public PerfConsumer(ConnectionFactory fac, Destination dest, String consumerName) throws JMSException {
         connection = fac.createConnection();
         connection.setClientID(consumerName);
-        Session s = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+        Session s = connection.createSession(false, Session.DUPS_OK_ACKNOWLEDGE);
         if (dest instanceof Topic && consumerName != null && consumerName.length() > 0) {
             consumer = s.createDurableSubscriber((Topic)dest, consumerName);
         } else {
@@ -77,6 +79,15 @@
     }
 
     public void onMessage(Message msg) {
+        if (firstMessage) {
+            firstMessage=false;
+            if (getInitialDelay() > 0) {
+                try {
+                    Thread.sleep(getInitialDelay());
+                } catch (InterruptedException e) {
+                }
+            }
+        }
         rate.increment();
         try {
             if (enableAudit && !this.audit.isInOrder(msg.getJMSMessageID())) {
@@ -112,4 +123,18 @@
     public void setEnableAudit(boolean doAudit) {
         this.enableAudit = doAudit;
     }
+
+    /**
+     * @return the initialDelay
+     */
+    public long getInitialDelay() {
+        return initialDelay;
+    }
+
+    /**
+     * @param initialDelay the initialDelay to set
+     */
+    public void setInitialDelay(long initialDelay) {
+        this.initialDelay = initialDelay;
+    }
 }

Modified: activemq/trunk/activemq-core/src/test/java/org/apache/activemq/perf/SimpleDurableTopicTest.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/perf/SimpleDurableTopicTest.java?rev=656379&r1=656378&r2=656379&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/test/java/org/apache/activemq/perf/SimpleDurableTopicTest.java (original)
+++ activemq/trunk/activemq-core/src/test/java/org/apache/activemq/perf/SimpleDurableTopicTest.java Wed May 14 12:37:45 2008
@@ -28,7 +28,7 @@
     
     protected void setUp() throws Exception {
         numberOfDestinations=1;
-        numberOfConsumers = 4;
+        numberOfConsumers = 1;
         numberofProducers = 1;
         sampleCount=1000;
         playloadSize = 1024;
@@ -41,7 +41,9 @@
     }
 
     protected PerfConsumer createConsumer(ConnectionFactory fac, Destination dest, int number) throws JMSException {
-        return new PerfConsumer(fac, dest, "subs:" + number);
+        PerfConsumer result = new PerfConsumer(fac, dest, "subs:" + number);
+        result.setInitialDelay(20000);
+        return result;
     }
 
 }