use of org.apache.activemq.artemis.api.core.ActiveMQNonExistentQueueException in project activemq-artemis by apache.
the class ClusteredGroupingTest method test3serversLocalGoesDown.
@Test
@BMRules(rules = { @BMRule(name = "blow-up", targetClass = "org.apache.activemq.artemis.core.server.group.impl.RemoteGroupingHandler", targetMethod = "onNotification", targetLocation = "ENTRY", action = "org.apache.activemq.artemis.tests.extras.byteman.ClusteredGroupingTest.pause2($1);"), @BMRule(name = "blow-up2", targetClass = "org.apache.activemq.artemis.core.server.group.impl.RemoteGroupingHandler", targetMethod = "remove", targetLocation = "ENTRY", action = "org.apache.activemq.artemis.tests.extras.byteman.ClusteredGroupingTest.restart2();") })
public void test3serversLocalGoesDown() throws Exception {
setupServer(0, isFileStorage(), isNetty());
setupServer(1, isFileStorage(), isNetty());
setupServer(2, isFileStorage(), isNetty());
setupClusterConnection("cluster0", "queues", MessageLoadBalancingType.ON_DEMAND, 1, -1, 500, isNetty(), 0, 1, 2);
setupClusterConnection("cluster1", "queues", MessageLoadBalancingType.ON_DEMAND, 1, -1, 500, isNetty(), 1, 0, 2);
setupClusterConnection("cluster2", "queues", MessageLoadBalancingType.ON_DEMAND, 1, -1, 500, isNetty(), 2, 0, 1);
setUpGroupHandler(GroupingHandlerConfiguration.TYPE.LOCAL, 0);
setUpGroupHandler(GroupingHandlerConfiguration.TYPE.REMOTE, 1);
setUpGroupHandler(GroupingHandlerConfiguration.TYPE.REMOTE, 2);
startServers(0, 1, 2);
setupSessionFactory(0, isNetty());
setupSessionFactory(1, isNetty());
setupSessionFactory(2, isNetty());
createQueue(0, "queues.testaddress", "queue0", null, true);
createQueue(1, "queues.testaddress", "queue0", null, true);
createQueue(2, "queues.testaddress", "queue0", null, true);
addConsumer(0, 2, "queue0", null);
waitForBindings(0, "queues.testaddress", 1, 0, true);
waitForBindings(1, "queues.testaddress", 1, 0, true);
waitForBindings(2, "queues.testaddress", 1, 1, true);
waitForBindings(0, "queues.testaddress", 2, 1, false);
waitForBindings(1, "queues.testaddress", 2, 1, false);
waitForBindings(2, "queues.testaddress", 2, 0, false);
sendWithProperty(1, "queues.testaddress", 1, true, Message.HDR_GROUP_ID, new SimpleString("id1"));
latch = new CountDownLatch(1);
latch2 = new CountDownLatch(1);
main = Thread.currentThread();
crashAndWaitForFailure(getServer(2));
assertTrue(latch2.await(20000, TimeUnit.MILLISECONDS));
try {
try {
sendWithProperty(1, "queues.testaddress", 1, true, Message.HDR_GROUP_ID, new SimpleString("id1"));
} catch (ActiveMQNonExistentQueueException e) {
fail("did not handle removal of queue");
}
} finally {
latch.countDown();
}
assertHandlersAreSame(getServer(0), getServer(1));
}
use of org.apache.activemq.artemis.api.core.ActiveMQNonExistentQueueException in project activemq-artemis by apache.
the class ClusteredGroupingTest method test2serversLocalGoesDown.
@Test
@BMRules(rules = { @BMRule(name = "blow-up", targetClass = "org.apache.activemq.artemis.core.server.group.impl.LocalGroupingHandler", targetMethod = "removeGrouping", targetLocation = "ENTRY", action = "org.apache.activemq.artemis.tests.extras.byteman.ClusteredGroupingTest.pause($1);"), @BMRule(name = "blow-up2", targetClass = "org.apache.activemq.artemis.core.server.group.impl.GroupHandlingAbstract", targetMethod = "forceRemove", targetLocation = "ENTRY", action = "org.apache.activemq.artemis.tests.extras.byteman.ClusteredGroupingTest.restart2();") })
public void test2serversLocalGoesDown() throws Exception {
setupServer(0, isFileStorage(), isNetty());
setupServer(1, isFileStorage(), isNetty());
setupClusterConnection("cluster0", "queues", MessageLoadBalancingType.ON_DEMAND, 1, -1, 500, isNetty(), 0, 1);
setupClusterConnection("cluster1", "queues", MessageLoadBalancingType.ON_DEMAND, 1, -1, 500, isNetty(), 1, 0);
setUpGroupHandler(GroupingHandlerConfiguration.TYPE.LOCAL, 0);
setUpGroupHandler(GroupingHandlerConfiguration.TYPE.REMOTE, 1);
startServers(0, 1);
setupSessionFactory(0, isNetty());
setupSessionFactory(1, isNetty());
createQueue(0, "queues.testaddress", "queue0", null, true);
createQueue(1, "queues.testaddress", "queue0", null, true);
addConsumer(0, 1, "queue0", null);
waitForBindings(0, "queues.testaddress", 1, 0, true);
waitForBindings(1, "queues.testaddress", 1, 1, true);
waitForBindings(0, "queues.testaddress", 1, 1, false);
waitForBindings(1, "queues.testaddress", 1, 0, false);
sendWithProperty(0, "queues.testaddress", 1, true, Message.HDR_GROUP_ID, new SimpleString("id1"));
latch = new CountDownLatch(1);
latch2 = new CountDownLatch(1);
crashAndWaitForFailure(getServer(1));
assertTrue(latch2.await(20000, TimeUnit.MILLISECONDS));
try {
try {
sendWithProperty(0, "queues.testaddress", 1, true, Message.HDR_GROUP_ID, new SimpleString("id1"));
} catch (ActiveMQNonExistentQueueException e) {
fail("did not handle removal of queue");
}
} finally {
latch.countDown();
}
}
Aggregations