# HG changeset patch # User sugi # Date 1376987703 -32400 # Node ID 9982e1c4f09908bb64a3e71b6443dd073aecea54 # Parent 709936c00c89994c04828641c4550de23eee6f36 debugging reconnectManager diff -r 709936c00c89 -r 9982e1c4f099 .settings/org.eclipse.core.resources.prefs --- a/.settings/org.eclipse.core.resources.prefs Sun Aug 18 02:13:52 2013 +0900 +++ b/.settings/org.eclipse.core.resources.prefs Tue Aug 20 17:35:03 2013 +0900 @@ -3,3 +3,4 @@ encoding//src/alice/test/codesegment/local/wordcount/SeparateArray.java=UTF-8 encoding//src/alice/test/codesegment/local/wordcount/WordCount.java=UTF-8 encoding//src/alice/topology/manager/IncomingHosts.java=UTF-8 +encoding//src/alice/topology/manager/createABSIPList.java=UTF-8 diff -r 709936c00c89 -r 9982e1c4f099 src/alice/datasegment/DataSegment.java --- a/src/alice/datasegment/DataSegment.java Sun Aug 18 02:13:52 2013 +0900 +++ b/src/alice/datasegment/DataSegment.java Tue Aug 20 17:35:03 2013 +0900 @@ -41,4 +41,8 @@ return dataSegment.acceptHash.get(key); } + public static void remove(String key){ + dataSegment.dataSegmentManageres.remove(key); + } + } diff -r 709936c00c89 -r 9982e1c4f099 src/alice/topology/manager/StartTopologyManager.java --- a/src/alice/topology/manager/StartTopologyManager.java Sun Aug 18 02:13:52 2013 +0900 +++ b/src/alice/topology/manager/StartTopologyManager.java Tue Aug 20 17:35:03 2013 +0900 @@ -75,8 +75,11 @@ e.printStackTrace(); } HashMap> connectionList = new HashMap>(); - ods.put("local", "connection", connectionList); - + ods.put("connection", connectionList); + ods.put("_ABSIPTABLE" ,new ArrayList()); + + new createABSIPList(); + IncomingHosts cs1 = new IncomingHosts(topology, nodeNames); cs1.host.setKey("local", "host"); cs1.connection.setKey("local", "connection"); @@ -86,6 +89,8 @@ ConfigWaiter cs3 = new ConfigWaiter(nodeNum); cs3.done.setKey("local", "done"); + + } } diff -r 709936c00c89 -r 9982e1c4f099 src/alice/topology/manager/TopologyFinish.java --- a/src/alice/topology/manager/TopologyFinish.java Sun Aug 18 02:13:52 2013 +0900 +++ b/src/alice/topology/manager/TopologyFinish.java Tue Aug 20 17:35:03 2013 +0900 @@ -9,6 +9,7 @@ public Receiver finish = ids.create(CommandType.TAKE); @Override public void run() { + //System.exit(0); new ReceiveError(); } diff -r 709936c00c89 -r 9982e1c4f099 src/alice/topology/manager/createABSIPList.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/alice/topology/manager/createABSIPList.java Tue Aug 20 17:35:03 2013 +0900 @@ -0,0 +1,31 @@ +package alice.topology.manager; + +import java.util.List; + +import alice.codesegment.CodeSegment; +import alice.datasegment.CommandType; +import alice.datasegment.Receiver; +import alice.topology.HostMessage; + +public class createABSIPList extends CodeSegment{ + private Receiver rData = ids.create(CommandType.TAKE); + private Receiver hlist = ids.create(CommandType.PEEK); + + public createABSIPList(){ + rData.setKey("_ABS_IP"); + hlist.setKey("_ABSIPTABLE"); + } + + @Override + public void run() { + HostMessage host = rData.asClass(HostMessage.class); + @SuppressWarnings("unchecked") + List ABSIPList = hlist.asClass(List.class); + ABSIPList.add(host); + ods.update("_ABSIPTABLE", ABSIPList); + + new createABSIPList(); + + } + +} diff -r 709936c00c89 -r 9982e1c4f099 src/alice/topology/manager/reconnection/CheckABSName.java --- a/src/alice/topology/manager/reconnection/CheckABSName.java Sun Aug 18 02:13:52 2013 +0900 +++ b/src/alice/topology/manager/reconnection/CheckABSName.java Tue Aug 20 17:35:03 2013 +0900 @@ -10,28 +10,37 @@ public class CheckABSName extends CodeSegment{ private Receiver abs = ids.create(CommandType.PEEK); - private Receiver host = ids.create(CommandType.TAKE); + private Receiver host = ids.create(CommandType.TAKE); private HostMessage message; public CheckABSName(HostMessage mes) { message = mes; - abs.setKey("_ABSTABLE"); + abs.setKey("_ABSIPTABLE"); host.setKey("host"); } @Override public void run() { + System.out.println("CheckABSName"); @SuppressWarnings("unchecked") - List absList = abs.asClass(List.class); - for (HostMessage mes : absList){ + List ABSIPList = abs.asClass(List.class); + for (HostMessage mes : ABSIPList){ if (mes.name.equals(message.name)&&mes.port == message.port){ HostMessage hostInfo = host.asClass(HostMessage.class); + DataSegment.remove(mes.getABSName()); DataSegment.connect(mes.getABSName(), "", hostInfo.name, hostInfo.port); ods.put(mes.getABSName(), "host", mes.getABSName()); - + ods.put("_RECABSNAME", mes.getABSName()); + ods.put("HMCLONE", new HostMessage(mes.name, mes.port)); + mes.port = hostInfo.port; + mes.name = hostInfo.name; + ods.update("_ABSIPTABLE", ABSIPList); + break; } - } + + new CheckConnectionList(); + } } diff -r 709936c00c89 -r 9982e1c4f099 src/alice/topology/manager/reconnection/CheckConnectionList.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/alice/topology/manager/reconnection/CheckConnectionList.java Tue Aug 20 17:35:03 2013 +0900 @@ -0,0 +1,67 @@ +package alice.topology.manager.reconnection; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import alice.codesegment.CodeSegment; +import alice.datasegment.CommandType; +import alice.datasegment.Receiver; +import alice.topology.HostMessage; + +public class CheckConnectionList extends CodeSegment { + + private Receiver name = ids.create(CommandType.TAKE); + private Receiver connection = ids.create(CommandType.TAKE); + private Receiver abs = ids.create(CommandType.PEEK); + private Receiver clone = ids.create(CommandType.TAKE); + + public CheckConnectionList(){ + name.setKey("_RECABSNAME"); + connection.setKey("connection"); + abs.setKey("_ABSIPTABLE"); + clone.setKey("HMCLONE"); + } + + @Override + public void run() { + System.out.println("CheckConnectionList"); + @SuppressWarnings("unchecked") + HashMap> connectionList = connection.asClass(HashMap.class); + @SuppressWarnings("unchecked") + List ABSIPList = abs.asClass(List.class); + String absName = name.asClass(String.class); + HostMessage oldInfo = clone.asClass(HostMessage.class); + HostMessage newInfo = null; + for (HostMessage mes : ABSIPList){ + if (mes.absName.equals(absName)){ + newInfo = mes; + break; + } + } + + List clist = connectionList.get(absName); + for (HostMessage mes : clist){ + ods.put(absName, mes); + for (HostMessage mes2 : ABSIPList){ + if (mes.name.equals(mes2.name)&&mes.port == mes2.port){ + String absName2 = mes2.getABSName(); + List clist2 = connectionList.get(absName2); + for (HostMessage mes3 : clist2){ + if (mes3.name.equals(oldInfo.name)&&mes3.port == oldInfo.port){ + mes3.name = newInfo.name; + mes3.port = newInfo.port; + break; + } + ods.put(absName, "_RECODATA", mes3); + } + break; + } + } + } + + ods.update("connection", connectionList); + new ReceiveError(); + } +} + \ No newline at end of file diff -r 709936c00c89 -r 9982e1c4f099 src/alice/topology/manager/reconnection/ReceiveError.java --- a/src/alice/topology/manager/reconnection/ReceiveError.java Sun Aug 18 02:13:52 2013 +0900 +++ b/src/alice/topology/manager/reconnection/ReceiveError.java Tue Aug 20 17:35:03 2013 +0900 @@ -16,11 +16,13 @@ @Override public void run() { + System.out.println("run Receive Error"); HostMessage message = reportInfo.asClass(HostMessage.class); try { Socket socket = new Socket(message.name, message.port); socket.close(); } catch (IOException e) { + System.out.println("Error"); new CheckABSName(message); return; } diff -r 709936c00c89 -r 9982e1c4f099 src/alice/topology/manager/reconnection/ReceiveReconnectData.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/alice/topology/manager/reconnection/ReceiveReconnectData.java Tue Aug 20 17:35:03 2013 +0900 @@ -0,0 +1,27 @@ +package alice.topology.manager.reconnection; + +import alice.codesegment.CodeSegment; +import alice.datasegment.CommandType; +import alice.datasegment.DataSegment; +import alice.datasegment.Receiver; +import alice.topology.HostMessage; + +public class ReceiveReconnectData extends CodeSegment{ + private Receiver hostData = ids.create(CommandType.TAKE); + + public ReceiveReconnectData(){ + hostData.setKey("_RECODATA"); + } + + @Override + public void run() { + System.out.println("ReceiveReconnectData"); + HostMessage host = hostData.asClass(HostMessage.class); + DataSegment.remove(host.connectionName); + DataSegment.connect(host.connectionName, host.reverseName, host.name, host.port); + + new ReceiveReconnectData(); + } + + +} diff -r 709936c00c89 -r 9982e1c4f099 src/alice/topology/node/ConfigurationFinish.java --- a/src/alice/topology/node/ConfigurationFinish.java Sun Aug 18 02:13:52 2013 +0900 +++ b/src/alice/topology/node/ConfigurationFinish.java Tue Aug 20 17:35:03 2013 +0900 @@ -5,6 +5,7 @@ import alice.codesegment.CodeSegment; import alice.datasegment.CommandType; import alice.datasegment.Receiver; +import alice.topology.manager.reconnection.ReceiveReconnectData; public class ConfigurationFinish extends CodeSegment { @@ -19,6 +20,8 @@ @Override public void run() { if (reverseCount.getVal().equals(configNodeNum.getVal())) { + new ReceiveReconnectData(); + ods.put("manager", "done", ValueFactory.createNilValue()); Start cs = new Start(startCS); cs.done.setKey("manager", "start"); diff -r 709936c00c89 -r 9982e1c4f099 src/alice/topology/node/IncomingAbstractHostName.java --- a/src/alice/topology/node/IncomingAbstractHostName.java Sun Aug 18 02:13:52 2013 +0900 +++ b/src/alice/topology/node/IncomingAbstractHostName.java Tue Aug 20 17:35:03 2013 +0900 @@ -21,7 +21,6 @@ cs.hostInfo.setKey("manager", absName); System.out.println(absName); host.setABSName(absName); - // need create list on manager ods.put("manager","_ABS_IP", host); } diff -r 709936c00c89 -r 9982e1c4f099 src/alice/topology/node/StartTopologyNode.java --- a/src/alice/topology/node/StartTopologyNode.java Sun Aug 18 02:13:52 2013 +0900 +++ b/src/alice/topology/node/StartTopologyNode.java Tue Aug 20 17:35:03 2013 +0900 @@ -45,6 +45,7 @@ ConfigurationFinish cs3 = new ConfigurationFinish(startCS); cs3.reverseCount.setKey("local", "reverseCount"); cs3.configNodeNum.setKey("local", "configNodeNum"); + } @SuppressWarnings("unused")