@Override protected void configureAddressSettings(Map<String, AddressSettings> addressSettingsMap) { addressSettingsMap.put("#", new AddressSettings().setAutoCreateQueues(false).setAutoCreateAddresses(false).setDeadLetterAddress(new SimpleString("ActiveMQ.DLQ")).setAutoCreateAddresses(true)); addressSettingsMap.put(lmDropAddress.toString(), new AddressSettings() .setMaxSizeBytes(15 * 1024 * 1024) .setAddressFullMessagePolicy(AddressFullMessagePolicy.DROP) .setMessageCounterHistoryDayLimit(10) .setRedeliveryDelay(0) .setMaxDeliveryAttempts(0)); }
/** * @param messageLoadBalancingType * @throws Exception */ protected void setServer(final MessageLoadBalancingType messageLoadBalancingType, int server) throws Exception { setupLiveServerWithDiscovery(server, groupAddress, groupPort, isFileStorage(), isNetty(), false); AddressSettings setting = new AddressSettings().setRedeliveryDelay(0).setRedistributionDelay(0); servers[server].getAddressSettingsRepository().addMatch("#", setting); setupDiscoveryClusterConnection("cluster" + server, server, "dg1", "queues", messageLoadBalancingType, 1, isNetty()); }
private ActiveMQServer newActiveMQServer() throws Exception { final ActiveMQServer server = createServer(true, isNetty()); final AddressSettings settings = new AddressSettings().setMaxSizeBytes(67108864).setAddressFullMessagePolicy(AddressFullMessagePolicy.PAGE).setMaxRedeliveryDelay(3600000).setRedeliveryMultiplier(2.0).setRedeliveryDelay(500); server.getAddressSettingsRepository().addMatch("#", settings); return server; }
@Override @Before public void setUp() throws Exception { super.setUp(); server = createServer(true, true); AddressSettings settings = new AddressSettings().setRedeliveryDelay(100); server.getConfiguration().getAddressesSettings().put("#", settings); server.start(); locator = createNettyNonHALocator(); sf = createSessionFactory(locator); ClientSession session = sf.createTransactedSession(); session.createQueue(inQueue, inQueue, true); session.createQueue(outQueue, outQueue, true); session.close(); }
/** * @throws Exception */ protected void initServer() throws Exception { server = createServer(true, createDefaultInVMConfig()); server.start(); AddressSettings qs = server.getAddressSettingsRepository().getMatch("*"); AddressSettings newSets = new AddressSettings().setRedeliveryDelay(DelayedMessageTest.DELAY); newSets.merge(qs); server.getAddressSettingsRepository().addMatch(qName, newSets); locator = createInVMNonHALocator(); }
@Override protected ActiveMQServer createServer(final boolean realFiles, final Configuration configuration, final long pageSize, final long maxAddressSize, final Map<String, AddressSettings> settings) { DivertConfiguration divertConf = new DivertConfiguration().setName("notifications-divert").setAddress("*.Provider.*.Agent.*.Status").setForwardingAddress("Notifications").setExclusive(true); configuration.addDivertConfiguration(divertConf); ActiveMQServer server = addServer(ActiveMQServers.newActiveMQServer(configuration, realFiles)); if (settings != null) { for (Map.Entry<String, AddressSettings> setting : settings.entrySet()) { server.getAddressSettingsRepository().addMatch(setting.getKey(), setting.getValue()); } } AddressSettings defaultSetting = new AddressSettings().setPageSizeBytes(pageSize).setRedeliveryDelay(0).setMaxSizeBytes(maxAddressSize).setAddressFullMessagePolicy(AddressFullMessagePolicy.PAGE).setRedistributionDelay(0).setAutoCreateQueues(true).setAutoCreateAddresses(true); server.getAddressSettingsRepository().addMatch("#", defaultSetting); return server; }
@Test public void testCloseWithScheduledRedelivery() throws Exception { AddressSettings settings = new AddressSettings().setRedeliveryDelay(50000); server.getAddressSettingsRepository().addMatch("#", settings);
@Test public void testCrashClient2() throws Exception { // set the redelivery delay to avoid an attempt to redeliver the message to the dead client AddressSettings addressSettings = new AddressSettings().setRedeliveryDelay(ClientCrashTest.CONNECTION_TTL + ClientCrashTest.PING_PERIOD); server.getAddressSettingsRepository().addMatch(ClientCrashTest.QUEUE2.toString(), addressSettings); assertActiveConnections(1); ClientSession session = sf.createSession(false, true, true); session.createQueue(ClientCrashTest.QUEUE2, ClientCrashTest.QUEUE2, null, false); // spawn a JVM that creates a Core client, which sends a message p = SpawnedVMSupport.spawnVM(CrashClient2.class.getName()); ClientCrashTest.log.debug("waiting for the client VM to crash ..."); Assert.assertTrue(p.waitFor(1, TimeUnit.MINUTES)); assertEquals(CrashClient2.OK, p.exitValue()); System.out.println("VM Exited"); long timeout = ClientCrashTest.CONNECTION_TTL + ClientCrashTest.PING_PERIOD + 10000L; assertActiveConnections(1, timeout); assertActiveSession(1, timeout); ClientConsumer consumer = session.createConsumer(ClientCrashTest.QUEUE2); session.start(); // receive a message from the queue ClientMessage messageFromClient = consumer.receive(timeout); assertNotNull("no message received", messageFromClient); assertEquals(ClientCrashTest.MESSAGE_TEXT_FROM_CLIENT, messageFromClient.getBodyBuffer().readString()); assertEquals("delivery count", 2, messageFromClient.getDeliveryCount()); consumer.close(); session.close(); }
private void configureBeforeStart(Configuration... serverConfigs) { for (Configuration config : serverConfigs) { config.setPersistenceEnabled(true); config.setMessageCounterEnabled(true); config.setJournalFileSize(20971520); config.setJournalMinFiles(20); config.setJournalCompactPercentage(50); Map<String, AddressSettings> addressSettingsMap0 = config.getAddressesSettings(); AddressSettings addrSettings = addressSettingsMap0.get("#"); if (addrSettings == null) { addrSettings = new AddressSettings(); addressSettingsMap0.put("#", addrSettings); } addrSettings.setDeadLetterAddress(new SimpleString("jms.queue.DLQ")); addrSettings.setExpiryAddress(new SimpleString("jms.queue.ExpiryQueue")); addrSettings.setRedeliveryDelay(30); addrSettings.setMaxDeliveryAttempts(5); addrSettings.setMaxSizeBytes(1048576); addrSettings.setAddressFullMessagePolicy(AddressFullMessagePolicy.PAGE); addrSettings.setPageSizeBytes(524288); addrSettings.setMessageCounterHistoryDayLimit(10); addrSettings.setRedistributionDelay(1000); } }
/** * @throws Exception */ protected void initServer() throws Exception { server = createServer(true, createDefaultInVMConfig()); server.start(); // Create settings to enable multiplied redelivery delay AddressSettings addressSettings = server.getAddressSettingsRepository().getMatch("*"); AddressSettings newAddressSettings = new AddressSettings().setRedeliveryDelay(DELAY).setRedeliveryMultiplier(MULTIPLIER).setMaxRedeliveryDelay(MAX_DELAY); newAddressSettings.merge(addressSettings); server.getAddressSettingsRepository().addMatch(queueName, newAddressSettings); locator = createInVMNonHALocator(); }
@Test public void testCloseWithScheduledRedeliveryWithTX() throws Exception { AddressSettings settings = new AddressSettings().setRedeliveryDelay(1000); server.getAddressSettingsRepository().addMatch("#", settings);
addressSettings.setExpiryAddress(dlq); addressSettings.setDeadLetterAddress(expiryQueue); addressSettings.setRedeliveryDelay(0); addressSettings.setMessageCounterHistoryDayLimit(2); addressSettings.setDefaultLastValueQueue(false);
settings.setRedeliveryDelay(100); if (locator.isCompressLargeMessage()) { locator.setConsumerWindowSize(0);
AddressSettings setting = new AddressSettings().setRedeliveryDelay(500); server.getAddressSettingsRepository().addMatch("#", setting);
addressSettingsToMerge.setExpiryAddress(exp); addressSettingsToMerge.setMaxSizeBytes(1001); addressSettingsToMerge.setRedeliveryDelay(1003); addressSettingsToMerge.setRedeliveryMultiplier(1.0); addressSettingsToMerge.setAddressFullMessagePolicy(AddressFullMessagePolicy.DROP); addressSettingsToMerge2.setMaxSizeBytes(2001); addressSettingsToMerge2.setMessageCounterHistoryDayLimit(2002); addressSettingsToMerge2.setRedeliveryDelay(2003); addressSettingsToMerge2.setRedeliveryMultiplier(2.0); addressSettingsToMerge2.setMaxRedeliveryDelay(5000);
setupCluster(MessageLoadBalancingType.ON_DEMAND); AddressSettings setting = new AddressSettings().setRedeliveryDelay(10000); servers[0].getAddressSettingsRepository().addMatch("queues.testaddress", setting); servers[0].getAddressSettingsRepository().addMatch("queue0", setting);
@Test public void testPagedMessageDeliveredMultipleConsumersCorrectly() throws Exception { AddressSettings qs = new AddressSettings().setRedeliveryDelay(5000L); server.getAddressSettingsRepository().addMatch(atestq.toString(), qs);
@Test public void testSingleMerge() { AddressSettings addressSettings = new AddressSettings(); AddressSettings addressSettingsToMerge = new AddressSettings(); SimpleString DLQ = new SimpleString("testDLQ"); SimpleString exp = new SimpleString("testExpiryQueue"); addressSettingsToMerge.setDeadLetterAddress(DLQ); addressSettingsToMerge.setExpiryAddress(exp); addressSettingsToMerge.setMaxDeliveryAttempts(1000); addressSettingsToMerge.setAddressFullMessagePolicy(AddressFullMessagePolicy.DROP); addressSettingsToMerge.setMaxSizeBytes(1001); addressSettingsToMerge.setMessageCounterHistoryDayLimit(1002); addressSettingsToMerge.setRedeliveryDelay(1003); addressSettingsToMerge.setPageSizeBytes(1004); addressSettingsToMerge.setMaxSizeBytesRejectThreshold(10 * 1024); addressSettings.merge(addressSettingsToMerge); Assert.assertEquals(addressSettings.getDeadLetterAddress(), DLQ); Assert.assertEquals(addressSettings.getExpiryAddress(), exp); Assert.assertEquals(addressSettings.getMaxDeliveryAttempts(), 1000); Assert.assertEquals(addressSettings.getMaxSizeBytes(), 1001); Assert.assertEquals(addressSettings.getMessageCounterHistoryDayLimit(), 1002); Assert.assertEquals(addressSettings.getRedeliveryDelay(), 1003); Assert.assertEquals(addressSettings.getPageSizeBytes(), 1004); Assert.assertEquals(AddressFullMessagePolicy.DROP, addressSettings.getAddressFullMessagePolicy()); Assert.assertEquals(addressSettings.getMaxSizeBytesRejectThreshold(), 10 * 1024); }
addressSettingsToMerge2.setExpiryAddress(exp2); addressSettingsToMerge2.setMaxSizeBytes(2001); addressSettingsToMerge2.setRedeliveryDelay(2003); addressSettingsToMerge2.setRedeliveryMultiplier(2.5); addressSettings.merge(addressSettingsToMerge2);
@Test public void testPagedMessageDeliveredMultipleConsumersAfterRecoverCorrectly() throws Exception { AddressSettings qs = new AddressSettings().setRedeliveryDelay(5000L); server.getAddressSettingsRepository().addMatch(atestq.toString(), qs);