[jboss-cvs] JBoss Messaging SVN: r6186 - trunk/tests/src/org/jboss/messaging/tests/integration/client.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Mar 26 17:34:52 EDT 2009
Author: clebert.suconic at jboss.com
Date: 2009-03-26 17:34:52 -0400 (Thu, 26 Mar 2009)
New Revision: 6186
Modified:
trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientConsumerWindowSizeTest.java
Log:
Adding slowConsumerTest
Modified: trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientConsumerWindowSizeTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientConsumerWindowSizeTest.java 2009-03-26 19:48:44 UTC (rev 6185)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientConsumerWindowSizeTest.java 2009-03-26 21:34:52 UTC (rev 6186)
@@ -26,6 +26,8 @@
import org.jboss.messaging.core.client.ClientProducer;
import org.jboss.messaging.core.client.ClientSession;
import org.jboss.messaging.core.client.ClientSessionFactory;
+import org.jboss.messaging.core.client.impl.ClientConsumerImpl;
+import org.jboss.messaging.core.client.impl.ClientConsumerInternal;
import org.jboss.messaging.core.server.MessagingService;
import org.jboss.messaging.core.server.Queue;
import org.jboss.messaging.tests.util.ServiceTestBase;
@@ -46,8 +48,6 @@
private final SimpleString groupTestQ = new SimpleString("testGroupQueue");
-
-
/*
* tests send window size. we do this by having 2 receivers on the q. since we roundrobin the consumer for delivery we
* know if consumer 1 has received n messages then consumer 2 must have also have received n messages or at least up
@@ -101,4 +101,159 @@
}
}
}
+
+ public void testSlowConsumer() throws Exception
+ {
+ MessagingService service = createService(false);
+
+ ClientSession sessionNotUsed = null;
+ ClientSession session = null;
+
+ try
+ {
+ final int numberOfMessages = 100;
+
+ service.start();
+
+ ClientSessionFactory sf = createInVMFactory();
+ sf.setConsumerWindowSize(1);
+
+ session = sf.createSession(false, true, true);
+
+ SimpleString ADDRESS = new SimpleString("some-queue");
+
+ session.createQueue(ADDRESS, ADDRESS, true);
+
+ sessionNotUsed = sf.createSession(false, true, true);
+ sessionNotUsed.start();
+
+ session.start();
+
+ ClientConsumer consNeverUsed = sessionNotUsed.createConsumer(ADDRESS);
+
+ ClientConsumer cons1 = session.createConsumer(ADDRESS);
+
+ ClientProducer prod = session.createProducer(ADDRESS);
+
+ for (int i = 0; i < numberOfMessages; i++)
+ {
+ prod.send(createTextMessage(session, "Msg" + i));
+ }
+
+ session.commit();
+
+ for (int i = 0; i < numberOfMessages -1; i++)
+ {
+ ClientMessage msg = cons1.receive(1000);
+ assertNotNull("expected message at i = " + i, msg);
+ msg.acknowledge();
+ }
+
+ ClientMessage msg = consNeverUsed.receive(500);
+ assertNotNull(msg);
+ msg.acknowledge();
+ sessionNotUsed.commit();
+
+ session.commit();
+
+ assertEquals(0, getMessageCount(service, ADDRESS.toString()));
+
+ }
+ finally
+ {
+ try
+ {
+ if (session != null)
+ session.close();
+ if (sessionNotUsed != null)
+ sessionNotUsed.close();
+ }
+ catch (Exception ignored)
+ {
+ }
+
+ if (service.isStarted())
+ {
+ service.stop();
+ }
+ }
+ }
+
+ public void testDeleteme() throws Exception
+ {
+ MessagingService service = createService(false);
+
+ ClientSession sessionNotUsed = null;
+ ClientSession session = null;
+
+ try
+ {
+ final int numberOfMessages = 100;
+
+ service.start();
+
+ ClientSessionFactory sf = createInVMFactory();
+ sf.setConsumerWindowSize(1);
+
+ session = sf.createSession(false, true, true);
+
+ SimpleString ADDRESS = new SimpleString("some-queue");
+
+ session.createQueue(ADDRESS, ADDRESS, true);
+
+ sessionNotUsed = sf.createSession(false, true, true);
+ sessionNotUsed.start();
+
+ session.start();
+
+ ClientConsumerInternal consNeverUsed = (ClientConsumerInternal)sessionNotUsed.createConsumer(ADDRESS);
+ // ClientConsumer consNeverUsed = sessionNotUsed.createConsumer(ADDRESS, null, -1, -1, false);
+
+ ClientConsumerInternal cons1 = (ClientConsumerInternal)session.createConsumer(ADDRESS);
+
+ ClientProducer prod = session.createProducer(ADDRESS);
+
+ for (int i = 0; i < numberOfMessages; i++)
+ {
+ prod.send(createTextMessage(session, "Msg" + i));
+ }
+
+ session.commit();
+
+ Thread.sleep(1000);
+
+ for (int i = 0; i < numberOfMessages; i++)
+ {
+ System.out.println("cons1:" + cons1.getBufferSize());
+ System.out.println("consNeverUsed:" + consNeverUsed.getBufferSize());
+
+ ClientMessage msg = cons1.receive(1000);
+ assertNotNull("expected message at i = " + i, msg);
+ msg.acknowledge();
+ }
+
+ session.commit();
+
+ // assertEquals(0, getMessageCount(service, ADDRESS.toString()));
+
+ }
+ finally
+ {
+ try
+ {
+ if (session != null)
+ session.close();
+ if (sessionNotUsed != null)
+ sessionNotUsed.close();
+ }
+ catch (Exception ignored)
+ {
+ }
+
+ if (service.isStarted())
+ {
+ service.stop();
+ }
+ }
+ }
}
More information about the jboss-cvs-commits
mailing list