[jboss-cvs] JBoss Messaging SVN: r4141 - projects/jms-perf/src/java/jms.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Apr 30 12:52:09 EDT 2008


Author: jmesnil
Date: 2008-04-30 12:52:09 -0400 (Wed, 30 Apr 2008)
New Revision: 4141

Modified:
   projects/jms-perf/src/java/jms/ActiveMQPerfTest.java
   projects/jms-perf/src/java/jms/JBMessagingPerfTest.java
   projects/jms-perf/src/java/jms/JMSTestBase.java
   projects/jms-perf/src/java/jms/QpidPerfTest.java
Log:
added test for dups ok ack + different sessions for producer & consumer

Modified: projects/jms-perf/src/java/jms/ActiveMQPerfTest.java
===================================================================
--- projects/jms-perf/src/java/jms/ActiveMQPerfTest.java	2008-04-30 14:18:11 UTC (rev 4140)
+++ projects/jms-perf/src/java/jms/ActiveMQPerfTest.java	2008-04-30 16:52:09 UTC (rev 4141)
@@ -23,28 +23,46 @@
 
    // Public --------------------------------------------------------
 
+   public void testDupsOkAck_NonPersistent() throws Exception
+   {
+      Properties props = getActiveMQProperties();
+      sendAndReceiveManyMessages(props, Session.DUPS_OK_ACKNOWLEDGE,
+            DeliveryMode.NON_PERSISTENT);
+   }
+
    public void testAutoAck_NonPersistent() throws Exception
    {
       Properties props = getActiveMQProperties();
-      sendAndReceiveManyMessages(props, Session.AUTO_ACKNOWLEDGE, DeliveryMode.NON_PERSISTENT);
+      sendAndReceiveManyMessages(props, Session.AUTO_ACKNOWLEDGE,
+            DeliveryMode.NON_PERSISTENT);
    }
 
    public void testClientAck_NonPersistent() throws Exception
    {
       Properties props = getActiveMQProperties();
-      sendAndReceiveManyMessages(props, Session.CLIENT_ACKNOWLEDGE, DeliveryMode.NON_PERSISTENT);
+      sendAndReceiveManyMessages(props, Session.CLIENT_ACKNOWLEDGE,
+            DeliveryMode.NON_PERSISTENT);
    }
 
+   public void testDupsOkAck_Persistent() throws Exception
+   {
+      Properties props = getActiveMQProperties();
+      sendAndReceiveManyMessages(props, Session.DUPS_OK_ACKNOWLEDGE,
+            DeliveryMode.PERSISTENT);
+   }
+
    public void testAutoAck_Persistent() throws Exception
    {
       Properties props = getActiveMQProperties();
-      sendAndReceiveManyMessages(props, Session.AUTO_ACKNOWLEDGE, DeliveryMode.PERSISTENT);
+      sendAndReceiveManyMessages(props, Session.AUTO_ACKNOWLEDGE,
+            DeliveryMode.PERSISTENT);
    }
 
    public void testClientAck_Persistent() throws Exception
    {
       Properties props = getActiveMQProperties();
-      sendAndReceiveManyMessages(props, Session.CLIENT_ACKNOWLEDGE, DeliveryMode.PERSISTENT);
+      sendAndReceiveManyMessages(props, Session.CLIENT_ACKNOWLEDGE,
+            DeliveryMode.PERSISTENT);
    }
 
    // Package protected ---------------------------------------------

Modified: projects/jms-perf/src/java/jms/JBMessagingPerfTest.java
===================================================================
--- projects/jms-perf/src/java/jms/JBMessagingPerfTest.java	2008-04-30 14:18:11 UTC (rev 4140)
+++ projects/jms-perf/src/java/jms/JBMessagingPerfTest.java	2008-04-30 16:52:09 UTC (rev 4141)
@@ -23,28 +23,46 @@
 
    // Public --------------------------------------------------------
 
