@Override public void disconnect(String scaleDownNodeID, final boolean criticalError) { Channel channel0 = getChannel(ChannelImpl.CHANNEL_ID.PING.id, -1); // And we remove all channels from the connection, this ensures no more packets will be processed after this // method is // complete Set<Channel> allChannels = new HashSet<>(channels.values()); if (!criticalError) { removeAllChannels(); } else { // We can't hold a lock if a critical error is happening... // as other threads will be holding the lock while hanging on IO channels.clear(); } // Now we are 100% sure that no more packets will be processed we can flush then send the disconnect if (!criticalError) { for (Channel channel : allChannels) { channel.flushConfirmations(); } } Packet disconnect; if (channel0.supports(PacketImpl.DISCONNECT_V2)) { disconnect = new DisconnectMessage_V2(nodeID, scaleDownNodeID); } else { disconnect = new DisconnectMessage(nodeID); } channel0.sendAndFlush(disconnect); }
@Override public String toString() { StringBuffer buf = new StringBuffer(getParentString()); buf.append(", nodeID=" + nodeID); buf.append(", scaleDownNodeID=" + scaleDownNodeID); buf.append("]"); return buf.toString(); }
@Override public void handlePacket(final Packet packet) { final byte type = packet.getType(); if (type == PacketImpl.DISCONNECT || type == PacketImpl.DISCONNECT_V2) { final DisconnectMessage msg = (DisconnectMessage) packet; String scaleDownTargetNodeID = null; SimpleString nodeID = msg.getNodeID(); if (packet instanceof DisconnectMessage_V2) { final DisconnectMessage_V2 msg_v2 = (DisconnectMessage_V2) packet; scaleDownTargetNodeID = msg_v2.getScaleDownNodeID() == null ? null : msg_v2.getScaleDownNodeID().toString(); } if (topologyResponseHandler != null) topologyResponseHandler.nodeDisconnected(conn, nodeID == null ? null : nodeID.toString(), scaleDownTargetNodeID); } else if (type == PacketImpl.CLUSTER_TOPOLOGY) { ClusterTopologyChangeMessage topMessage = (ClusterTopologyChangeMessage) packet; notifyTopologyChange(updateTransportConfiguration(topMessage)); } else if (type == PacketImpl.CLUSTER_TOPOLOGY_V2) { ClusterTopologyChangeMessage_V2 topMessage = (ClusterTopologyChangeMessage_V2) packet; notifyTopologyChange(updateTransportConfiguration(topMessage)); } else if (type == PacketImpl.CLUSTER_TOPOLOGY || type == PacketImpl.CLUSTER_TOPOLOGY_V2 || type == PacketImpl.CLUSTER_TOPOLOGY_V3) { ClusterTopologyChangeMessage topMessage = (ClusterTopologyChangeMessage) packet; notifyTopologyChange(updateTransportConfiguration(topMessage)); } else if (type == PacketImpl.CHECK_FOR_FAILOVER_REPLY) { System.out.println("Channel0Handler.handlePacket"); } }
packet = new DisconnectMessage_V2(); break;
@Override public String toString() { StringBuffer buf = new StringBuffer(getParentString()); buf.append(", nodeID=" + nodeID); buf.append(", scaleDownNodeID=" + scaleDownNodeID); buf.append("]"); return buf.toString(); }
@Override public void handlePacket(final Packet packet) { final byte type = packet.getType(); if (type == PacketImpl.DISCONNECT || type == PacketImpl.DISCONNECT_V2) { final DisconnectMessage msg = (DisconnectMessage) packet; String scaleDownTargetNodeID = null; SimpleString nodeID = msg.getNodeID(); if (packet instanceof DisconnectMessage_V2) { final DisconnectMessage_V2 msg_v2 = (DisconnectMessage_V2) packet; scaleDownTargetNodeID = msg_v2.getScaleDownNodeID() == null ? null : msg_v2.getScaleDownNodeID().toString(); } if (topologyResponseHandler != null) topologyResponseHandler.nodeDisconnected(conn, nodeID == null ? null : nodeID.toString(), scaleDownTargetNodeID); } else if (type == PacketImpl.CLUSTER_TOPOLOGY) { ClusterTopologyChangeMessage topMessage = (ClusterTopologyChangeMessage) packet; notifyTopologyChange(updateTransportConfiguration(topMessage)); } else if (type == PacketImpl.CLUSTER_TOPOLOGY_V2) { ClusterTopologyChangeMessage_V2 topMessage = (ClusterTopologyChangeMessage_V2) packet; notifyTopologyChange(updateTransportConfiguration(topMessage)); } else if (type == PacketImpl.CLUSTER_TOPOLOGY_V3) { ClusterTopologyChangeMessage_V3 topMessage = (ClusterTopologyChangeMessage_V3) packet; notifyTopologyChange(updateTransportConfiguration(topMessage)); } else if (type == PacketImpl.CHECK_FOR_FAILOVER_REPLY) { System.out.println("Channel0Handler.handlePacket"); } }
@Override public void disconnect(String scaleDownNodeID, final boolean criticalError) { Channel channel0 = getChannel(ChannelImpl.CHANNEL_ID.PING.id, -1); // And we remove all channels from the connection, this ensures no more packets will be processed after this // method is // complete Set<Channel> allChannels = new HashSet<>(channels.values()); if (!criticalError) { removeAllChannels(); } else { // We can't hold a lock if a critical error is happening... // as other threads will be holding the lock while hanging on IO channels.clear(); } // Now we are 100% sure that no more packets will be processed we can flush then send the disconnect if (!criticalError) { for (Channel channel : allChannels) { channel.flushConfirmations(); } } Packet disconnect; if (channel0.supports(PacketImpl.DISCONNECT_V2)) { disconnect = new DisconnectMessage_V2(nodeID, scaleDownNodeID); } else { disconnect = new DisconnectMessage(nodeID); } channel0.sendAndFlush(disconnect); }
@Override public String toString() { StringBuffer buf = new StringBuffer(getParentString()); buf.append(", nodeID=" + nodeID); buf.append(", scaleDownNodeID=" + scaleDownNodeID); buf.append("]"); return buf.toString(); }
@Override public void handlePacket(final Packet packet) { final byte type = packet.getType(); if (type == PacketImpl.DISCONNECT || type == PacketImpl.DISCONNECT_V2) { final DisconnectMessage msg = (DisconnectMessage) packet; String scaleDownTargetNodeID = null; SimpleString nodeID = msg.getNodeID(); if (packet instanceof DisconnectMessage_V2) { final DisconnectMessage_V2 msg_v2 = (DisconnectMessage_V2) packet; scaleDownTargetNodeID = msg_v2.getScaleDownNodeID() == null ? null : msg_v2.getScaleDownNodeID().toString(); } if (topologyResponseHandler != null) topologyResponseHandler.nodeDisconnected(conn, nodeID == null ? null : nodeID.toString(), scaleDownTargetNodeID); } else if (type == PacketImpl.CLUSTER_TOPOLOGY) { ClusterTopologyChangeMessage topMessage = (ClusterTopologyChangeMessage) packet; notifyTopologyChange(updateTransportConfiguration(topMessage)); } else if (type == PacketImpl.CLUSTER_TOPOLOGY_V2) { ClusterTopologyChangeMessage_V2 topMessage = (ClusterTopologyChangeMessage_V2) packet; notifyTopologyChange(updateTransportConfiguration(topMessage)); } else if (type == PacketImpl.CLUSTER_TOPOLOGY || type == PacketImpl.CLUSTER_TOPOLOGY_V2 || type == PacketImpl.CLUSTER_TOPOLOGY_V3) { ClusterTopologyChangeMessage topMessage = (ClusterTopologyChangeMessage) packet; notifyTopologyChange(updateTransportConfiguration(topMessage)); } else if (type == PacketImpl.CHECK_FOR_FAILOVER_REPLY) { System.out.println("Channel0Handler.handlePacket"); } }
@Override public void disconnect(String scaleDownNodeID, final boolean criticalError) { Channel channel0 = getChannel(ChannelImpl.CHANNEL_ID.PING.id, -1); // And we remove all channels from the connection, this ensures no more packets will be processed after this // method is // complete Set<Channel> allChannels = new HashSet<>(channels.values()); if (!criticalError) { removeAllChannels(); } else { // We can't hold a lock if a critical error is happening... // as other threads will be holding the lock while hanging on IO channels.clear(); } // Now we are 100% sure that no more packets will be processed we can flush then send the disconnect if (!criticalError) { for (Channel channel : allChannels) { channel.flushConfirmations(); } } Packet disconnect; if (channel0.supports(PacketImpl.DISCONNECT_V2)) { disconnect = new DisconnectMessage_V2(nodeID, scaleDownNodeID); } else { disconnect = new DisconnectMessage(nodeID); } channel0.sendAndFlush(disconnect); }
@Override public String toString() { StringBuffer buf = new StringBuffer(getParentString()); buf.append(", nodeID=" + nodeID); buf.append(", scaleDownNodeID=" + scaleDownNodeID); buf.append("]"); return buf.toString(); }
@Override public void handlePacket(final Packet packet) { final byte type = packet.getType(); if (type == PacketImpl.DISCONNECT || type == PacketImpl.DISCONNECT_V2) { final DisconnectMessage msg = (DisconnectMessage) packet; String scaleDownTargetNodeID = null; SimpleString nodeID = msg.getNodeID(); if (packet instanceof DisconnectMessage_V2) { final DisconnectMessage_V2 msg_v2 = (DisconnectMessage_V2) packet; scaleDownTargetNodeID = msg_v2.getScaleDownNodeID() == null ? null : msg_v2.getScaleDownNodeID().toString(); } if (topologyResponseHandler != null) topologyResponseHandler.nodeDisconnected(conn, nodeID == null ? null : nodeID.toString(), scaleDownTargetNodeID); } else if (type == PacketImpl.CLUSTER_TOPOLOGY) { ClusterTopologyChangeMessage topMessage = (ClusterTopologyChangeMessage) packet; notifyTopologyChange(updateTransportConfiguration(topMessage)); } else if (type == PacketImpl.CLUSTER_TOPOLOGY_V2) { ClusterTopologyChangeMessage_V2 topMessage = (ClusterTopologyChangeMessage_V2) packet; notifyTopologyChange(updateTransportConfiguration(topMessage)); } else if (type == PacketImpl.CLUSTER_TOPOLOGY || type == PacketImpl.CLUSTER_TOPOLOGY_V2 || type == PacketImpl.CLUSTER_TOPOLOGY_V3) { ClusterTopologyChangeMessage topMessage = (ClusterTopologyChangeMessage) packet; notifyTopologyChange(updateTransportConfiguration(topMessage)); } else if (type == PacketImpl.CHECK_FOR_FAILOVER_REPLY) { System.out.println("Channel0Handler.handlePacket"); } }
@Override public void disconnect(String scaleDownNodeID, final boolean criticalError) { Channel channel0 = getChannel(ChannelImpl.CHANNEL_ID.PING.id, -1); // And we remove all channels from the connection, this ensures no more packets will be processed after this // method is // complete Set<Channel> allChannels = new HashSet<>(channels.values()); if (!criticalError) { removeAllChannels(); } else { // We can't hold a lock if a critical error is happening... // as other threads will be holding the lock while hanging on IO channels.clear(); } // Now we are 100% sure that no more packets will be processed we can flush then send the disconnect if (!criticalError) { for (Channel channel : allChannels) { channel.flushConfirmations(); } } Packet disconnect; if (channel0.supports(PacketImpl.DISCONNECT_V2)) { disconnect = new DisconnectMessage_V2(nodeID, scaleDownNodeID); } else { disconnect = new DisconnectMessage(nodeID); } channel0.sendAndFlush(disconnect); }
@Override public String toString() { StringBuffer buf = new StringBuffer(getParentString()); buf.append(", nodeID=" + nodeID); buf.append(", scaleDownNodeID=" + scaleDownNodeID); buf.append("]"); return buf.toString(); }
@Override public void handlePacket(final Packet packet) { final byte type = packet.getType(); if (type == PacketImpl.DISCONNECT || type == PacketImpl.DISCONNECT_V2) { final DisconnectMessage msg = (DisconnectMessage) packet; String scaleDownTargetNodeID = null; SimpleString nodeID = msg.getNodeID(); if (packet instanceof DisconnectMessage_V2) { final DisconnectMessage_V2 msg_v2 = (DisconnectMessage_V2) packet; scaleDownTargetNodeID = msg_v2.getScaleDownNodeID() == null ? null : msg_v2.getScaleDownNodeID().toString(); } if (topologyResponseHandler != null) topologyResponseHandler.nodeDisconnected(conn, nodeID == null ? null : nodeID.toString(), scaleDownTargetNodeID); } else if (type == PacketImpl.CLUSTER_TOPOLOGY) { ClusterTopologyChangeMessage topMessage = (ClusterTopologyChangeMessage) packet; notifyTopologyChange(updateTransportConfiguration(topMessage)); } else if (type == PacketImpl.CLUSTER_TOPOLOGY_V2) { ClusterTopologyChangeMessage_V2 topMessage = (ClusterTopologyChangeMessage_V2) packet; notifyTopologyChange(updateTransportConfiguration(topMessage)); } else if (type == PacketImpl.CLUSTER_TOPOLOGY_V3) { ClusterTopologyChangeMessage_V3 topMessage = (ClusterTopologyChangeMessage_V3) packet; notifyTopologyChange(updateTransportConfiguration(topMessage)); } else if (type == PacketImpl.CHECK_FOR_FAILOVER_REPLY) { System.out.println("Channel0Handler.handlePacket"); } }
@Override public void disconnect(String scaleDownNodeID, final boolean criticalError) { Channel channel0 = getChannel(ChannelImpl.CHANNEL_ID.PING.id, -1); // And we remove all channels from the connection, this ensures no more packets will be processed after this // method is // complete Set<Channel> allChannels = new HashSet<>(channels.values()); if (!criticalError) { removeAllChannels(); } else { // We can't hold a lock if a critical error is happening... // as other threads will be holding the lock while hanging on IO channels.clear(); } // Now we are 100% sure that no more packets will be processed we can flush then send the disconnect if (!criticalError) { for (Channel channel : allChannels) { channel.flushConfirmations(); } } Packet disconnect; if (channel0.supports(PacketImpl.DISCONNECT_V2)) { disconnect = new DisconnectMessage_V2(nodeID, scaleDownNodeID); } else { disconnect = new DisconnectMessage(nodeID); } channel0.sendAndFlush(disconnect); }
@Override public String toString() { StringBuffer buf = new StringBuffer(getParentString()); buf.append(", nodeID=" + nodeID); buf.append(", scaleDownNodeID=" + scaleDownNodeID); buf.append("]"); return buf.toString(); }
@Override public void handlePacket(final Packet packet) { final byte type = packet.getType(); if (type == PacketImpl.DISCONNECT || type == PacketImpl.DISCONNECT_V2) { final DisconnectMessage msg = (DisconnectMessage) packet; String scaleDownTargetNodeID = null; SimpleString nodeID = msg.getNodeID(); if (packet instanceof DisconnectMessage_V2) { final DisconnectMessage_V2 msg_v2 = (DisconnectMessage_V2) packet; scaleDownTargetNodeID = msg_v2.getScaleDownNodeID() == null ? null : msg_v2.getScaleDownNodeID().toString(); } if (topologyResponseHandler != null) topologyResponseHandler.nodeDisconnected(conn, nodeID == null ? null : nodeID.toString(), scaleDownTargetNodeID); } else if (type == PacketImpl.CLUSTER_TOPOLOGY) { ClusterTopologyChangeMessage topMessage = (ClusterTopologyChangeMessage) packet; notifyTopologyChange(updateTransportConfiguration(topMessage)); } else if (type == PacketImpl.CLUSTER_TOPOLOGY_V2) { ClusterTopologyChangeMessage_V2 topMessage = (ClusterTopologyChangeMessage_V2) packet; notifyTopologyChange(updateTransportConfiguration(topMessage)); } else if (type == PacketImpl.CLUSTER_TOPOLOGY_V3) { ClusterTopologyChangeMessage_V3 topMessage = (ClusterTopologyChangeMessage_V3) packet; notifyTopologyChange(updateTransportConfiguration(topMessage)); } else if (type == PacketImpl.CHECK_FOR_FAILOVER_REPLY) { System.out.println("Channel0Handler.handlePacket"); } }
@Override public void disconnect(String scaleDownNodeID, final boolean criticalError) { Channel channel0 = getChannel(ChannelImpl.CHANNEL_ID.PING.id, -1); // And we remove all channels from the connection, this ensures no more packets will be processed after this // method is // complete Set<Channel> allChannels = new HashSet<>(channels.values()); if (!criticalError) { removeAllChannels(); } else { // We can't hold a lock if a critical error is happening... // as other threads will be holding the lock while hanging on IO channels.clear(); } // Now we are 100% sure that no more packets will be processed we can flush then send the disconnect if (!criticalError) { for (Channel channel : allChannels) { channel.flushConfirmations(); } } Packet disconnect; if (channel0.supports(PacketImpl.DISCONNECT_V2)) { disconnect = new DisconnectMessage_V2(nodeID, scaleDownNodeID); } else { disconnect = new DisconnectMessage(nodeID); } channel0.sendAndFlush(disconnect); }
@Override public String toString() { StringBuffer buf = new StringBuffer(getParentString()); buf.append(", nodeID=" + nodeID); buf.append(", scaleDownNodeID=" + scaleDownNodeID); buf.append("]"); return buf.toString(); }