// backup node becomes live public synchronized void activate() { if (backup) { backup = false; for (BroadcastGroup broadcastGroup : broadcastGroups.values()) { try { broadcastGroup.start(); broadcastGroup.activate(); } catch (Exception e) { log.warn("unable to start broadcast group " + broadcastGroup.getName(), e); } } for (ClusterConnection clusterConnection : clusterConnections.values()) { try { clusterConnection.activate(); } catch (Exception e) { log.warn("unable to start cluster connection " + clusterConnection.getName(), e); } } for (Bridge bridge : bridges.values()) { try { bridge.start(); } catch (Exception e) { log.warn("unable to start bridge " + bridge.getName(), e); } } } }
public void testBroadcastGroupNotifications() throws Exception { SimpleNotificationService notifService = new SimpleNotificationService(); SimpleNotificationService.Listener notifListener = new SimpleNotificationService.Listener(); notifService.addNotificationListener(notifListener); final InetAddress groupAddress = InetAddress.getByName(address1); final int groupPort = getUDPDiscoveryPort(); bg = newBroadcast( RandomUtil.randomString(), RandomUtil.randomString(), null, -1, groupAddress, groupPort); bg.setNotificationService(notifService); Assert.assertEquals(0, notifListener.getNotifications().size()); bg.start(); Assert.assertEquals(1, notifListener.getNotifications().size()); Notification notif = notifListener.getNotifications().get(0); Assert.assertEquals(NotificationType.BROADCAST_GROUP_STARTED, notif.getType()); Assert.assertEquals( bg.getName(), notif.getProperties().getSimpleStringProperty(new SimpleString("name")).toString()); bg.stop(); Assert.assertEquals(2, notifListener.getNotifications().size()); notif = notifListener.getNotifications().get(1); Assert.assertEquals(NotificationType.BROADCAST_GROUP_STOPPED, notif.getType()); Assert.assertEquals( bg.getName(), notif.getProperties().getSimpleStringProperty(new SimpleString("name")).toString()); }
public void stop() throws Exception { synchronized (this) { if (!started) { return; } if (clustered) { for (BroadcastGroup group : broadcastGroups.values()) { group.stop(); managementService.unregisterBroadcastGroup(group.getName()); } broadcastGroups.clear(); for (ClusterConnection clusterConnection : clusterConnections.values()) { clusterConnection.stop(); managementService.unregisterCluster(clusterConnection.getName().toString()); } } for (Bridge bridge : bridges.values()) { bridge.stop(); managementService.unregisterBridge(bridge.getName().toString()); } bridges.clear(); } for (ServerLocatorInternal clusterLocator : clusterLocators) { try { clusterLocator.close(); } catch (Exception e) { log.warn( "Error closing serverLocator=" + clusterLocator + ", message=" + e.getMessage(), e); } } clusterLocators.clear(); started = false; clearClusterConnections(); }