Author: chatellier Date: 2009-12-04 10:33:50 +0000 (Fri, 04 Dec 2009) New Revision: 2794 Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/IsisFishServerSimulationLauncher.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulatorLauncher.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SubProcessSimulationLauncher.java Log: Fix multi job stop. (send stop request only for last simulation) Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java 2009-12-04 09:04:52 UTC (rev 2793) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java 2009-12-04 10:33:50 UTC (rev 2794) @@ -555,7 +555,7 @@ * Do nothing (no restriction on inprocess launcher). */ @Override - public void simulationStopRequest(SimulationControl control) { + public void simulationStopRequest(SimulationJob job) { } Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/IsisFishServerSimulationLauncher.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/IsisFishServerSimulationLauncher.java 2009-12-04 09:04:52 UTC (rev 2793) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/IsisFishServerSimulationLauncher.java 2009-12-04 10:33:50 UTC (rev 2794) @@ -256,7 +256,7 @@ * Do nothing (no restriction on xml rpc launcher). */ @Override - public void simulationStopRequest(SimulationControl control) { + public void simulationStopRequest(SimulationJob job) { } } Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java 2009-12-04 09:04:52 UTC (rev 2793) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java 2009-12-04 10:33:50 UTC (rev 2794) @@ -187,7 +187,7 @@ * Try to send a qdel command. */ @Override - public void simulationStopRequest(SimulationControl control) throws RemoteException { + public void simulationStopRequest(SimulationJob job) throws RemoteException { // make sure user is connected try { @@ -196,12 +196,30 @@ catch(JSchException e) { throw new RemoteException("Can't connect", e); } - - try { - sendStopSimulationRequest(sshSession, control.getId()); - } catch (SSHException e) { - throw new RemoteException("Can't connect", e); + + // get simulation item info + SimulationItem simulationItem = job.getItem(); + if (simulationItem.isStandaloneSimulation()) { + try { + sendStopSimulationRequest(sshSession, simulationItem.getControl().getId()); + } catch (SSHException e) { + throw new RemoteException("Can't connect", e); + } } + else { + // for multi job process, try to optimize process + // by send stop request only fo last job + + // multi jobs has been started with last one + // must be killed with last one too + if (simulationItem.isLastSimulation()) { + try { + sendStopSimulationRequest(sshSession, simulationItem.getControl().getId()); + } catch (SSHException e) { + throw new RemoteException("Can't connect", e); + } + } + } } /** Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java 2009-12-04 09:04:52 UTC (rev 2793) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java 2009-12-04 10:33:50 UTC (rev 2794) @@ -518,7 +518,7 @@ } if (control.isStopSimulationRequest()) { - launcher.simulationStopRequest(control); // to release one resource + launcher.simulationStopRequest(job); // to release one resource simulationEnded = true; } } catch (RemoteException e) { Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulatorLauncher.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulatorLauncher.java 2009-12-04 09:04:52 UTC (rev 2793) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulatorLauncher.java 2009-12-04 10:33:50 UTC (rev 2794) @@ -105,11 +105,11 @@ * Called if a started simulation has been ask to stop. Tell launcher to * stop simulation if possible. * - * @param control le control de la simulation + * @param job job to stop * * @throws RemoteException Si pour l'execution de la simulation * on utilise des resources distantes (serveurs) et que ceux si non pas pu * etre contacte. */ - public void simulationStopRequest(SimulationControl control) throws RemoteException; + public void simulationStopRequest(SimulationJob job) throws RemoteException; } Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SubProcessSimulationLauncher.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SubProcessSimulationLauncher.java 2009-12-04 09:04:52 UTC (rev 2793) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SubProcessSimulationLauncher.java 2009-12-04 10:33:50 UTC (rev 2794) @@ -328,7 +328,7 @@ * Do nothing (no restriction on subprocess launcher). */ @Override - public void simulationStopRequest(SimulationControl control) { + public void simulationStopRequest(SimulationJob job) { // TODO kill -9 sub process } }