private void wrapUpSessionFactory() { sf.close(); assertEquals("Expecting 0 sessions", 0, sf.numSessions()); assertEquals("Expecting 0 connections", 0, sf.numConnections()); }
private void wrapUpSessionFactory() { sf.close(); assertEquals(0, sf.numSessions()); assertEquals(0, sf.numConnections()); }
@Test public void testNoPingingOnInVMConnection() throws Exception { // server should receive one and only one ping from the client so that // the server connection TTL is configured with the client value final CountDownLatch requiredPings = new CountDownLatch(1); final CountDownLatch unwantedPings = new CountDownLatch(2); server.getRemotingService().addIncomingInterceptor(new Interceptor() { @Override public boolean intercept(final Packet packet, final RemotingConnection connection) throws ActiveMQException { if (packet.getType() == PacketImpl.PING) { Assert.assertEquals(ActiveMQClient.DEFAULT_CONNECTION_TTL_INVM, ((Ping) packet).getConnectionTTL()); unwantedPings.countDown(); requiredPings.countDown(); } return true; } }); TransportConfiguration transportConfig = new TransportConfiguration("org.apache.activemq.artemis.core.remoting.impl.invm.InVMConnectorFactory"); ServerLocator locator = addServerLocator(ActiveMQClient.createServerLocatorWithoutHA(transportConfig)); ClientSessionFactory csf = createSessionFactory(locator); ClientSession session = csf.createSession(false, true, true); Assert.assertEquals(1, ((ClientSessionFactoryInternal) csf).numConnections()); Assert.assertTrue("server didn't received an expected ping from the client", requiredPings.await(5000, TimeUnit.MILLISECONDS)); Assert.assertFalse("server received an unexpected ping from the client", unwantedPings.await(ActiveMQClient.DEFAULT_CONNECTION_TTL * 2, TimeUnit.MILLISECONDS)); session.close(); csf.close(); locator.close(); }
Assert.assertEquals(1, ((ClientSessionFactoryInternal) csf).numConnections());
@Test public void testSingleConnectorSingleServerConnect() throws Exception { ServerLocatorInternal locator = (ServerLocatorInternal) ActiveMQClient.createServerLocatorWithoutHA(createTransportConfiguration(isNetty(), false, generateParams(0, isNetty()))); ClientSessionFactoryInternal csf = locator.connect(); assertNotNull(csf); assertEquals(csf.numConnections(), 1); locator.close(); }
locator.close(); Assert.assertEquals(0, sf.numConnections());
Assert.assertEquals(1, ((ClientSessionFactoryInternal) csf).numConnections());
Assert.assertEquals(1, ((ClientSessionFactoryInternal) csf).numConnections());
@Test(timeout = 120000) public void testFailoverWithHostAlias() throws Exception { Map<String, Object> params = new HashMap<>(); params.put(TransportConstants.HOST_PROP_NAME, "127.0.0.1"); TransportConfiguration tc = createTransportConfiguration(true, false, params); ServerLocator locator = addServerLocator(ActiveMQClient.createServerLocatorWithHA(tc)).setBlockOnNonDurableSend(true).setBlockOnDurableSend(true).setBlockOnAcknowledge(true).setReconnectAttempts(15); ClientSessionFactoryInternal sf = createSessionFactoryAndWaitForTopology(locator, 2); ClientSession session = createSession(sf, true, true, 0); session.createQueue(ADDRESS, ADDRESS, null, true); ClientProducer producer = session.createProducer(ADDRESS); final int numMessages = 10; ClientConsumer consumer = session.createConsumer(ADDRESS); session.start(); crash(session); sendMessages(session, producer, numMessages); receiveMessages(consumer, 0, numMessages, true); session.close(); sf.close(); Assert.assertEquals(0, sf.numSessions()); Assert.assertEquals(0, sf.numConnections()); }
Assert.assertEquals(0, sf.numConnections());
@Test(timeout = 120000) public void testNonTransacted() throws Exception { createSessionFactory(); ClientSession session = createSession(sf, true, true); session.createQueue(FailoverTestBase.ADDRESS, RoutingType.MULTICAST, FailoverTestBase.ADDRESS, null, true); ClientProducer producer = session.createProducer(FailoverTestBase.ADDRESS); sendMessagesSomeDurable(session, producer); crash(session); ClientConsumer consumer = session.createConsumer(FailoverTestBase.ADDRESS); session.start(); receiveDurableMessages(consumer); session.close(); sf.close(); Assert.assertEquals(0, sf.numSessions()); Assert.assertEquals(0, sf.numConnections()); }
@Test public void scaleDownDelay() throws Exception { createSessionFactory(); ClientSession session = createSession(sf, true, true); session.createQueue(ADDRESS, ADDRESS, null, true); ClientProducer producer = session.createProducer(ADDRESS); //send enough messages to ensure that when the client fails over scaledown hasn't complete sendMessages(session, producer, 1000); crash(session); ClientConsumer consumer = session.createConsumer(ADDRESS); session.start(); receiveDurableMessages(consumer); session.close(); sf.close(); Assert.assertEquals(0, sf.numSessions()); Assert.assertEquals(0, sf.numConnections()); }
Assert.assertEquals(0, sf.numConnections());
@Test public void testNoAutoFailback() throws Exception { locator.setBlockOnNonDurableSend(true).setBlockOnDurableSend(true).setFailoverOnInitialConnection(true).setReconnectAttempts(15); ClientSessionFactoryInternal sf = createSessionFactoryAndWaitForTopology(locator, 2); ClientSession session = sendAndConsume(sf, true); CountDownSessionFailureListener listener = new CountDownSessionFailureListener(1, session); session.addFailureListener(listener); backupServer.stop(); liveServer.crash(); backupServer.start(); assertTrue(listener.getLatch().await(5, TimeUnit.SECONDS)); ClientProducer producer = session.createProducer(ADDRESS); ClientMessage message = session.createMessage(true); setBody(0, message); producer.send(message); session.removeFailureListener(listener); Thread t = new Thread(new ServerStarter(liveServer)); t.start(); waitForRemoteBackup(sf, 10, false, backupServer.getServer()); assertTrue(backupServer.isStarted()); backupServer.crash(); waitForServerToStart(liveServer.getServer()); assertTrue(liveServer.isStarted()); sf.close(); assertEquals(0, sf.numSessions()); assertEquals(0, sf.numConnections()); }
@Test public void testMultipleConnectorSingleServerConnect() throws Exception { ServerLocatorInternal locator = (ServerLocatorInternal) ActiveMQClient.createServerLocatorWithoutHA(createTransportConfiguration(isNetty(), false, generateParams(0, isNetty())), createTransportConfiguration(isNetty(), false, generateParams(1, isNetty())), createTransportConfiguration(isNetty(), false, generateParams(2, isNetty())), createTransportConfiguration(isNetty(), false, generateParams(3, isNetty())), createTransportConfiguration(isNetty(), false, generateParams(4, isNetty()))); ClientSessionFactoryInternal csf = locator.connect(); assertNotNull(csf); assertEquals(csf.numConnections(), 1); locator.close(); }
@Test public void testMultipleConnectorSingleServerConnectReconnect() throws Exception { ServerLocatorInternal locator = (ServerLocatorInternal) ActiveMQClient.createServerLocatorWithoutHA(createTransportConfiguration(isNetty(), false, generateParams(0, isNetty())), createTransportConfiguration(isNetty(), false, generateParams(1, isNetty())), createTransportConfiguration(isNetty(), false, generateParams(2, isNetty())), createTransportConfiguration(isNetty(), false, generateParams(3, isNetty())), createTransportConfiguration(isNetty(), false, generateParams(4, isNetty()))); locator.setReconnectAttempts(15); ClientSessionFactoryInternal csf = locator.connect(); assertNotNull(csf); assertEquals(csf.numConnections(), 1); locator.close(); }
@Test(timeout = 60000) public void testFailBothRestartLive() throws Exception { ServerLocator locator = getServerLocator(); locator.setReconnectAttempts(-1).setRetryInterval(10); sf = (ClientSessionFactoryInternal)locator.createSessionFactory(); ClientSession session = createSession(sf, true, true); session.createQueue(FailoverTestBase.ADDRESS, RoutingType.MULTICAST, FailoverTestBase.ADDRESS, null, true); ClientProducer producer = session.createProducer(FailoverTestBase.ADDRESS); sendMessagesSomeDurable(session, producer); crash(session); ClientConsumer consumer = session.createConsumer(FailoverTestBase.ADDRESS); session.start(); receiveDurableMessages(consumer); backupServer.getServer().fail(true); liveServer.start(); consumer.close(); producer.close(); producer = session.createProducer(FailoverTestBase.ADDRESS); sendMessagesSomeDurable(session, producer); sf.close(); Assert.assertEquals(0, sf.numSessions()); Assert.assertEquals(0, sf.numConnections()); }