Bonjour
En réalité, je travaille sur un servlet, mais le problème est localisé dans un thread qui fait un exec de ssh. Je sais, c'est un peu tordu.
Ma servlet consulte une base de données. En fonction d'un nombre rendu par cette base, je crée autant de répertoires que ce nombre. Seulement, je dois le faire sur une machine distante, d'où un appel ssh. Comme c'est une opération lourde, je le fais dans un thread. Voici le code de thread :
Or, à l'exécution, je constate qu'il me crée une partie de l'arborescence mais il sort avec cette exception levée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 Thread t = new Thread(){ public void run(){ try{ for(long i=0; i<param.getSize(); i++){ Runtime.getRuntime().exec("ssh gldavid@cluster mkdir -p /home/gldavid/Blaster/"+id_user+"/"+id_job+"/"+i); } }catch(IOException ioe){ Blaster.this.pw.print("<font color=\"#FF0000\"><b>"); ioe.printStackTrace(Blaster.this.pw); Blaster.this.pw.print("</b></font>"); Blaster.this.destroy(); } synchronized(Blaster.this) { Blaster.this.notify(); } } }; t.start(); synchronized(this) { try { this.wait(); } catch (InterruptedException e) { pw.print("<font color=\"#FF0000\"><b>"); e.printStackTrace(pw); pw.print("</b></font>"); this.destroy(); } }
Aïe ! C'est gênant d'autant plus que le nombre de sous-répertoires peut être gros (environ 1000).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 java.io.IOException: java.io.IOException: Too many open files at java.lang.UNIXProcess.(UNIXProcess.java:148)
Donc, mon problème réside t'il en mon code Java ou dans mon appel ssh ?
Merci d'avance de votre réponse.
@++
Partager