[jboss-cvs] JBoss Messaging SVN: r5261 - branches/Branch_1_4/tests/src/org/jboss/test/messaging/jms.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Nov 4 12:35:18 EST 2008
Author: clebert.suconic at jboss.com
Date: 2008-11-04 12:35:17 -0500 (Tue, 04 Nov 2008)
New Revision: 5261
Modified:
branches/Branch_1_4/tests/src/org/jboss/test/messaging/jms/ScheduledDeliveryTest.java
Log:
Timing tweak
Modified: branches/Branch_1_4/tests/src/org/jboss/test/messaging/jms/ScheduledDeliveryTest.java
===================================================================
--- branches/Branch_1_4/tests/src/org/jboss/test/messaging/jms/ScheduledDeliveryTest.java 2008-11-04 17:30:17 UTC (rev 5260)
+++ branches/Branch_1_4/tests/src/org/jboss/test/messaging/jms/ScheduledDeliveryTest.java 2008-11-04 17:35:17 UTC (rev 5261)
@@ -51,45 +51,45 @@
// Constructors --------------------------------------------------
- public ScheduledDeliveryTest(String name)
+ public ScheduledDeliveryTest(final String name)
{
super(name);
}
// Public --------------------------------------------------------
-
+
public void testScheduledDeliveryTX() throws Exception
{
- scheduledDelivery(true);
+ scheduledDelivery(true);
}
-
+
public void testScheduledDeliveryNoTX() throws Exception
{
- scheduledDelivery(false);
+ scheduledDelivery(false);
}
-
+
public void testScheduledDeliveryWithRestart() throws Exception
{
Connection conn = null;
-
+
try
{
conn = cf.createConnection();
-
+
Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
-
+
MessageProducer prod = sess.createProducer(queue1);
-
- //Send one scheduled
-
+
+ // Send one scheduled
+
long now = System.currentTimeMillis();
-
- TextMessage tm1 = sess.createTextMessage("testScheduled1");
+
+ TextMessage tm1 = sess.createTextMessage("testScheduled1");
tm1.setLongProperty(JBossMessage.JMS_JBOSS_SCHEDULED_DELIVERY_PROP_NAME, now + 7000);
prod.send(tm1);
-
- //First send some non scheduled messages
-
+
+ // First send some non scheduled messages
+
TextMessage tm2 = sess.createTextMessage("testScheduled2");
prod.send(tm2);
@@ -99,114 +99,109 @@
TextMessage tm4 = sess.createTextMessage("testScheduled4");
prod.send(tm4);
-
- //Now send some more scheduled messages
-
- TextMessage tm5 = sess.createTextMessage("testScheduled5");
+ // Now send some more scheduled messages
+
+ TextMessage tm5 = sess.createTextMessage("testScheduled5");
tm5.setLongProperty(JBossMessage.JMS_JBOSS_SCHEDULED_DELIVERY_PROP_NAME, now + 5000);
prod.send(tm5);
-
- TextMessage tm6 = sess.createTextMessage("testScheduled6");
+
+ TextMessage tm6 = sess.createTextMessage("testScheduled6");
tm6.setLongProperty(JBossMessage.JMS_JBOSS_SCHEDULED_DELIVERY_PROP_NAME, now + 4000);
prod.send(tm6);
-
- TextMessage tm7 = sess.createTextMessage("testScheduled7");
+
+ TextMessage tm7 = sess.createTextMessage("testScheduled7");
tm7.setLongProperty(JBossMessage.JMS_JBOSS_SCHEDULED_DELIVERY_PROP_NAME, now + 3000);
prod.send(tm7);
- TextMessage tm8 = sess.createTextMessage("testScheduled8");
+ TextMessage tm8 = sess.createTextMessage("testScheduled8");
tm8.setLongProperty(JBossMessage.JMS_JBOSS_SCHEDULED_DELIVERY_PROP_NAME, now + 6000);
prod.send(tm8);
- //And one scheduled with a -ve number
-
- TextMessage tm9 = sess.createTextMessage("testScheduled9");
+ // And one scheduled with a -ve number
+
+ TextMessage tm9 = sess.createTextMessage("testScheduled9");
tm8.setLongProperty(JBossMessage.JMS_JBOSS_SCHEDULED_DELIVERY_PROP_NAME, -3);
prod.send(tm9);
-
- //Now stop the server and restart it
-
+
+ // Now stop the server and restart it
+
conn.close();
ServerManagement.stopServerPeer();
-
+
ServerManagement.startServerPeer();
-
+
// Messaging server restart implies new ConnectionFactory lookup
deployAndLookupAdministeredObjects();
-
+
conn = cf.createConnection();
-
+
conn.start();
-
+
sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
-
+
MessageConsumer cons = sess.createConsumer(queue1);
-
+
forceGC();
- //First the non scheduled messages should be received
+ // First the non scheduled messages should be received
- TextMessage rm1 = (TextMessage)cons.receive(250);
- assertNotNull(rm1);
+ TextMessage rm1 = (TextMessage)cons.receive(250);
+ assertNotNull(rm1);
assertEquals(tm2.getText(), rm1.getText());
-
+
TextMessage rm2 = (TextMessage)cons.receive(250);
- assertNotNull(rm2);
+ assertNotNull(rm2);
assertEquals(tm3.getText(), rm2.getText());
-
+
TextMessage rm3 = (TextMessage)cons.receive(250);
- assertNotNull(rm3);
+ assertNotNull(rm3);
assertEquals(tm4.getText(), rm3.getText());
-
- //Now the one with a scheduled with a -ve number
+
+ // Now the one with a scheduled with a -ve number
TextMessage rm5 = (TextMessage)cons.receive(250);
- assertNotNull(rm5);
+ assertNotNull(rm5);
assertEquals(tm9.getText(), rm5.getText());
-
- //Now the scheduled
- TextMessage rm6 = (TextMessage)cons.receive(3250);
- assertNotNull(rm6);
+
+ // Now the scheduled
+ TextMessage rm6 = (TextMessage)cons.receive(3250);
+ assertNotNull(rm6);
assertEquals(tm7.getText(), rm6.getText());
-
+
long now2 = System.currentTimeMillis();
-
+
assertTrue(now2 - now >= 3000);
-
-
- TextMessage rm7 = (TextMessage)cons.receive(1250);
- assertNotNull(rm7);
+
+ TextMessage rm7 = (TextMessage)cons.receive(1250);
+ assertNotNull(rm7);
assertEquals(tm6.getText(), rm7.getText());
-
+
now2 = System.currentTimeMillis();
-
+
assertTrue(now2 - now >= 4000);
-
-
- TextMessage rm8 = (TextMessage)cons.receive(1250);
- assertNotNull(rm8);
+
+ TextMessage rm8 = (TextMessage)cons.receive(1250);
+ assertNotNull(rm8);
assertEquals(tm5.getText(), rm8.getText());
-
+
now2 = System.currentTimeMillis();
-
+
assertTrue(now2 - now >= 5000);
-
-
- TextMessage rm9 = (TextMessage)cons.receive(1250);
- assertNotNull(rm9);
+
+ TextMessage rm9 = (TextMessage)cons.receive(1250);
+ assertNotNull(rm9);
assertEquals(tm8.getText(), rm9.getText());
-
+
now2 = System.currentTimeMillis();
-
+
assertTrue(now2 - now >= 6000);
-
-
- TextMessage rm10 = (TextMessage)cons.receive(1250);
- assertNotNull(rm10);
+
+ TextMessage rm10 = (TextMessage)cons.receive(1250);
+ assertNotNull(rm10);
assertEquals(tm1.getText(), rm10.getText());
-
+
now2 = System.currentTimeMillis();
-
+
assertTrue(now2 - now >= 7000);
}
finally
@@ -215,247 +210,254 @@
{
conn.close();
}
- }
+ }
}
-
+
public void testDelayedRedeliveryDefault() throws Exception
- {
+ {
ObjectName serverPeerObjectName = ServerManagement.getServerPeerObjectName();
-
- try
- {
- ObjectName queueObjectName = new ObjectName("jboss.messaging.destination:service=Queue,name=Queue1");
-
- ServerManagement.setAttribute(queueObjectName, "RedeliveryDelay", "-1");
-
- long delay = 3000;
-
- ServerManagement.setAttribute(serverPeerObjectName, "DefaultRedeliveryDelay", String.valueOf(delay));
-
- this.delayedRedeliveryDefaultOnClose(delay);
-
- this.delayedRedeliveryDefaultOnRollback(delay);
- }
- finally
- {
- ServerManagement.setAttribute(serverPeerObjectName, "DefaultRedeliveryDelay", "0");
-
- removeAllMessages(queue1.getQueueName(), true, 0);
- }
+
+ try
+ {
+ ObjectName queueObjectName = new ObjectName("jboss.messaging.destination:service=Queue,name=Queue1");
+
+ ServerManagement.setAttribute(queueObjectName, "RedeliveryDelay", "-1");
+
+ long delay = 3000;
+
+ ServerManagement.setAttribute(serverPeerObjectName, "DefaultRedeliveryDelay", String.valueOf(delay));
+
+ delayedRedeliveryDefaultOnClose(delay);
+
+ delayedRedeliveryDefaultOnRollback(delay);
+ }
+ finally
+ {
+ ServerManagement.setAttribute(serverPeerObjectName, "DefaultRedeliveryDelay", "0");
+
+ removeAllMessages(queue1.getQueueName(), true, 0);
+ }
}
-
+
public void testDelayedRedeliveryOverride() throws Exception
- {
- ObjectName serverPeerObjectName = ServerManagement.getServerPeerObjectName();
-
- ObjectName queueObjectName = new ObjectName("jboss.messaging.destination:service=Queue,name=Queue1");
-
- try
- {
- long delay = 6000;
-
- ServerManagement.setAttribute(queueObjectName, "RedeliveryDelay", String.valueOf(delay));
-
- ServerManagement.setAttribute(serverPeerObjectName, "DefaultRedeliveryDelay", "3000");
-
- this.delayedRedeliveryDefaultOnClose(delay);
-
- this.delayedRedeliveryDefaultOnRollback(delay);
- }
- finally
- {
- ServerManagement.setAttribute(serverPeerObjectName, "DefaultRedeliveryDelay", "0");
-
- ServerManagement.setAttribute(queueObjectName, "RedeliveryDelay", "-1");
-
- removeAllMessages(queue1.getQueueName(), true, 0);
- }
+ {
+ ObjectName serverPeerObjectName = ServerManagement.getServerPeerObjectName();
+
+ ObjectName queueObjectName = new ObjectName("jboss.messaging.destination:service=Queue,name=Queue1");
+
+ try
+ {
+ long delay = 6000;
+
+ ServerManagement.setAttribute(queueObjectName, "RedeliveryDelay", String.valueOf(delay));
+
+ ServerManagement.setAttribute(serverPeerObjectName, "DefaultRedeliveryDelay", "3000");
+
+ delayedRedeliveryDefaultOnClose(delay);
+
+ delayedRedeliveryDefaultOnRollback(delay);
+ }
+ finally
+ {
+ ServerManagement.setAttribute(serverPeerObjectName, "DefaultRedeliveryDelay", "0");
+
+ ServerManagement.setAttribute(queueObjectName, "RedeliveryDelay", "-1");
+
+ removeAllMessages(queue1.getQueueName(), true, 0);
+ }
}
-
-
+
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
+ @Override
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+ // This is a time sensitive test.. trying to minimize GC effects on the test
+ forceGC();
+ }
+
+ @Override
protected void tearDown() throws Exception
{
super.tearDown();
// Some tests here are changing this attribute.. what would affect tests later
// Instead of restart the ServerPeer I'm just restoring the default
- ServerManagement.setAttribute(ServerManagement.getServerPeerObjectName(),
- "DefaultRedeliveryDelay", "0");
+ ServerManagement.setAttribute(ServerManagement.getServerPeerObjectName(), "DefaultRedeliveryDelay", "0");
}
// Private -------------------------------------------------------
-
- private void delayedRedeliveryDefaultOnClose(long delay) throws Exception
- {
- Connection conn = null;
-
+
+ private void delayedRedeliveryDefaultOnClose(final long delay) throws Exception
+ {
+ Connection conn = null;
+
try
- {
+ {
conn = cf.createConnection();
-
+
Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
-
+
MessageProducer prod = sess.createProducer(queue1);
-
+
final int NUM_MESSAGES = 5;
forceGC();
-
+
for (int i = 0; i < NUM_MESSAGES; i++)
{
TextMessage tm = sess.createTextMessage("message" + i);
-
+
prod.send(tm);
}
Session sess2 = conn.createSession(false, Session.CLIENT_ACKNOWLEDGE);
-
+
MessageConsumer cons = sess2.createConsumer(queue1);
-
+
conn.start();
-
+
for (int i = 0; i < NUM_MESSAGES; i++)
{
TextMessage tm = (TextMessage)cons.receive(500);
-
+
assertNotNull(tm);
-
+
assertEquals("message" + i, tm.getText());
}
-
- //Now close the session
- //This should cancel back to the queue with a delayed redelivery
-
+
+ // Now close the session
+ // This should cancel back to the queue with a delayed redelivery
+
long now = System.currentTimeMillis();
-
+
sess2.close();
-
+
Session sess3 = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
-
+
MessageConsumer cons2 = sess3.createConsumer(queue1);
-
+
for (int i = 0; i < NUM_MESSAGES; i++)
{
TextMessage tm = (TextMessage)cons2.receive(delay + 1000);
-
+
assertNotNull(tm);
long time = System.currentTimeMillis();
-
+
assertTrue(time - now >= delay);
- //Hudson can introduce a large degree of indeterminism
- assertTrue((time - now) + ">" + (delay + 1000), time - now < delay + 1000);
- }
+ // Hudson can introduce a large degree of indeterminism
+ assertTrue(time - now + ">" + (delay + 1000), time - now < delay + 1000);
+ }
}
finally
{
if (conn != null)
{
conn.close();
- }
+ }
}
}
-
- private void delayedRedeliveryDefaultOnRollback(long delay) throws Exception
- {
- Connection conn = null;
-
- try
- {
- conn = cf.createConnection();
- Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ private void delayedRedeliveryDefaultOnRollback(final long delay) throws Exception
+ {
+ Connection conn = null;
- MessageProducer prod = sess.createProducer(queue1);
+ try
+ {
+ conn = cf.createConnection();
- final int NUM_MESSAGES = 5;
+ Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
- for (int i = 0; i < NUM_MESSAGES; i++)
- {
- TextMessage tm = sess.createTextMessage("message" + i);
+ MessageProducer prod = sess.createProducer(queue1);
- prod.send(tm);
- }
+ final int NUM_MESSAGES = 5;
- Session sess2 = conn.createSession(true, Session.SESSION_TRANSACTED);
+ for (int i = 0; i < NUM_MESSAGES; i++)
+ {
+ TextMessage tm = sess.createTextMessage("message" + i);
- MessageConsumer cons = sess2.createConsumer(queue1);
+ prod.send(tm);
+ }
- conn.start();
-
- for (int i = 0; i < NUM_MESSAGES; i++)
- {
- TextMessage tm = (TextMessage)cons.receive(500);
+ Session sess2 = conn.createSession(true, Session.SESSION_TRANSACTED);
- assertNotNull(tm);
+ MessageConsumer cons = sess2.createConsumer(queue1);
- assertEquals("message" + i, tm.getText());
- }
+ conn.start();
- //Now rollback
+ for (int i = 0; i < NUM_MESSAGES; i++)
+ {
+ TextMessage tm = (TextMessage)cons.receive(500);
- long now = System.currentTimeMillis();
-
- sess2.rollback();
-
- //This should redeliver with a delayed redelivery
-
- for (int i = 0; i < NUM_MESSAGES; i++)
- {
- TextMessage tm = (TextMessage)cons.receive(delay + 1000);
+ assertNotNull(tm);
- assertNotNull(tm);
+ assertEquals("message" + i, tm.getText());
+ }
- long time = System.currentTimeMillis();
+ // Now rollback
- assertTrue(time - now >= delay);
-
- //Hudson can introduce a large degree of indeterminism
- assertTrue((time - now) + ">" + (delay + 1000), time - now < delay + 1000);
+ long now = System.currentTimeMillis();
+
+ sess2.rollback();
+
+ // This should redeliver with a delayed redelivery
+
+ for (int i = 0; i < NUM_MESSAGES; i++)
+ {
+ TextMessage tm = (TextMessage)cons.receive(delay + 1000);
+
+ assertNotNull(tm);
+
+ long time = System.currentTimeMillis();
+
+ assertTrue(time - now >= delay);
+
+ // Hudson can introduce a large degree of indeterminism
+ assertTrue(time - now + ">" + (delay + 1000), time - now < delay + 1000);
}
-
- sess2.commit();
- }
- finally
- {
- if (conn != null)
- {
- conn.close();
- }
- }
+
+ sess2.commit();
+ }
+ finally
+ {
+ if (conn != null)
+ {
+ conn.close();
+ }
+ }
}
-
- private void scheduledDelivery(boolean tx) throws Exception
+
+ private void scheduledDelivery(final boolean tx) throws Exception
{
Connection conn = null;
-
+
try
{
conn = cf.createConnection();
-
+
Session sess = conn.createSession(tx, tx ? Session.SESSION_TRANSACTED : Session.AUTO_ACKNOWLEDGE);
-
+
MessageProducer prod = sess.createProducer(queue1);
-
+
MessageConsumer cons = sess.createConsumer(queue1);
-
+
conn.start();
-
- //Send one scheduled
-
+
+ // Send one scheduled
+
long now = System.currentTimeMillis();
-
- TextMessage tm1 = sess.createTextMessage("testScheduled1");
+
+ TextMessage tm1 = sess.createTextMessage("testScheduled1");
tm1.setLongProperty(JBossMessage.JMS_JBOSS_SCHEDULED_DELIVERY_PROP_NAME, now + 7000);
prod.send(tm1);
-
- //First send some non scheduled messages
-
+
+ // First send some non scheduled messages
+
TextMessage tm2 = sess.createTextMessage("testScheduled2");
prod.send(tm2);
@@ -465,105 +467,99 @@
TextMessage tm4 = sess.createTextMessage("testScheduled4");
prod.send(tm4);
-
- //Now send some more scheduled messages
-
- TextMessage tm5 = sess.createTextMessage("testScheduled5");
+ // Now send some more scheduled messages
+
+ TextMessage tm5 = sess.createTextMessage("testScheduled5");
tm5.setLongProperty(JBossMessage.JMS_JBOSS_SCHEDULED_DELIVERY_PROP_NAME, now + 5000);
prod.send(tm5);
-
- TextMessage tm6 = sess.createTextMessage("testScheduled6");
+
+ TextMessage tm6 = sess.createTextMessage("testScheduled6");
tm6.setLongProperty(JBossMessage.JMS_JBOSS_SCHEDULED_DELIVERY_PROP_NAME, now + 4000);
prod.send(tm6);
-
- TextMessage tm7 = sess.createTextMessage("testScheduled7");
+
+ TextMessage tm7 = sess.createTextMessage("testScheduled7");
tm7.setLongProperty(JBossMessage.JMS_JBOSS_SCHEDULED_DELIVERY_PROP_NAME, now + 3000);
prod.send(tm7);
- TextMessage tm8 = sess.createTextMessage("testScheduled8");
+ TextMessage tm8 = sess.createTextMessage("testScheduled8");
tm8.setLongProperty(JBossMessage.JMS_JBOSS_SCHEDULED_DELIVERY_PROP_NAME, now + 6000);
prod.send(tm8);
- //And one scheduled with a -ve number
-
- TextMessage tm9 = sess.createTextMessage("testScheduled9");
+ // And one scheduled with a -ve number
+
+ TextMessage tm9 = sess.createTextMessage("testScheduled9");
tm8.setLongProperty(JBossMessage.JMS_JBOSS_SCHEDULED_DELIVERY_PROP_NAME, -3);
prod.send(tm9);
-
+
if (tx)
{
- sess.commit();
+ sess.commit();
}
- //First the non scheduled messages should be received
+ // First the non scheduled messages should be received
forceGC();
-
TextMessage rm1 = (TextMessage)cons.receive(250);
- assertNotNull(rm1);
+ assertNotNull(rm1);
assertEquals(tm2.getText(), rm1.getText());
-
+
TextMessage rm2 = (TextMessage)cons.receive(250);
- assertNotNull(rm2);
+ assertNotNull(rm2);
assertEquals(tm3.getText(), rm2.getText());
-
+
TextMessage rm3 = (TextMessage)cons.receive(250);
- assertNotNull(rm3);
+ assertNotNull(rm3);
assertEquals(tm4.getText(), rm3.getText());
-
- //Now the one with a scheduled with a -ve number
+
+ // Now the one with a scheduled with a -ve number
TextMessage rm5 = (TextMessage)cons.receive(250);
- assertNotNull(rm5);
+ assertNotNull(rm5);
assertEquals(tm9.getText(), rm5.getText());
-
- //Now the scheduled
- TextMessage rm6 = (TextMessage)cons.receive(3250);
- assertNotNull(rm6);
+
+ // Now the scheduled
+ TextMessage rm6 = (TextMessage)cons.receive(3250);
+ assertNotNull(rm6);
assertEquals(tm7.getText(), rm6.getText());
-
+
long now2 = System.currentTimeMillis();
-
+
assertTrue(now2 - now >= 3000);
-
-
- TextMessage rm7 = (TextMessage)cons.receive(1250);
- assertNotNull(rm7);
+
+ TextMessage rm7 = (TextMessage)cons.receive(1250);
+ assertNotNull(rm7);
assertEquals(tm6.getText(), rm7.getText());
-
+
now2 = System.currentTimeMillis();
-
+
assertTrue(now2 - now >= 4000);
-
-
- TextMessage rm8 = (TextMessage)cons.receive(1250);
- assertNotNull(rm8);
+
+ TextMessage rm8 = (TextMessage)cons.receive(1250);
+ assertNotNull(rm8);
assertEquals(tm5.getText(), rm8.getText());
-
+
now2 = System.currentTimeMillis();
-
+
assertTrue(now2 - now >= 5000);
-
-
- TextMessage rm9 = (TextMessage)cons.receive(1250);
- assertNotNull(rm9);
+
+ TextMessage rm9 = (TextMessage)cons.receive(1250);
+ assertNotNull(rm9);
assertEquals(tm8.getText(), rm9.getText());
-
+
now2 = System.currentTimeMillis();
-
+
assertTrue(now2 - now >= 6000);
-
-
- TextMessage rm10 = (TextMessage)cons.receive(1250);
- assertNotNull(rm10);
+
+ TextMessage rm10 = (TextMessage)cons.receive(1250);
+ assertNotNull(rm10);
assertEquals(tm1.getText(), rm10.getText());
-
+
now2 = System.currentTimeMillis();
-
+
assertTrue(now2 - now >= 7000);
-
+
if (tx)
{
- sess.commit();
+ sess.commit();
}
}
finally
@@ -572,9 +568,9 @@
{
conn.close();
}
- }
+ }
}
// Inner classes -------------------------------------------------
-
+
}
More information about the jboss-cvs-commits
mailing list