import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
+import java.rmi.ConnectException;
import java.rmi.RemoteException;
-import java.util.Vector;
+import java.util.ArrayList;
//import java.util.Calendar;
//import java.util.GregorianCalendar;
public int nb_not_recv;
public boolean electedNode = false;
public boolean respSent = false;
- public Vector<Integer> resp;
+ public ArrayList<Integer> resp;
public int verifNum = 0;
public LastSave lastSave = new LastSave();
- public Vector<Integer> neighbors;
- public Vector<Boolean> neighborsValues;
- public Vector<Integer> dependancies;
- public Vector<Boolean> values;
+ public ArrayList<Integer> neighbors;
+ public ArrayList<Boolean> neighborsValues;
+ public ArrayList<Integer> dependancies;
+ public ArrayList<Boolean> values;
public int sendId;
public String action = "nothing";
public boolean verdict = false;
public Task sauv;
public BackupConvg sauvConvg = new BackupConvg();
public boolean postReloading = false;
- public Vector<?> reduceAll;
+ public ArrayList<Object> reduceAll;
int cpt = 0;
int count = 0;
Thread th;
public Task() {
- reduceAll = new Vector<Object>();
- dependancies = new Vector<Integer>();
- values = new Vector<Boolean>();
- resp = new Vector<Integer>();
+ reduceAll = new ArrayList<Object>();
+ dependancies = new ArrayList<Integer>();
+ values = new ArrayList<Boolean>();
+ resp = new ArrayList<Integer>();
saved = new boolean[2];
sauv = this;
- neighbors = new Vector<Integer>();
- neighborsValues = new Vector<Boolean>();
+ neighbors = new ArrayList<Integer>();
+ neighborsValues = new ArrayList<Boolean>();
}
public void getBackupForNewNode(int rank) {
// if no stub there is a problem
if (stub == null) {
- System.out.println("unable to SEND backup on task of rank " + rank);
+ System.err.println("Unable to send backup on task of rank " + rank);
} else {
// if there is a stub, send the stream to that node
try {
}
}
} catch (Exception e) {
- System.out.println("error in getBackupForNewNode :" + e);
+ System.err.println("Error in getBackupForNewNode :" + e);
e.printStackTrace(System.out);
}
}
}
// method to overload by user in the appli to specify the reduceAll method
- public synchronized void reduceAll(Vector<?> recievedValue) {
+ public synchronized void reduceAll(ArrayList<Object> recievedValue) {
}
public void setId(TaskId Id) {
jaceSize = Register.Instance().getNbOfTasks();
} catch (Exception e) {
try {
- System.out.println("setId is bad !! " + e + " "
+ System.err.println("SetId is bad !! " + e + " "
+ LocalHost.Instance().getName());
// jaceSize = Register.Instance().getListeOfTasks().getSize();
} catch (Exception e2) {
- System.out.println("not localised the spawner : " + e2);
+ System.err.println("Not localised the spawner : " + e2);
}
}
}
public void jaceFinalize() {
finalize = true;
- System.out.println("ready to Death Task:" + jaceMyId);
+ System.out.println("Ready to Death Task:" + jaceMyId);
try {
Register.Instance().getSpawnerStub().killApplication(
LocalHost.Instance().getStub());
} catch (Exception e) {
- System.out
- .println("pas reussit a joindre Spawner pr killApplication : "
+ System.err
+ .println("Cannot join the Spawner to kill application: "
+ e);
}
reinitializeVectors();
} catch (Exception e) {
- System.out.println("erreur ds jaceP2P_reinitConv():" + e);
+ System.err.println("Error in jaceP2P_reinitConv():" + e);
}
pseudoPerBeg = false;
pseudoPerEnd = false;
}
public void reinitializeVectors() throws RemoteException {
- values.removeAllElements();
- dependancies.removeAllElements();
- neighbors.removeAllElements();
- neighborsValues.removeAllElements();
- resp.removeAllElements();
+ values.clear() ;
+ dependancies.clear() ;
+ neighbors.clear() ;
+ neighborsValues.clear() ;
+ resp.clear() ;
}
public long jaceP2P_getChronoValue() {
result = Register.Instance().getSpawnerStub().getChronoValue(
Register.Instance().getAppliName());
} catch (Exception e) {
- System.out
+ System.err
.println("JaceP2P_Error in Task.jaceP2P_getChronoValue() on SuperNode : "
+ e);
}
recev = Register.Instance().getListeOfTasks().getTaskIdOfRank(dest);
if (recev == null) {
- System.out.println("In jaceSend recv = null !");
+ System.err.println("In jaceSend recv = null !");
try {
JaceSession.Instance().getTaskThread().sleep(10);
JaceSession.Instance().getTaskThread().yield();
// TODO : virer ce else, mais chercher pkoi recev est null des fois
else {
if (recev.getRank() != dest) {
- System.out.println("Problem !! pas le meme dest que ds les param");
+ System.err.println("Problem !! pas le meme dest que ds les param");
}
// creer le Message
// else
// SenderSocket.Instance().getBuffer().add(msg);
}
+
+ } catch( ConnectException ce ) {
+ recev.getHostStub().suicide2( "Not responding!" ) ;
} catch (Exception e) {
- System.out.println("unable to send data message to " + dest
+ System.err.println("Unable to send data message to " + dest
+ ": " + e);
+// recev.getHostStub().suicide2( "Not responding!" ) ;
}
// System.out.println("TASK : g mis un msg qui doit etre envoye");
// envoie toujours asynchrone !!!!!!!! : le Message partira
}
} catch (Exception e) {
if (Register.Instance().getListeOfTasks() == null)
- System.out.println("Liste des taches est nulle: " + e);
+ System.err.println("Tasks list is null: " + e);
}
}
}
} catch (Exception e) {
- System.out.println("error jaceReceive :" + e);
- System.out.println("sender=" + sender);
+ System.err.println("Error jaceReceive :" + e);
+ System.err.println("Sender=" + sender);
}
return (tmp.getData());
} else {
// + ") taille MsgQueue : " + MsgQueue.Instance().getSize());
} catch (Exception e) {
if (Register.Instance().getListeOfTasks() == null)
- System.out.println("Liste des taches est nulle: " + e);
+ System.err.println("Tasks list is null2: " + e);
}
try {
JaceSession.Instance().getTaskThread().sleep(10);
}
public void setValues(int index, boolean value) {
- values.setElementAt(new Boolean(value), index);
+ values.set( index, new Boolean(value) ) ;
}
@SuppressWarnings("static-access")
.getTaskIdOfRank(saveTab[i]); // ///////////////////////////pb
stub = task.getHostStub();
} catch (Exception e) {
- System.out
- .println("pb in the broadcast, ligne d'assignation de task ds broadcats: "
+ System.err
+ .println("Problem in the broadcast, ligne d'assignation de task ds broadcats: "
+ e);
}
.getTaskIdOfRank(saveTab[i]); // ///////////////////////////pb
stub = task.getHostStub();
} catch (Exception e) {
- System.out
- .println("pb in the broadcast, ligne d'assignation de task ds broadcats: "
+ System.err
+ .println("Problem in the broadcast, ligne d'assignation de task ds broadcats: "
+ e);
}
fluxOut.writeObject(t);
fluxOut.close();
} catch (Exception e) {
- System.out
+ System.err
.println("JaceP2P_Error in Task.jaceP2P_ReinitConv() when converting Task in Stream : "
+ e);
}
fluxOut.writeObject(t);
fluxOut.close();
} catch (Exception e) {
- System.out
+ System.err
.println("JaceP2P_Error in Task.jaceP2P_ReinitConv() when converting Task in Stream : "
+ e);
}
sauv.nb_not_recv = nb_not_recv;
sauv.electedNode = electedNode;
sauv.respSent = respSent;
- sauv.neighbors = (Vector) neighbors.clone();
- sauv.neighborsValues = (Vector) neighborsValues.clone();
- sauv.resp = (Vector) resp.clone();
+ sauv.neighbors = (ArrayList<Integer>) neighbors.clone();
+ sauv.neighborsValues = (ArrayList<Boolean>) neighborsValues.clone();
+ sauv.resp = (ArrayList<Integer>) resp.clone();
sauv.verifNum = verifNum;
sauv.sendId = sendId;
sauv.reduceAll = reduceAll;
sauv.lastSave = lastSave;
}
} catch (Exception e) {
- System.out.println("probleme ds rmi");
+ System.err.println("Problem with RMI !");
}
return sauv;
sauvConvg.nb_not_recv = nb_not_recv;
sauvConvg.electedNode = electedNode;
sauvConvg.respSent = respSent;
- sauvConvg.neighbors = (Vector) neighbors.clone();
- sauvConvg.neighborsValues = (Vector) neighborsValues.clone();
- sauvConvg.resp = (Vector) resp.clone();
+ sauvConvg.neighbors = (ArrayList<Integer>) neighbors.clone();
+ sauvConvg.neighborsValues = (ArrayList<Boolean>) neighborsValues.clone();
+ sauvConvg.resp = (ArrayList<Integer>) resp.clone();
sauvConvg.verifNum = verifNum;
sauvConvg.sendId = sendId;
sauvConvg.finalStep = finalStep;
}
sauvConvg.initialized = true;
} catch (Exception e) {
- System.out.println("probleme ds rmi" + e);
+ System.err.println("Problem with RMI:" + e);
}
return sauvConvg;
.println("I got a null register from the spawner");
broadcastTasks(tag);
System.out
- .println("sleeping till acknowledge saved");
+ .println("Sleeping till acknowledge saved");
count = 0;
} catch (Exception e2) {
- System.out
- .println("unable to get register from spawner :"
+ System.err
+ .println("Unable to get register from spawner :"
+ e2);
e2.printStackTrace(System.out);
}
printResp();
printDep();
} catch (Exception e) {
- System.out.println("error printing status in Task :" + e);
+ System.err.println("Error printing status in Task :" + e);
}
Thread.yield();
if (action.equals("sendVerif") && state.equals("VERIF")
state = "VERIF";
broadcastTasks(3);
} catch (Exception e) {
- System.out
- .println("le message de verification n'est pas recu: "
+ System.err
+ .println("The verification message is not received: "
+ e);
Register.Instance().viewAll();
}
broadcastTasks(3);
}
} catch (Exception e) {
- System.out
- .println("unable to decrease the number of neighbors not converged on node :"
+ System.err
+ .println("Unable to decrease the number of neighbors not converged on node :"
+ recev.getHostName()
+ " count ="
+ count
count = 0;
} catch (Exception e2) {
- System.out
- .println("unable to contact the spawner :"
+ System.err
+ .println("Unable to contact the spawner: "
+ e2);
}
}
broadcastTasks(3);
} catch (Exception e) {
- System.out
- .println("le message de verification n'est pas recu:"
+ System.err
+ .println("The verification message is not received:"
+ e);
}
} else if (jaceMyId > neighId) {
state = "VERIF";
broadcastTasks(3);
} catch (Exception e) {
- System.out
- .println("le message de verification n'est pas recu:"
+ System.err
+ .println("The verification message is not received: "
+ e);
}
}
waitForAck(1);
}
} catch (Exception e) {
- System.out.println("erreur: " + e);
+ System.err.println("Error: " + e);
}
}
} else if (pseudoPerEnd == true) {
reinitializePPEr();
broadcastTasks(3);
} catch (Exception e) {
- System.out
- .println("unable to broadcast a negative verdict :"
+ System.err
+ .println("Unable to broadcast a negative verdict :"
+ e);
}
}
broadcastTasks(3);
} catch (Exception e) {
- System.out
- .println("response not received:" + e);
+ System.err
+ .println("Response not received:" + e);
Register.Instance().viewAll();
}
}
broadcastTasks(3);
} catch (Exception e) {
- System.out.println("response not received by "
+ System.err.println("Response not received by "
+ rank + ": " + e);
Register.Instance().viewAll();
}
spawnerStub.setOver(true);
// localStub.setState("FINISHED");
} catch (Exception e) {
- System.out.println("erreur erreur" + e);
+ System.err.println("Error" + e);
}
} else if (!respSent) {
int index = recievedAllRespMinusOne();
// System.out.println("send response to"+rank);
}
} catch (Exception e) {
- System.out.println("reponse non recue" + e);
+ System.err.println("Response not received" + e);
}
}
}
postReloading = false;
} catch (Exception e) {
- System.out.println(" Exception in Global Convergence :" + e);
+ System.err.println("Exception in Global Convergence :" + e);
e.printStackTrace(System.out);
Register.Instance().viewAll();
}
}
public synchronized void response(int neighId, int tag, int response,
- Vector<?> recievedValue) throws RemoteException {
+ ArrayList<Object> recievedValue) throws RemoteException {
// System.out.println("inside response function");
// System.out.println("sleeping till not reloading");
while (reloading == true) {
if (response == 1
&& !state.equals("SAVING")
- && (((Integer) (resp.elementAt(indexNeigh))).intValue()) != 1) {
+ && (((Integer) (resp.get(indexNeigh))).intValue()) != 1) {
// System.out.println("calling reduceAll()");
reduceAll(recievedValue);
}
// System.out.println("after calculating reduceAll");
- resp.setElementAt(response, indexNeigh);
+ resp.set( indexNeigh, response ) ;
// System.out.println("get response ............");
waitForAck(3);
public void initializeSavLeader() {
for (int i = 0; i < resp.size(); i++)
- resp.setElementAt(0, i);
- respSent = false;
+ resp.set( i, 0 ) ;
+ respSent = false ;
}
public boolean recievedAllResp() {
if (((Boolean) neighborsValues.get(i)).booleanValue() == false) {
nb_not_recv--;
// System.out.println("le noeud "+idNeigh+" a envoyer un message de pseudoconvergence");
- neighborsValues.setElementAt(new Boolean(true), i);
+ neighborsValues.set( i, new Boolean(true) ) ;
waitForAck(3);
}
nb_not_recv = neighbors.size();
for (int i = 0; i < neighbors.size(); i++)
- neighborsValues.setElementAt(new Boolean(false), i);
+ neighborsValues.set( i, new Boolean(false) ) ;
for (int i = 0; i < resp.size(); i++)
- resp.setElementAt(0, i);
+ resp.set( i, 0 ) ;
underTh = false;
electedNode = false;
localCV_state = false;
int neighId = -1;
for (int i = 0; i < neighbors.size(); i++)
if (((Boolean) neighborsValues.get(i)).booleanValue() == false)
- neighId = ((Integer) neighbors.elementAt(i)).intValue();
+ neighId = ((Integer) neighbors.get(i)).intValue();
return neighId;
}
public boolean getValues() {
boolean bool = true;
for (int i = 0; i < values.size(); i++)
- if (((Boolean) values.elementAt(i)).equals(new Boolean(false))) {
+ if (((Boolean) values.get(i)).equals(new Boolean(false))) {
bool = false;
break;
}
public void initializeVerifLeader() throws RemoteException {
reinitializePPEr();
for (int i = 0; i < resp.size(); i++)
- resp.setElementAt(0, i);
+ resp.set( i, 0 ) ;
verifNum++;
respSent = false;
}
action = "sendVerif";
reinitializePPEr();
for (int i = 0; i < resp.size(); i++)
- resp.setElementAt(0, i);
+ resp.set( i, 0 ) ;
verifNum++;
respSent = false;
pseudoPerBeg = false;
pseudoPerEnd = false;
for (int i = 0; i < values.size(); i++)
- values.setElementAt(new Boolean(false), i);
+ values.set( i, new Boolean(false) ) ;
}
}
public void savOrFinOrRest(int tag, int step, boolean verd,
- Vector<?> reduceAll) {
+ ArrayList<Object> reduceAll) {
// System.out.println("Recieved verd "+verd+" sleeping till not reloading");
while (reloading == true) {
try {
action = "sendVerdict";
if (finalStep == true) {
for (int i = 0; i < resp.size(); i++)
- resp.setElementAt(0, i);
+ resp.set( i, 0 ) ;
// System.out.println("sleeping till response is sent");
while (action.equals("sendResponse") || respSent == false)
try {
.getTaskIdOfRank(taskRankDest); // ///////////////////////////pb
stub = task.getHostStub();
} catch (Exception e) {
- System.out
- .println("problem in SaveTaskThread on assignation line in save : "
+ System.err
+ .println("Problem in SaveTaskThread on assignation line in save : "
+ e);
}
// System.out.println("ite " + jaceP2P_Iteration +
sent = true;
} catch (Exception e) {
- System.out
+ System.err
.println("JaceP2P_Error in Task.jaceP2P_Save() when saving stream: "
+ e);
j++;
// 5 - if stream not sent at all, do something (WHAT ???)
if (j > saveTab.length) {
- System.out
+ System.err
.println("No more alive neighbors for storing the Backup");
// TODO : what to do if no BackupNode has answered ???
}
}
} catch (Exception e) {
- System.out
- .println("node not reachable by JaceServer.saveTask() in BroadcastTaskThread :"
+ System.err
+ .println("Node not reachable by JaceServer.saveTask() in BroadcastTaskThread :"
+ e);
}
}
}
+