+   public void testDupsOkAck_NonPersistent() throws Exception
+   {
+      Properties props = getJBMessagingProperties();
+      sendAndReceiveManyMessages(props, Session.DUPS_OK_ACKNOWLEDGE,
+            DeliveryMode.NON_PERSISTENT);
+   }
+
    public void testAutoAck_NonPersistent() throws Exception
    {
       Properties props = getJBMessagingProperties();
-      sendAndReceiveManyMessages(props, Session.AUTO_ACKNOWLEDGE, DeliveryMode.NON_PERSISTENT);
+      sendAndReceiveManyMessages(props, Session.AUTO_ACKNOWLEDGE,
+            DeliveryMode.NON_PERSISTENT);
    }
 
    public void testClientAck_NonPersistent() throws Exception
    {
       Properties props = getJBMessagingProperties();
-      sendAndReceiveManyMessages(props, Session.CLIENT_ACKNOWLEDGE, DeliveryMode.NON_PERSISTENT);
+      sendAndReceiveManyMessages(props, Session.CLIENT_ACKNOWLEDGE,
+            DeliveryMode.NON_PERSISTENT);
    }
 
+   public void testDupsOkAck_Persistent() throws Exception
+   {
+      Properties props = getJBMessagingProperties();
+      sendAndReceiveManyMessages(props, Session.DUPS_OK_ACKNOWLEDGE,
+            DeliveryMode.PERSISTENT);
+   }
+
    public void testAutoAck_Persistent() throws Exception
    {
       Properties props = getJBMessagingProperties();
-      sendAndReceiveManyMessages(props, Session.AUTO_ACKNOWLEDGE, DeliveryMode.PERSISTENT);
+      sendAndReceiveManyMessages(props, Session.AUTO_ACKNOWLEDGE,
+            DeliveryMode.PERSISTENT);
    }
 
    public void testClientAck_Persistent() throws Exception
    {
       Properties props = getJBMessagingProperties();
-      sendAndReceiveManyMessages(props, Session.CLIENT_ACKNOWLEDGE, DeliveryMode.PERSISTENT);
+      sendAndReceiveManyMessages(props, Session.CLIENT_ACKNOWLEDGE,
+            DeliveryMode.PERSISTENT);
    }
 
    // Package protected ---------------------------------------------

Modified: projects/jms-perf/src/java/jms/JMSTestBase.java
===================================================================
--- projects/jms-perf/src/java/jms/JMSTestBase.java	2008-04-30 14:18:11 UTC (rev 4140)
+++ projects/jms-perf/src/java/jms/JMSTestBase.java	2008-04-30 16:52:09 UTC (rev 4141)
@@ -151,15 +151,16 @@
       conn.start();
       info("started connection");
 
-      Session session = conn.createSession(false, ackMode);
-      info("created session");
-      // assertQueueIsEmpty(session, queue);
-
-      MessageConsumer consumer = session.createConsumer(queue);
-      MessageProducer producer = session.createProducer(queue);
+      Session consumerSession = conn.createSession(false, ackMode);
+      Session producerSession = conn.createSession(false, ackMode);
+      info("created consumer session");
+      
+      MessageConsumer consumer = consumerSession.createConsumer(queue);
+      MessageProducer producer = producerSession.createProducer(queue);
       producer.setDeliveryMode(deliveryMode);
 
-      warmup(producer, consumer, session.createMessage(), ackMode);
+      vacuumQueue(consumer, ackMode);
+      warmup(producer, consumer, producerSession.createMessage(), ackMode);
       
       final AtomicLong receivedCount = new AtomicLong(0);
 
@@ -184,7 +185,7 @@
          }
       });
 
-      Message message = session.createTextMessage(TEXT);
+      Message message = producerSession.createTextMessage(TEXT);
 
       long sentCount = 0;
       while((System.currentTimeMillis() - start) < DURATION)
@@ -200,7 +201,6 @@
       }
 
       assertEquals(sentCount, receivedCount.longValue());
-      //assertQueueIsEmpty(session, queue);
 
       long duration = System.currentTimeMillis() - start;
       display(sentCount, receivedCount.longValue(), duration);
@@ -215,12 +215,24 @@
 
    // Private -------------------------------------------------------
 
