j'ai hérité du code:Process Builder waitFor() question et les limites Ouvrir le fichier
Process p = new ProcessBuilder("/bin/chmod", "777", path).start();
p.waitFor();
Fondamentalement, il est pour une raison ancienne et très basée voodoo pour stocker des paires clé/valeur sur le disque sous forme de fichiers. Je ne veux pas vraiment y aller.
Cependant, je suis parti avec un tas d'exceptions IO:
Exception :Cannot run program "/bin/chmod": java.io.IOException: error=24, Too many open files
Message: Cannot run program "/bin/chmod": java.io.IOException: error=24, Too many open files
Et par un groupe que je veux dire dans les domaines de 10k - millions
Je sens l'appel waitFor était d'arrêter ceux-ci se produisent en attendant que le processus le termine et sorte en arrière, mais je pense que le chmod retourne un résultat avant que le fichier ne soit effectivement fermé. Est-ce que quelqu'un sait si cela serait la cause de ces exceptions? Mon autre inclination est que l'ouverture et la fermeture de milliers de fichiers ne se produisent pas assez rapidement sur le côté Java et qu'il se passe quelque chose d'autre, peut-être quelque chose comme ça il y a une forme de tampon de fichiers qui n'est pas être effacé lorsque fw.close() est appelé. Je suis assez nouveau à Java et c'était un enfer bizarre qui m'a fait perplexe. (heureusement, l'application fonctionne toujours ... après avoir craché un très gros fichier journal qui est)
Quelqu'un d'autre peut penser à un moyen de contourner ce problème, effacer les tampons ou augmenter la limite d'ouverture de fichiers à quelque chose où le jvm peut se maintenir avec soi-même (en supposant que ce soit le problème)
Quel est votre système d'exploitation cible (et sa version).Voir ceci: http://unix.derkeiler.com/Newsgroups/comp.unix.solaris/2007-02/msg00873.html –
debian, il semble être effacé de uname. sera la dernière stable. – Louis