private ClusterConnection lookupClusterConnection(TransportConfiguration acceptorConfig) { String clusterConnectionName = (String) acceptorConfig.getParams().get(org.apache.activemq.artemis.core.remoting.impl.netty.TransportConstants.CLUSTER_CONNECTION); ClusterConnection clusterConnection = null; if (clusterConnectionName != null) { clusterConnection = clusterManager.getClusterConnection(clusterConnectionName); } // if not found we will still use the default name, even if a name was provided if (clusterConnection == null) { clusterConnection = clusterManager.getDefaultConnection(acceptorConfig); } return clusterConnection; }
private void makeSureForwardingFlowControl(int producerWindow, int... indices) throws NoSuchFieldException, IllegalAccessException { for (int i : indices) { ClusterConnectionImpl cc = (ClusterConnectionImpl) servers[i].getClusterManager().getClusterConnection("cluster" + i); Map<String, MessageFlowRecord> map = cc.getRecords(); assertEquals(1, map.size()); MessageFlowRecord record = map.entrySet().iterator().next().getValue(); Field f = record.getClass().getDeclaredField("targetLocator"); //NoSuchFieldException f.setAccessible(true); ServerLocatorInternal targetLocator = (ServerLocatorInternal) f.get(record); assertEquals(producerWindow, targetLocator.getProducerWindowSize()); } }
protected void waitForTopology(final ActiveMQServer server, String clusterConnectionName, final int nodes, final long timeout) throws Exception { logger.debug("waiting for " + nodes + " on the topology for server = " + server); long start = System.currentTimeMillis(); ClusterConnection clusterConnection = server.getClusterManager().getClusterConnection(clusterConnectionName); Topology topology = clusterConnection.getTopology(); do { if (nodes == topology.getMembers().size()) { return; } Thread.sleep(10); } while (System.currentTimeMillis() - start < timeout); String msg = "Timed out waiting for cluster topology of " + nodes + " (received " + topology.getMembers().size() + ") topology = " + topology + ")"; ActiveMQServerLogger.LOGGER.error(msg); throw new Exception(msg); }
void start() { stopping = false; backupAnnounced = false; ClusterConnection clusterConnection = clusterManager.getClusterConnection(name); //NB we use the same topology as the sister cluster connection so it knows when started about all the nodes to bridge to backupServerLocator = createServerLocator(clusterConnection.getTopology()); if (backupServerLocator != null) { backupServerLocator.setIdentity("backupLocatorFor='" + server + "'"); backupServerLocator.setReconnectAttempts(-1); backupServerLocator.setInitialConnectAttempts(-1); backupServerLocator.setProtocolManagerFactory(ActiveMQServerSideProtocolManagerFactory.getInstance(backupServerLocator)); } }
private void checkTopology(final ActiveMQServer serverParameter, final String clusterName, final String nodeId1, final String nodeId2, final TransportConfiguration cfg1, final TransportConfiguration cfg2) { Topology topology = serverParameter.getClusterManager().getClusterConnection(clusterName).getTopology(); TopologyMemberImpl member1 = topology.getMember(nodeId1); TopologyMemberImpl member2 = topology.getMember(nodeId2); Assert.assertEquals(member1.getLive().getParams().toString(), cfg1.getParams().toString()); Assert.assertEquals(member2.getLive().getParams().toString(), cfg2.getParams().toString()); }
protected void verifyBridgeMetrics(final int node, final String clusterName, final String bridgeNodeId, final long expectedMessagesPendingAcknowledgement, final long expectedMessagesAcknowledged) { final ClusterConnection clusterConnection = servers[node].getClusterManager().getClusterConnection(clusterName); final BridgeMetrics bridgeMetrics = clusterConnection.getBridgeMetrics(bridgeNodeId); assertEquals(expectedMessagesPendingAcknowledgement, bridgeMetrics.getMessagesPendingAcknowledgement()); assertEquals(expectedMessagesAcknowledged, bridgeMetrics.getMessagesAcknowledged()); }
protected void verifyClusterMetrics(final int node, final String clusterName, final long expectedMessagesPendingAcknowledgement, final long expectedMessagesAcknowledged) { final ClusterConnection clusterConnection = servers[node].getClusterManager().getClusterConnection(clusterName); final ClusterConnectionMetrics clusterMetrics = clusterConnection.getMetrics(); assertEquals(expectedMessagesPendingAcknowledgement, clusterMetrics.getMessagesPendingAcknowledgement()); assertEquals(expectedMessagesAcknowledged, clusterMetrics.getMessagesAcknowledged()); }