private static ActiveMQServer selectServer(HttpServerExchange exchange, ActiveMQServer rootServer) { String activemqServerName = exchange.getRequestHeaders().getFirst(TransportConstants.ACTIVEMQ_SERVER_NAME); if (activemqServerName == null) { return rootServer; } ClusterManager clusterManager = rootServer.getClusterManager(); if (clusterManager != null) { HAManager haManager = clusterManager.getHAManager(); if (haManager != null) { for (Map.Entry<String, ActiveMQServer> entry : haManager.getBackupServers().entrySet()) { if (entry.getKey().equals(activemqServerName)) { return entry.getValue(); } } } } if (activemqServerName.equals(rootServer.getConfiguration().getName())) { return rootServer; } else { return null; } }
haManager.start();
@Override public void stop() throws Exception { haManager.stop(); synchronized (this) { if (state == State.STOPPED || state == State.STOPPING) {
private static ActiveMQServer selectServer(HttpServerExchange exchange, ActiveMQServer rootServer) { String activemqServerName = exchange.getRequestHeaders().getFirst(TransportConstants.ACTIVEMQ_SERVER_NAME); if (activemqServerName == null) { return rootServer; } ClusterManager clusterManager = rootServer.getClusterManager(); if (clusterManager != null) { HAManager haManager = clusterManager.getHAManager(); if (haManager != null) { for (Map.Entry<String, ActiveMQServer> entry : haManager.getBackupServers().entrySet()) { if (entry.getKey().equals(activemqServerName)) { return entry.getValue(); } } } } if (activemqServerName.equals(rootServer.getConfiguration().getName())) { return rootServer; } else { return null; } }
@Override protected void waitForBackup() { Map<String, ActiveMQServer> backupServers0 = liveServer.getServer().getClusterManager().getHAManager().getBackupServers(); Map<String, ActiveMQServer> backupServers1 = backupServer.getServer().getClusterManager().getHAManager().getBackupServers(); final long toWait = 10000; final long time = System.currentTimeMillis(); while (true) { if (backupServers0.size() == 1 && backupServers1.size() == 1) { break; } if (System.currentTimeMillis() > (time + toWait)) { fail("backup started? ( live server0 backups = " + backupServers0.size() + " live server1 backups = " + backupServers1.size() + ")"); } try { Thread.sleep(100); } catch (InterruptedException e) { fail(e.getMessage()); } } waitForRemoteBackupSynchronization(backupServers0.values().iterator().next()); waitForRemoteBackupSynchronization(backupServers1.values().iterator().next()); }
Collection<TopologyMemberImpl> members = topology.getMembers(); Assert.assertEquals(members.size(), 2); Map<String, ActiveMQServer> backupServers0 = server0.getClusterManager().getHAManager().getBackupServers(); Assert.assertEquals(backupServers0.size(), 1); Map<String, ActiveMQServer> backupServers1 = server1.getClusterManager().getHAManager().getBackupServers(); Assert.assertEquals(backupServers1.size(), 1); ActiveMQServer backupServer0 = backupServers0.values().iterator().next(); waitForRemoteBackup(sessionFactory3, 10); Assert.assertEquals(members.size(), 2); Map<String, ActiveMQServer> backupServers2 = server2.getClusterManager().getHAManager().getBackupServers(); Assert.assertEquals(backupServers2.size(), 1); Map<String, ActiveMQServer> backupServers3 = server3.getClusterManager().getHAManager().getBackupServers(); Assert.assertEquals(backupServers3.size(), 1); ActiveMQServer backupServer2 = backupServers2.values().iterator().next();
Collection<TopologyMemberImpl> members = topology.getMembers(); Assert.assertEquals(members.size(), 2); Map<String, ActiveMQServer> backupServers0 = server0.getClusterManager().getHAManager().getBackupServers(); Assert.assertEquals(backupServers0.size(), 1); Map<String, ActiveMQServer> backupServers1 = server1.getClusterManager().getHAManager().getBackupServers(); Assert.assertEquals(backupServers1.size(), 1); ActiveMQServer backupServer0 = backupServers0.values().iterator().next();
Collection<TopologyMemberImpl> members = topology.getMembers(); Assert.assertEquals(members.size(), 2); Map<String, ActiveMQServer> backupServers0 = server0.getClusterManager().getHAManager().getBackupServers(); Assert.assertEquals(backupServers0.size(), 1); Map<String, ActiveMQServer> backupServers1 = server1.getClusterManager().getHAManager().getBackupServers(); Assert.assertEquals(backupServers1.size(), 1); ActiveMQServer backupServer0 = backupServers0.values().iterator().next();