+   private void vacuumQueue(MessageConsumer consumer, int ackMode) throws Exception
+   {
+      Message m;
+      do
+      {
+         m = consumer.receive(1000);
+         if (m != null && ackMode == Session.CLIENT_ACKNOWLEDGE)
+            m.acknowledge();
+      } while (m != null);
+      info("queue is vacuumed");
+   }
+
    private void warmup(MessageProducer producer, MessageConsumer consumer, Message message, int ackMode) throws JMSException
    {
       for (int i = 0; i < MESSAGES_WARMUP; i++)
       {
          producer.send(message);
-         Message m = consumer.receive(1000);
+         Message m = consumer.receive(10000);
          assertNotNull(m);
          if (ackMode == Session.CLIENT_ACKNOWLEDGE)
             m.acknowledge();
@@ -230,22 +242,10 @@
 
    private void info(String info)
    {
-      if (true)
+      if (false)
          System.out.println(info);
    }
 
-   private void assertQueueIsEmpty(Session session, Queue queue) throws Exception
-   {
-      QueueBrowser browser = session.createBrowser(queue);
-      Enumeration enumeration = browser.getEnumeration();
-      if (enumeration.hasMoreElements())
-      {
-         fail(queue + "is not empty");
-      }
-      browser.close();
-      info(queue + " is empty");
-   }
-
    private void display(long requestCount, long responseCount, long periodInMs)
    {
       String name = getName().replace("test", "").replace('_', ' ');

Modified: projects/jms-perf/src/java/jms/QpidPerfTest.java
===================================================================
--- projects/jms-perf/src/java/jms/QpidPerfTest.java	2008-04-30 14:18:11 UTC (rev 4140)
+++ projects/jms-perf/src/java/jms/QpidPerfTest.java	2008-04-30 16:52:09 UTC (rev 4141)
@@ -23,30 +23,48 @@
 
    // Public --------------------------------------------------------
 
+   public void testDupsOkAck_NonPersistent() throws Exception
+   {
+      Properties props = getQpidProperties();
+      sendAndReceiveManyMessages(props, Session.DUPS_OK_ACKNOWLEDGE,
+            DeliveryMode.NON_PERSISTENT);
+   }
+
    public void testAutoAck_NonPersistent() throws Exception
    {
       Properties props = getQpidProperties();
-      sendAndReceiveManyMessages(props, Session.AUTO_ACKNOWLEDGE, DeliveryMode.NON_PERSISTENT);
+      sendAndReceiveManyMessages(props, Session.AUTO_ACKNOWLEDGE,
+            DeliveryMode.NON_PERSISTENT);
    }
 
    public void testClientAck_NonPersistent() throws Exception
    {
       Properties props = getQpidProperties();
-      sendAndReceiveManyMessages(props, Session.CLIENT_ACKNOWLEDGE, DeliveryMode.NON_PERSISTENT);      
+      sendAndReceiveManyMessages(props, Session.CLIENT_ACKNOWLEDGE,
+            DeliveryMode.NON_PERSISTENT);
    }
 
+   public void testDupsOkAck_Persistent() throws Exception
+   {
+      Properties props = getQpidProperties();
+      sendAndReceiveManyMessages(props, Session.DUPS_OK_ACKNOWLEDGE,
+            DeliveryMode.PERSISTENT);
+   }
+
    public void testAutoAck_Persistent() throws Exception
    {
       Properties props = getQpidProperties();
-      sendAndReceiveManyMessages(props, Session.AUTO_ACKNOWLEDGE, DeliveryMode.PERSISTENT);
+      sendAndReceiveManyMessages(props, Session.AUTO_ACKNOWLEDGE,
+            DeliveryMode.PERSISTENT);
    }
 
    public void testClientAck_Persistent() throws Exception
    {
       Properties props = getQpidProperties();
-      sendAndReceiveManyMessages(props, Session.CLIENT_ACKNOWLEDGE, DeliveryMode.PERSISTENT);
+      sendAndReceiveManyMessages(props, Session.CLIENT_ACKNOWLEDGE,
+            DeliveryMode.PERSISTENT);
    }
-   
+
    // Package protected ---------------------------------------------
 
    // Protected -----------------------------------------------------




More information about the jboss-cvs-commits mailing list