@Override protected ServerLocator createLocator() throws Exception { return createNettyNonHALocator().setReconnectAttempts(15).setConfirmationWindowSize(1024 * 1024).setAckBatchSize(0); }
@Override @Before public void setUp() throws Exception { super.setUp(); server = createServer(false, createDefaultInVMConfig()); server.start(); locator = createInVMNonHALocator().setAckBatchSize(0); sf = createSessionFactory(locator); }
@Test(timeout = 120000) public void testTimeoutOnFailoverConsume() throws Exception { locator.setCallTimeout(5000).setBlockOnNonDurableSend(true).setBlockOnDurableSend(true).setAckBatchSize(0).setBlockOnAcknowledge(true).setReconnectAttempts(300).setRetryInterval(100).setAckBatchSize(0);
private void doConsumerReceiveImmediateWithNoMessages(final boolean browser) throws Exception { locator.setBlockOnNonDurableSend(true).setBlockOnAcknowledge(true).setAckBatchSize(0); sf = createSessionFactory(locator); ClientSession session = sf.createSession(false, true, false); session.createQueue(ADDRESS, QUEUE, null, false); ClientConsumer consumer = session.createConsumer(QUEUE, null, browser); session.start(); ClientMessage message = consumer.receiveImmediate(); Assert.assertNull(message); session.close(); }
@Test public void testConsumerReceiveImmediateWithSessionStop() throws Exception { locator.setBlockOnNonDurableSend(true).setBlockOnAcknowledge(true).setAckBatchSize(0); sf = createSessionFactory(locator); ClientSession session = sf.createSession(false, true, true); session.createQueue(ADDRESS, QUEUE, null, false); ClientConsumer consumer = session.createConsumer(QUEUE, null, false); session.start(); session.stop(); Assert.assertNull(consumer.receiveImmediate()); session.start(); long start = System.currentTimeMillis(); ClientMessage msg = consumer.receive(2000); long end = System.currentTimeMillis(); Assert.assertNull(msg); // we waited for at least 2000ms Assert.assertTrue("waited only " + (end - start), end - start >= 2000); consumer.close(); session.close(); }
waitForServerToStart(server); locator.setProducerWindowSize(1024).setConsumerWindowSize(1024).setAckBatchSize(1024);
/** * see http://jira.jboss.org/browse/HORNETQ-522 * * @throws Exception */ @Test(timeout = 120000) public void testNonTransactedWithZeroConsumerWindowSize() throws Exception { locator.setBlockOnNonDurableSend(true).setBlockOnDurableSend(true).setAckBatchSize(0).setReconnectAttempts(300).setRetryInterval(100); createClientSessionFactory(); ClientSession session = createSession(sf, true, true); session.createQueue(FailoverTestBase.ADDRESS, RoutingType.MULTICAST, FailoverTestBase.ADDRESS, null, true); ClientProducer producer = session.createProducer(FailoverTestBase.ADDRESS); for (int i = 0; i < NUM_MESSAGES; i++) { ClientMessage message = session.createMessage(true); setBody(i, message); message.putIntProperty("counter", i); producer.send(message); } ClientConsumer consumer = session.createConsumer(FailoverTestBase.ADDRESS); final CountDownLatch latch = new CountDownLatch(NUM_MESSAGES); consumer.setMessageHandler(new MessageHandler() { @Override public void onMessage(ClientMessage message) { latch.countDown(); } }); session.start(); crash(session); Assert.assertTrue(latch.await(10, TimeUnit.SECONDS)); }
@Test(timeout = 120000) public void testTimeoutOnFailoverTransactionRollback() throws Exception { locator.setCallTimeout(2000).setBlockOnNonDurableSend(true).setBlockOnDurableSend(true).setAckBatchSize(0).setReconnectAttempts(300).setRetryInterval(100);
ActiveMQServer server = createServer(false); server.start(); ServerLocator locator = createInVMNonHALocator().setBlockOnAcknowledge(true).setAckBatchSize(0); ClientSessionFactory cf = createSessionFactory(locator); ClientSession sendSession = cf.createSession(false, true, true);
@Override @Before public void setUp() throws Exception { super.setUp(); configuration = createDefaultInVMConfig(); server = createServer(true, configuration); server.start(); qs = new AddressSettings().setDefaultLastValueQueue(true); server.getAddressSettingsRepository().addMatch(address.toString(), qs); // then we create a client as normal locator = createInVMNonHALocator().setBlockOnAcknowledge(true).setAckBatchSize(0); ClientSessionFactory sessionFactory = createSessionFactory(locator); clientSession = sessionFactory.createSession(false, true, true); clientSessionXa = sessionFactory.createSession(true, false, false); clientSession.createQueue(address, qName1, null, true); }
private void restartServer() throws Exception { server.stop(); server = null; server = createServer(true, configuration); server.getAddressSettingsRepository().addMatch(address.toString(), qs); // start the server server.start(); server.getAddressSettingsRepository().addMatch(address.toString(), new AddressSettings().setDefaultLastValueQueue(true)); // then we create a client as normal locator.close(); locator = createInVMNonHALocator().setBlockOnAcknowledge(true).setAckBatchSize(0); ClientSessionFactory sessionFactory = createSessionFactory(locator); clientSession = sessionFactory.createSession(false, true, true); clientSessionXa = sessionFactory.createSession(true, false, false); } }
ActiveMQServer server = createServer(false); server.start(); ServerLocator locator = createInVMNonHALocator().setBlockOnAcknowledge(true).setAckBatchSize(0); ClientSessionFactory cf = createSessionFactory(locator); ClientSession sendSession = cf.createSession(false, true, true);
ActiveMQServer server = createServer(false); server.start(); ServerLocator locator = createInVMNonHALocator().setBlockOnAcknowledge(true).setAckBatchSize(0); ClientSessionFactory cf = createSessionFactory(locator); ClientSession sendSession = cf.createSession(false, true, true);
ActiveMQServer server = createServer(false); server.start(); ServerLocator locator = createInVMNonHALocator().setBlockOnAcknowledge(true).setAckBatchSize(0); ClientSessionFactory cf = createSessionFactory(locator); ClientSession sendSession = cf.createSession(false, true, true);
@Override @Before public void setUp() throws Exception { super.setUp(); server = addServer(ActiveMQServers.newActiveMQServer(createDefaultNettyConfig(), true)); // start the server server.start(); server.getAddressSettingsRepository().addMatch(address.toString(), new AddressSettings().setDefaultLastValueQueue(true)); // then we create a client as normalServer ServerLocator locator = createNettyNonHALocator().setBlockOnAcknowledge(true).setAckBatchSize(0); ClientSessionFactory sf = createSessionFactory(locator); clientSession = addClientSession(sf.createSession(false, true, true)); clientSessionTxReceives = addClientSession(sf.createSession(false, true, false)); clientSessionTxSends = addClientSession(sf.createSession(false, false, true)); clientSession.createQueue(address, qName1, null, true); } }
@Test public void testFlowControlMessageNotRouted() throws Exception { final SimpleString address = new SimpleString("testaddress"); server = createServer(false, isNetty()); AddressSettings addressSettings = new AddressSettings().setMaxSizeBytes(1024).setAddressFullMessagePolicy(AddressFullMessagePolicy.BLOCK); HierarchicalRepository<AddressSettings> repos = server.getAddressSettingsRepository(); repos.addMatch(address.toString(), addressSettings); server.start(); waitForServerToStart(server); locator.setProducerWindowSize(1024).setConsumerWindowSize(1024).setAckBatchSize(1024); sf = createSessionFactory(locator); session = sf.createSession(false, true, true, true); ClientProducer producer = session.createProducer(address); byte[] bytes = new byte[100]; final int numMessages = 1000; for (int i = 0; i < numMessages; i++) { ClientMessage message = session.createMessage(false); message.getBodyBuffer().writeBytes(bytes); producer.send(message); } }
int numMessages = 100; int originalSize = getMessageEncodeSize(addressA); ServerLocator locator = createInVMNonHALocator().setAckBatchSize(numMessages * originalSize).setBlockOnAcknowledge(true); ClientSessionFactory cf = createSessionFactory(locator); ClientSession sendSession = cf.createSession(false, true, true);
@Test public void testReceiveAckLastMessageOnly() throws Exception { ActiveMQServer server = createServer(false); server.start(); ServerLocator locator = createInVMNonHALocator().setAckBatchSize(0).setBlockOnAcknowledge(true); ClientSessionFactory cf = createSessionFactory(locator); ClientSession sendSession = cf.createSession(false, true, true); ClientSession session = cf.createSession(false, true, true); sendSession.createQueue(addressA, queueA, false); ClientProducer cp = sendSession.createProducer(addressA); ClientConsumer cc = session.createConsumer(queueA); int numMessages = 100; for (int i = 0; i < numMessages; i++) { cp.send(sendSession.createMessage(false)); } session.start(); ClientMessage cm = null; for (int i = 0; i < numMessages; i++) { cm = cc.receive(5000); Assert.assertNotNull(cm); } cm.acknowledge(); Queue q = (Queue) server.getPostOffice().getBinding(queueA).getBindable(); Assert.assertEquals(0, q.getDeliveringCount()); session.close(); sendSession.close(); }
ServerLocator locator = createInVMNonHALocator().setAckBatchSize(0).setBlockOnAcknowledge(true); ClientSessionFactory cf = createSessionFactory(locator); ClientSession sendSession = cf.createSession(false, true, true);
private void doConsumerReceiveImmediate(final boolean browser) throws Exception { locator.setBlockOnNonDurableSend(true).setBlockOnAcknowledge(true).setAckBatchSize(0); sf = createSessionFactory(locator); ClientSession session = sf.createSession(false, true, true); session.createQueue(ADDRESS, QUEUE, null, false); ClientProducer producer = session.createProducer(ADDRESS); final int numMessages = 100; for (int i = 0; i < numMessages; i++) { ClientMessage message = createTextMessage(session, "m" + i); producer.send(message); } ClientConsumer consumer = session.createConsumer(QUEUE, null, browser); session.start(); for (int i = 0; i < numMessages; i++) { ClientMessage message2 = consumer.receiveImmediate(); Assert.assertNotNull("did not receive message " + i, message2); Assert.assertEquals("m" + i, message2.getBodyBuffer().readString()); if (!browser) { message2.acknowledge(); } } Assert.assertEquals(0, ((Queue) server.getPostOffice().getBinding(QUEUE).getBindable()).getDeliveringCount()); Assert.assertNull(consumer.receiveImmediate()); Assert.assertEquals(0, ((Queue) server.getPostOffice().getBinding(QUEUE).getBindable()).getDeliveringCount()); int messagesOnServer = browser ? numMessages : 0; Assert.assertEquals(messagesOnServer, getMessageCount(((Queue) server.getPostOffice().getBinding(QUEUE).getBindable()))); consumer.close(); session.close(); }