private void addFactory(ClientSessionFactoryInternal factory) { if (factory == null) { return; } if (isClosed()) { factory.close(); return; } TransportConfiguration backup = null; if (ha) { backup = topology.getBackupForConnector((Connector) factory.getConnector()); } factory.setBackupConnector(factory.getConnectorConfiguration(), backup); synchronized (factories) { factories.add(factory); } }
csf.close();
@Override public ClientSessionFactory createSessionFactory(final TransportConfiguration transportConfiguration) throws Exception { assertOpen(); initialize(); ClientSessionFactoryInternal factory = new ClientSessionFactoryImpl(this, transportConfiguration, callTimeout, callFailoverTimeout, clientFailureCheckPeriod, connectionTTL, retryInterval, retryIntervalMultiplier, maxRetryInterval, reconnectAttempts, threadPool, scheduledThreadPool, incomingInterceptors, outgoingInterceptors); addToConnecting(factory); try { try { factory.connect(reconnectAttempts, failoverOnInitialConnection); } catch (ActiveMQException e1) { //we need to make sure is closed just for garbage collection factory.close(); throw e1; } addFactory(factory); return factory; } finally { removeFromConnecting(factory); } }
@Override public ClientSessionFactory createSessionFactory(final TransportConfiguration transportConfiguration, int reconnectAttempts, boolean failoverOnInitialConnection) throws Exception { assertOpen(); initialize(); ClientSessionFactoryInternal factory = new ClientSessionFactoryImpl(this, transportConfiguration, callTimeout, callFailoverTimeout, clientFailureCheckPeriod, connectionTTL, retryInterval, retryIntervalMultiplier, maxRetryInterval, reconnectAttempts, threadPool, scheduledThreadPool, incomingInterceptors, outgoingInterceptors); addToConnecting(factory); try { try { factory.connect(reconnectAttempts, failoverOnInitialConnection); } catch (ActiveMQException e1) { //we need to make sure is closed just for garbage collection factory.close(); throw e1; } addFactory(factory); return factory; } finally { removeFromConnecting(factory); } }
factory.close(); if (e.getType() == ActiveMQExceptionType.NOT_CONNECTED) { attempts++;
/** * close this cluster control and its resources */ @Override public void close() { sessionFactory.close(); }
private void addFactory(ClientSessionFactoryInternal factory) { if (factory == null) { return; } if (isClosed()) { factory.close(); return; } TransportConfiguration backup = null; if (ha) { backup = topology.getBackupForConnector((Connector) factory.getConnector()); } factory.setBackupConnector(factory.getConnectorConfiguration(), backup); synchronized (factories) { factories.add(factory); } }
private void addFactory(ClientSessionFactoryInternal factory) { if (factory == null) { return; } if (isClosed()) { factory.close(); return; } TransportConfiguration backup = null; if (ha) { backup = topology.getBackupForConnector((Connector) factory.getConnector()); } factory.setBackupConnector(factory.getConnectorConfiguration(), backup); synchronized (factories) { factories.add(factory); } }
private void addFactory(ClientSessionFactoryInternal factory) { if (factory == null) { return; } if (isClosed()) { factory.close(); return; } TransportConfiguration backup = null; if (ha) { backup = topology.getBackupForConnector((Connector) factory.getConnector()); } factory.setBackupConnector(factory.getConnectorConfiguration(), backup); synchronized (factories) { factories.add(factory); } }
private void addFactory(ClientSessionFactoryInternal factory) { if (factory == null) { return; } if (isClosed()) { factory.close(); return; } TransportConfiguration backup = null; if (ha) { backup = topology.getBackupForConnector((Connector) factory.getConnector()); } factory.setBackupConnector(factory.getConnectorConfiguration(), backup); synchronized (factories) { factories.add(factory); } }
private void addFactory(ClientSessionFactoryInternal factory) { if (factory == null) { return; } if (isClosed()) { factory.close(); return; } TransportConfiguration backup = null; if (ha) { backup = topology.getBackupForConnector((Connector) factory.getConnector()); } factory.setBackupConnector(factory.getConnectorConfiguration(), backup); synchronized (factories) { factories.add(factory); } }
private void addFactory(ClientSessionFactoryInternal factory) { if (factory == null) { return; } if (isClosed()) { factory.close(); return; } TransportConfiguration backup = null; if (ha) { backup = topology.getBackupForConnector((Connector) factory.getConnector()); } factory.setBackupConnector(factory.getConnectorConfiguration(), backup); synchronized (factories) { factories.add(factory); } }
@Override public void postConnectionFreeze() { if (liveOnlyPolicy.getScaleDownPolicy() != null && liveOnlyPolicy.getScaleDownPolicy().isEnabled() && scaleDownClientSessionFactory != null) { try { scaleDown(); } catch (Exception e) { ActiveMQServerLogger.LOGGER.failedToScaleDown(e); } finally { scaleDownClientSessionFactory.close(); scaleDownServerLocator.close(); } } }
@Override public ClientSessionFactory createSessionFactory(final TransportConfiguration transportConfiguration) throws Exception { assertOpen(); initialize(); ClientSessionFactoryInternal factory = new ClientSessionFactoryImpl(this, transportConfiguration, callTimeout, callFailoverTimeout, clientFailureCheckPeriod, connectionTTL, retryInterval, retryIntervalMultiplier, maxRetryInterval, reconnectAttempts, threadPool, scheduledThreadPool, incomingInterceptors, outgoingInterceptors); addToConnecting(factory); try { try { factory.connect(reconnectAttempts, failoverOnInitialConnection); } catch (ActiveMQException e1) { //we need to make sure is closed just for garbage collection factory.close(); throw e1; } addFactory(factory); return factory; } finally { removeFromConnecting(factory); } }
private void wrapUpSessionFactory() { sf.close(); assertEquals("Expecting 0 sessions", 0, sf.numSessions()); assertEquals("Expecting 0 connections", 0, sf.numConnections()); }
@Override public ClientSessionFactory createSessionFactory(final TransportConfiguration transportConfiguration, int reconnectAttempts, boolean failoverOnInitialConnection) throws Exception { assertOpen(); initialize(); ClientSessionFactoryInternal factory = new ClientSessionFactoryImpl(this, transportConfiguration, callTimeout, callFailoverTimeout, clientFailureCheckPeriod, connectionTTL, retryInterval, retryIntervalMultiplier, maxRetryInterval, reconnectAttempts, threadPool, scheduledThreadPool, incomingInterceptors, outgoingInterceptors); addToConnecting(factory); try { try { factory.connect(reconnectAttempts, failoverOnInitialConnection); } catch (ActiveMQException e1) { //we need to make sure is closed just for garbage collection factory.close(); throw e1; } addFactory(factory); return factory; } finally { removeFromConnecting(factory); } }
private void wrapUpSessionFactory() { sf.close(); assertEquals(0, sf.numSessions()); assertEquals(0, sf.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()); }
@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()); }