PlannedShutdownSignal pssig = (PlannedShutdownSignal)signal; if (pssig.getEventSubType() == GMSConstants.shutdownType.GROUP_SHUTDOWN) { signalSubevent = " Subevent:" + GMSConstants.shutdownType.GROUP_SHUTDOWN.toString();
private void handleGMSMessage(final GMSMessage gMsg, final String sender) { if (gMsg.getComponentName() != null && gMsg.getComponentName().equals(GMSConstants.shutdownType.GROUP_SHUTDOWN.toString())) { final ShutdownHelper sh = GMSContextFactory.getGMSContext(gMsg.getGroupName()).getShutdownHelper(); logger.log(Level.INFO, "member.groupshutdown", new Object[]{sender, groupName}); sh.addToGroupShutdownList(gMsg.getGroupName()); logger.log(Level.FINE, "setting clusterStopping variable to true"); GMSContextFactory.getGMSContext(gMsg.getGroupName()).getGroupCommunicationProvider().setGroupStoppingState(); } else { if (getRouter().isMessageAFRegistered()) { writeLog(sender, gMsg); final MessageSignal ms = new MessageSignalImpl(gMsg.getMessage(), gMsg.getComponentName(), sender, gMsg.getGroupName(), gMsg.getStartTime()); final SignalPacket signalPacket = new SignalPacket(ms); getRouter().queueSignal(signalPacket); } } }
private void handleGMSMessage(final GMSMessage gMsg, final String sender) { if (gMsg.getComponentName() != null && gMsg.getComponentName().equals(GMSConstants.shutdownType.GROUP_SHUTDOWN.toString())) { final ShutdownHelper sh = GMSContextFactory.getGMSContext(gMsg.getGroupName()).getShutdownHelper(); logger.log(Level.INFO, "member.groupshutdown", new Object[]{sender, groupName}); sh.addToGroupShutdownList(gMsg.getGroupName()); logger.log(Level.FINE, "setting clusterStopping variable to true"); GMSContextFactory.getGMSContext(gMsg.getGroupName()).getGroupCommunicationProvider().setGroupStoppingState(); } else { if (getRouter().isMessageAFRegistered()) { writeLog(sender, gMsg); final MessageSignal ms = new MessageSignalImpl(gMsg.getMessage(), gMsg.getComponentName(), sender, gMsg.getGroupName(), gMsg.getStartTime()); final SignalPacket signalPacket = new SignalPacket(ms); getRouter().queueSignal(signalPacket); } } }
@Override public void announceGroupShutdown(final String groupName, final GMSConstants.shutdownState shutdownState) { // It is required to announce cluster shutdown BEFORE seizing group leadership. // Otherwise, seizing groupleadership is viewed as a master collision. // This subtle ordering is necessary so the current master resigns and allows the admin // member to grab groupleadership before the entire group is shutdown. groupCommunicationProvider. announceClusterShutdown( new GMSMessage(GMSConstants.shutdownType.GROUP_SHUTDOWN.toString(), null, groupName, null)); if (!this.getGroupCommunicationProvider().isGroupLeader()) { logger.log(Level.INFO, "gmsctx.assume.groupleader", new Object[]{groupName}); assumeGroupLeadership(); } }
@Override public void announceGroupShutdown(final String groupName, final GMSConstants.shutdownState shutdownState) { // It is required to announce cluster shutdown BEFORE seizing group leadership. // Otherwise, seizing groupleadership is viewed as a master collision. // This subtle ordering is necessary so the current master resigns and allows the admin // member to grab groupleadership before the entire group is shutdown. groupCommunicationProvider. announceClusterShutdown( new GMSMessage(GMSConstants.shutdownType.GROUP_SHUTDOWN.toString(), null, groupName, null)); if (!this.getGroupCommunicationProvider().isGroupLeader()) { logger.log(Level.INFO, "gmsctx.assume.groupleader", new Object[]{groupName}); assumeGroupLeadership(); } }