public TransportConfiguration getTransportConfiguration(Configuration configuration) { TransportConfiguration connector = configuration.getConnectorConfigurations().get(getConnectorName()); if (connector == null) { ActiveMQServerLogger.LOGGER.clusterConnectionNoConnector(connectorName); return null; } return connector; }
private void configureAcceptor() { config.setPersistenceEnabled(true); config.setSecurityEnabled(false); config.getAcceptorConfigurations().add(new TransportConfiguration(InVMAcceptorFactory.class.getName())); config.getConnectorConfigurations().put("connector", new TransportConfiguration(InVMConnectorFactory.class.getName())); }
private void configureAcceptor() { config.setPersistenceEnabled(true); config.setSecurityEnabled(false); config.getAcceptorConfigurations().add(new TransportConfiguration(InVMAcceptorFactory.class.getName())); config.getConnectorConfigurations().put("connector", new TransportConfiguration(InVMConnectorFactory.class.getName())); }
static void addBroadcastGroupConfigs(final OperationContext context, final Configuration configuration, final ModelNode model) throws OperationFailedException { if (model.hasDefined(CommonAttributes.BROADCAST_GROUP)) { final List<BroadcastGroupConfiguration> configs = configuration.getBroadcastGroupConfigurations(); final Set<String> connectors = configuration.getConnectorConfigurations().keySet(); for (Property prop : model.get(CommonAttributes.BROADCAST_GROUP).asPropertyList()) { configs.add(createBroadcastGroupConfiguration(context, connectors, prop.getName(), prop.getValue())); } } }
static void addBroadcastGroupConfigs(final OperationContext context, final Configuration configuration, final ModelNode model) throws OperationFailedException { if (model.hasDefined(CommonAttributes.BROADCAST_GROUP)) { final List<BroadcastGroupConfiguration> configs = configuration.getBroadcastGroupConfigurations(); final Set<String> connectors = configuration.getConnectorConfigurations().keySet(); for (Property prop : model.get(CommonAttributes.BROADCAST_GROUP).asPropertyList()) { configs.add(createBroadcastGroupConfiguration(context, connectors, prop.getName(), prop.getValue())); } } }
@Override public String getConnectorsAsJSON() throws Exception { checkStarted(); clearIO(); try { JsonArrayBuilder array = JsonLoader.createArrayBuilder(); for (TransportConfiguration config : configuration.getConnectorConfigurations().values()) { array.add(config.toJson()); } return array.build().toString(); } finally { blockOnIO(); } }
/** * @param connectorConfigs * @return */ protected ArrayList<String> registerConnectors(final ActiveMQServer server, final List<TransportConfiguration> connectorConfigs) { // The connectors need to be pre-configured at main config object but this method is taking // TransportConfigurations directly // So this will first register them at the config and then generate a list of objects ArrayList<String> connectors = new ArrayList<>(); for (TransportConfiguration tnsp : connectorConfigs) { String name1 = RandomUtil.randomString(); server.getConfiguration().getConnectorConfigurations().put(name1, tnsp); connectors.add(name1); } return connectors; }
@Override public Object[] getConnectors() throws Exception { checkStarted(); clearIO(); try { Collection<TransportConfiguration> connectorConfigurations = configuration.getConnectorConfigurations().values(); Object[] ret = new Object[connectorConfigurations.size()]; int i = 0; for (TransportConfiguration config : connectorConfigurations) { Object[] tc = new Object[3]; tc[0] = config.getName(); tc[1] = config.getFactoryClassName(); tc[2] = config.getParams(); ret[i++] = tc; } return ret; } finally { blockOnIO(); } }
public static ServerLocatorInternal getScaleDownConnector(ScaleDownPolicy scaleDownPolicy, ActiveMQServer activeMQServer) throws ActiveMQException { if (!scaleDownPolicy.getConnectors().isEmpty()) { return (ServerLocatorInternal) ActiveMQClient.createServerLocatorWithHA(connectorNameListToArray(scaleDownPolicy.getConnectors(), activeMQServer)); } else if (scaleDownPolicy.getDiscoveryGroup() != null) { DiscoveryGroupConfiguration dg = activeMQServer.getConfiguration().getDiscoveryGroupConfigurations().get(scaleDownPolicy.getDiscoveryGroup()); if (dg == null) { throw ActiveMQMessageBundle.BUNDLE.noDiscoveryGroupFound(dg); } return (ServerLocatorInternal) ActiveMQClient.createServerLocatorWithHA(dg); } else { Map<String, TransportConfiguration> connectorConfigurations = activeMQServer.getConfiguration().getConnectorConfigurations(); for (TransportConfiguration transportConfiguration : connectorConfigurations.values()) { if (transportConfiguration.getFactoryClassName().equals(InVMConnectorFactory.class.getName())) { return (ServerLocatorInternal) ActiveMQClient.createServerLocatorWithHA(transportConfiguration); } } } throw ActiveMQMessageBundle.BUNDLE.noConfigurationFoundForScaleDown(); }
private List<String> getClusterConnectionTCNames(boolean netty, ActiveMQServer serverFrom, int[] nodesTo) { List<String> pairs = new ArrayList<>(); for (int element : nodesTo) { TransportConfiguration serverTotc = createTransportConfiguration(netty, false, generateParams(element, netty)); serverFrom.getConfiguration().getConnectorConfigurations().put(serverTotc.getName(), serverTotc); pairs.add(serverTotc.getName()); } return pairs; }
private BroadcastGroup createBroadcastGroup(BroadcastGroupConfiguration config) throws Exception { BroadcastGroup group = broadcastGroups.get(config.getName()); if (group == null) { group = new BroadcastGroupImpl(nodeManager, config.getName(), config.getBroadcastPeriod(), scheduledExecutor, config.getEndpointFactory()); for (String connectorInfo : config.getConnectorInfos()) { TransportConfiguration connector = configuration.getConnectorConfigurations().get(connectorInfo); if (connector == null) { logWarnNoConnector(connectorInfo, config.getName()); return null; } group.addConnector(connector); } } if (group.size() == 0) { logWarnNoConnector(config.getConnectorInfos().toString(), group.getName()); return null; } broadcastGroups.put(config.getName(), group); return group; }
/** * XXX HORNETQ-720 * * @param attemptingFailBack if {@code true} then this server wants to trigger a fail-back when * up-to-date, that is it wants to take over the role of 'live' from the current 'live' * server. * @throws ActiveMQException */ public void announceReplicatingBackupToLive(final boolean attemptingFailBack, String replicationClusterName) throws ActiveMQException { ClusterConnectionConfiguration config = ConfigurationUtils.getReplicationClusterConfiguration(server.getConfiguration(), replicationClusterName); if (config == null) { ActiveMQServerLogger.LOGGER.announceBackupNoClusterConnections(); throw new ActiveMQException("lacking cluster connection"); } TransportConfiguration connector = server.getConfiguration().getConnectorConfigurations().get(config.getConnectorName()); if (connector == null) { ActiveMQServerLogger.LOGGER.announceBackupNoConnector(config.getConnectorName()); throw new ActiveMQException("lacking cluster connection"); } clusterChannel.send(new BackupRegistrationMessage(connector, clusterUser, clusterPassword, attemptingFailBack)); }
protected void setupClusterConnection(ClusterConnectionConfiguration clusterConf, final boolean netty, final int nodeFrom, final int... nodesTo) { ActiveMQServer serverFrom = servers[nodeFrom]; if (serverFrom == null) { throw new IllegalStateException("No server at node " + nodeFrom); } TransportConfiguration connectorFrom = createTransportConfiguration(netty, false, generateParams(nodeFrom, netty)); serverFrom.getConfiguration().getConnectorConfigurations().put(connectorFrom.getName(), connectorFrom); List<String> pairs = getClusterConnectionTCNames(netty, serverFrom, nodesTo); Configuration config = serverFrom.getConfiguration(); clusterConf.setConnectorName(connectorFrom.getName()).setConfirmationWindowSize(1024).setStaticConnectors(pairs); config.getClusterConfigurations().add(clusterConf); }
protected void setupClusterConnection(final String name, final String address, final MessageLoadBalancingType messageLoadBalancingType, final int maxHops, final boolean netty, final ClusterConfigCallback cb, final int nodeFrom, final int... nodesTo) { ActiveMQServer serverFrom = servers[nodeFrom]; if (serverFrom == null) { throw new IllegalStateException("No server at node " + nodeFrom); } TransportConfiguration connectorFrom = createTransportConfiguration(netty, false, generateParams(nodeFrom, netty)); serverFrom.getConfiguration().getConnectorConfigurations().put(connectorFrom.getName(), connectorFrom); List<String> pairs = getClusterConnectionTCNames(netty, serverFrom, nodesTo); Configuration config = serverFrom.getConfiguration(); ClusterConnectionConfiguration clusterConf = createClusterConfig(name, address, messageLoadBalancingType, maxHops, connectorFrom, pairs); if (cb != null) { cb.configure(clusterConf); } config.getClusterConfigurations().add(clusterConf); }
class OrderedConsumerHolder implements Comparable<OrderedConsumerHolder> { ConsumerHolder consumer; int order; @Override public int compareTo(final OrderedConsumerHolder o) { int thisOrder = order; int otherOrder = o.order; return thisOrder < otherOrder ? -1 : thisOrder == otherOrder ? 0 : 1; } }
/** * @return ClientSession * @throws Exception */ private ClientSession basicSetUp() throws Exception { server = createServer(true); server.getConfiguration().getConnectorConfigurations().put("in-vm1", new TransportConfiguration(INVM_CONNECTOR_FACTORY)); server.getConfiguration().getConnectorConfigurations().put("in-vm2", new TransportConfiguration(INVM_CONNECTOR_FACTORY)); jmsServer = new JMSServerManagerImpl(server); addActiveMQComponent(jmsServer); namingContext = new InVMContext(); jmsServer.setRegistry(new JndiBindingRegistry(namingContext)); jmsServer.start(); locator = createInVMNonHALocator(); factory = createSessionFactory(locator); checkForLongs(); return addClientSession(factory.createSession(false, true, true)); }
protected final void adaptLiveConfigForReplicatedFailBack(TestableServer server) { Configuration configuration = server.getServer().getConfiguration(); final TransportConfiguration backupConnector = getConnectorTransportConfiguration(false); if (server.getServer().getHAPolicy().isSharedStore()) { ClusterConnectionConfiguration cc = configuration.getClusterConfigurations().get(0); Assert.assertNotNull("cluster connection configuration", cc); Assert.assertNotNull("static connectors", cc.getStaticConnectors()); cc.getStaticConnectors().add(backupConnector.getName()); // backupConnector is only necessary for fail-back tests configuration.getConnectorConfigurations().put(backupConnector.getName(), backupConnector); return; } ReplicatedPolicy haPolicy = (ReplicatedPolicy) server.getServer().getHAPolicy(); haPolicy.setCheckForLiveServer(true); }
protected void setupClusterConnectionWithBackups(final String name, final String address, final MessageLoadBalancingType messageLoadBalancingType, final int maxHops, final boolean netty, final int nodeFrom, final int[] nodesTo) { ActiveMQServer serverFrom = servers[nodeFrom]; if (serverFrom == null) { throw new IllegalStateException("No server at node " + nodeFrom); } TransportConfiguration connectorFrom = createTransportConfiguration(netty, false, generateParams(nodeFrom, netty)); serverFrom.getConfiguration().getConnectorConfigurations().put(name, connectorFrom); List<String> pairs = getClusterConnectionTCNames(netty, serverFrom, nodesTo); Configuration config = serverFrom.getConfiguration(); ClusterConnectionConfiguration clusterConf = new ClusterConnectionConfiguration().setName(name).setAddress(address).setConnectorName(name).setRetryInterval(250).setMessageLoadBalancingType(messageLoadBalancingType).setMaxHops(maxHops).setConfirmationWindowSize(1024).setStaticConnectors(pairs); config.getClusterConfigurations().add(clusterConf); }
protected void setupDiscoveryClusterConnection(final String name, final int node, final String discoveryGroupName, final String address, final MessageLoadBalancingType messageLoadBalancingType, final int maxHops, final boolean netty) { ActiveMQServer server = servers[node]; if (server == null) { throw new IllegalStateException("No server at node " + node); } TransportConfiguration connectorConfig = createTransportConfiguration(netty, false, generateParams(node, netty)); server.getConfiguration().getConnectorConfigurations().put(name, connectorConfig); Configuration config = server.getConfiguration(); ClusterConnectionConfiguration clusterConf = new ClusterConnectionConfiguration().setName(name).setAddress(address).setConnectorName(name).setRetryInterval(100).setDuplicateDetection(true).setMessageLoadBalancingType(messageLoadBalancingType).setMaxHops(maxHops).setConfirmationWindowSize(1024).setDiscoveryGroupName(discoveryGroupName); List<ClusterConnectionConfiguration> clusterConfs = config.getClusterConfigurations(); clusterConfs.add(clusterConf); }
@Override @Before public void setUp() throws Exception { super.setUp(); mbeanServer = MBeanServerFactory.createMBeanServer(); Configuration config = createDefaultConfig(true).setSecurityEnabled(useSecurity()). addConnectorConfiguration("invm", new TransportConfiguration(INVM_CONNECTOR_FACTORY)). setTransactionTimeoutScanPeriod(100); config.getConnectorConfigurations().put("netty", new TransportConfiguration(NETTY_CONNECTOR_FACTORY)); server = addServer(ActiveMQServers.newActiveMQServer(config, mbeanServer, usePersistence())); jmsServer = new JMSServerManagerImpl(server); namingContext = new InVMNamingContext(); jmsServer.setRegistry(new JndiBindingRegistry(namingContext)); jmsServer.start(); registerConnectionFactory(); }