Mercurial > hg > Database > Christie
view src/main/java/christie/topology/manager/SearchHostName.java.orig @ 168:c7300be0fff6
fix incomingHosts end message
author | akahori |
---|---|
date | Tue, 22 Jan 2019 16:00:29 +0900 |
parents | 443bf8351933 |
children |
line wrap: on
line source
package christie.topology.manager; import christie.annotation.Peek; import christie.annotation.Take; import christie.codegear.CodeGear; import christie.codegear.CodeGearManager; import christie.topology.HostMessage; //import org.msgpack.type.ValueFactory; import java.util.HashMap; import java.util.LinkedList; public class SearchHostName extends CodeGear { @Take // reconnect NodeInfo HostMessage reconnectHost; @Peek HashMap<String, LinkedList<HostMessage>> topology; @Peek boolean running; public SearchHostName(){ } @Override protected void run(CodeGearManager cgm) { // Question: remove処理 どうしようか. いらない気もする. // DataSegment.remove(hostInfo.absName); String nodeName = reconnectHost.getNodeName(); String hostName = reconnectHost.getHostName(); int port = reconnectHost.getPort(); cgm.createRemoteDGM(nodeName, hostName, port); getDGM(nodeName).put("nodeName", nodeName); // put Host dataSegment on reconnect node if (topology.containsKey(nodeName)) { // Question: これはバグ...? // ods.put(reconnectHost.absName, "dummy"); // this is bug if (running){ getLocalDGM().put(nodeName, ""); } LinkedList<HostMessage> hostList = topology.get(nodeName); for (HostMessage host : hostList){ getLocalDGM().put(nodeName, host); System.out.println("put data in "+ nodeName); } } // update topology information for (LinkedList<HostMessage> list :topology.values()){ for (HostMessage host : list){ // find and update old info if (!nodeName.equals(host.getNodeName())) continue; if (!hostName.equals(host.getHostName()) || port != host.getPort()){ host.setHostAndPort(hostName, port); getLocalDGM().put(host.getNodeName(), host); } else { // nothing to do ? } } } for (LinkedList<HostMessage> list :topology.values()){ System.out.print(list.get(0).getRemoteNodeName()+" : "); for (HostMessage host : list){ System.out.print("[ "+host.getNodeName() +" " +host.getHostName() +" " +host.getPort() +" " +host.getConnectionName()+" " +host.getRemoteNodeName()+" ]"); } System.out.println(); } } }