public synchronized void setConfirmationWindowSize(final int confirmationWindowSize) { checkWrite(); serverLocator.setConfirmationWindowSize(confirmationWindowSize); }
public synchronized void setConfirmationWindowSize(final int confirmationWindowSize) { checkWrite(); serverLocator.setConfirmationWindowSize(confirmationWindowSize); }
public synchronized void setConfirmationWindowSize(final int confirmationWindowSize) { checkWrite(); serverLocator.setConfirmationWindowSize(confirmationWindowSize); }
public synchronized void setConfirmationWindowSize(final int confirmationWindowSize) { checkWrite(); serverLocator.setConfirmationWindowSize(confirmationWindowSize); }
public synchronized void setConfirmationWindowSize(final int confirmationWindowSize) { checkWrite(); serverLocator.setConfirmationWindowSize(confirmationWindowSize); }
@Override public void initialize(File configurationFile, StatsLogger statsLogger) throws IOException { this.config = readConfig(configurationFile); log.info("ActiveMQ Artemis driver configuration: {}", writer.writeValueAsString(config)); try { ServerLocator serverLocator = ActiveMQClient.createServerLocator(config.brokerAddress); serverLocator.setConfirmationWindowSize(1000); sessionFactory = serverLocator.createSessionFactory(); session = sessionFactory.createSession(); } catch (Exception e) { throw new IOException(e); } }
/** * @return */ @Override protected ServerLocator createLocator() throws Exception { ServerLocator locator = createInVMNonHALocator().setReconnectAttempts(15).setConfirmationWindowSize(1024 * 1024); return locator; }
@Override protected ServerLocator createLocator() throws Exception { return createNettyNonHALocator().setReconnectAttempts(15).setConfirmationWindowSize(1024 * 1024).setAckBatchSize(0); }
public void verifySendAcknowledgementsProducerOnly(int windowSize) throws Exception { ServerLocator locator = createInVMNonHALocator(); locator.setConfirmationWindowSize(windowSize); ClientSessionFactory csf = createSessionFactory(locator); ClientSession session = csf.createSession(null, null, false, true, true, false, 1); session.createQueue(address, queueName, false); ClientProducer prod = session.createProducer(address); final int numMessages = 1000; LatchAckHandler producerHandler = new LatchAckHandler("producer", new CountDownLatch(numMessages)); for (int i = 0; i < numMessages; i++) { ClientMessage msg2 = session.createMessage(false); prod.send(address, msg2, producerHandler); } Assert.assertTrue("producer specific handler must have acked, " + producerHandler, producerHandler.latch.await(5, TimeUnit.SECONDS)); }
public void verifySendAcknowledgements(int windowSize) throws Exception { ServerLocator locator = createInVMNonHALocator(); locator.setConfirmationWindowSize(windowSize); ClientSessionFactory csf = createSessionFactory(locator); ClientSession session = csf.createSession(null, null, false, true, true, false, 1); session.createQueue(address, queueName, false); ClientProducer prod = session.createProducer(address); final int numMessages = 1000; LatchAckHandler handler = new LatchAckHandler("session", new CountDownLatch(numMessages)); LatchAckHandler producerHandler = new LatchAckHandler("producer", new CountDownLatch(numMessages)); session.setSendAcknowledgementHandler(handler); for (int i = 0; i < numMessages; i++) { ClientMessage msg = session.createMessage(false); ClientMessage msg2 = session.createMessage(false); prod.send(msg); prod.send(address, msg2, producerHandler); } Assert.assertTrue("session must have acked, " + handler, handler.latch.await(5, TimeUnit.SECONDS)); Assert.assertTrue("producer specific handler must have acked, " + producerHandler, producerHandler.latch.await(5, TimeUnit.SECONDS)); }
@Test public void testSetInvalidSendACK() throws Exception { ServerLocator locator = createInVMNonHALocator(); locator.setConfirmationWindowSize(-1); ClientSessionFactory csf = createSessionFactory(locator); ClientSession session = csf.createSession(null, null, false, true, true, false, 1); boolean failed = false; try { session.setSendAcknowledgementHandler(new SendAcknowledgementHandler() { @Override public void sendAcknowledged(Message message) { } }); } catch (Throwable expected) { failed = true; } assertTrue("Expected a failure on setting ACK Handler", failed); session.createQueue(address, queueName, false); }
@Test public void testProducerWithSmallWindowSizeAndLargeMessage() throws Exception { final CountDownLatch latch = new CountDownLatch(1); server.getRemotingService().addIncomingInterceptor(new Interceptor() { @Override public boolean intercept(final Packet packet, final RemotingConnection connection) throws ActiveMQException { if (packet.getType() == PacketImpl.SESS_SEND) { latch.countDown(); } return true; } }); ServerLocator locator = createInVMNonHALocator().setConfirmationWindowSize(100); ClientSessionFactory cf = locator.createSessionFactory(); ClientSession session = cf.createSession(false, true, true); ClientProducer producer = session.createProducer(QUEUE); ClientMessage message = session.createMessage(true); byte[] body = new byte[1000]; message.getBodyBuffer().writeBytes(body); producer.send(message); Assert.assertTrue(latch.await(5, TimeUnit.SECONDS)); session.close(); locator.close(); }
public void runTest(final RunnableT runnable) throws Exception { final int numIts = getNumIterations(); for (int its = 0; its < numIts; its++) { RandomReattachTest.log.info("####" + getName() + " iteration #" + its); start(); ServerLocator locator = createInVMNonHALocator().setReconnectAttempts(15).setConfirmationWindowSize(1024 * 1024); ClientSessionFactory sf = createSessionFactory(locator); ClientSession session = sf.createSession(false, false, false); Failer failer = startFailer(1000, session); do { runnable.run(sf); } while (!failer.isExecuted()); } }
@Test public void testNoCheckFailoverMessage() throws Exception { final int pingPeriod = 1000; ActiveMQServer server = createServer(false, true); server.start(); ClientSessionInternal session = null; try { ServerLocator locator = createFactory(true).setClientFailureCheckPeriod(pingPeriod).setRetryInterval(500).setRetryIntervalMultiplier(1d).setReconnectAttempts(-1).setConfirmationWindowSize(1024 * 1024); locator.setProtocolManagerFactory(new HornetQClientProtocolManagerFactory()); ClientSessionFactory factory = createSessionFactory(locator); session = (ClientSessionInternal) factory.createSession(); server.stop(); Thread.sleep((pingPeriod * 2)); List<String> incomings = server.getConfiguration().getIncomingInterceptorClassNames(); incomings.add(UnsupportedPacketInterceptor.class.getName()); server.start(); //issue a query to make sure session is reconnected. ClientSession.QueueQuery query = session.queueQuery(new SimpleString("anyvalue")); assertFalse(query.isExists()); locator.close(); UnsupportedPacketInterceptor.checkReceivedTypes(); } finally { try { session.close(); } catch (Throwable e) { } server.stop(); } }
locator.setRetryIntervalMultiplier(1d); locator.setReconnectAttempts(-1); locator.setConfirmationWindowSize(-1); ClientSessionFactory factory = createSessionFactory(locator);
@Test public void testHang() throws Exception { Configuration configuration = createDefaultInVMConfig().setPersistenceEnabled(false); server = addServer(ActiveMQServers.newActiveMQServer(configuration)); server.start(); server.getRemotingService().addIncomingInterceptor(new AckInterceptor(server)); // Force an ack at once - this means the send call will block locator.setConfirmationWindowSize(1); ClientSessionFactory clientSessionFactory = createSessionFactory(locator); ClientSession session = clientSessionFactory.createSession(); session.setSendAcknowledgementHandler(new SendAcknowledgementHandler() { @Override public void sendAcknowledged(final Message message) { ackReceived = true; } }); ClientProducer producer = session.createProducer("fooQueue"); ClientMessage msg = session.createMessage(false); msg.putStringProperty("someKey", "someValue"); producer.send(msg); Thread.sleep(250); Assert.assertFalse(ackReceived); session.close(); }
locator.setRetryInterval(retryInterval).setRetryIntervalMultiplier(retryMultiplier).setReconnectAttempts(reconnectAttempts).setMaxRetryInterval(maxRetryInterval).setConfirmationWindowSize(1024 * 1024);
locator.setRetryInterval(retryInterval).setRetryIntervalMultiplier(retryMultiplier).setReconnectAttempts(reconnectAttempts).setConfirmationWindowSize(1024 * 1024);
locator.setRetryInterval(retryInterval).setRetryIntervalMultiplier(retryMultiplier).setReconnectAttempts(reconnectAttempts).setConfirmationWindowSize(1024 * 1024);
@Test public void testRecreateConsumerOverServerFailure() throws Exception { ServerLocator serverWithReattach = createInVMNonHALocator().setReconnectAttempts(30).setRetryInterval(1000).setConfirmationWindowSize(-1).setConnectionTTL(TemporaryQueueTest.CONNECTION_TTL).setClientFailureCheckPeriod(TemporaryQueueTest.CONNECTION_TTL / 3); ClientSessionFactory reattachSF = createSessionFactory(serverWithReattach); ClientSession session = reattachSF.createSession(false, false); session.createTemporaryQueue("tmpAd", "tmpQ"); ClientConsumer consumer = session.createConsumer("tmpQ"); ClientProducer prod = session.createProducer("tmpAd"); session.start(); RemotingConnectionImpl conn = (RemotingConnectionImpl) ((ClientSessionInternal) session).getConnection(); conn.fail(new ActiveMQIOErrorException()); prod.send(session.createMessage(false)); session.commit(); assertNotNull(consumer.receive(1000)); session.close(); reattachSF.close(); serverWithReattach.close(); }