java.io.IOException: Invalid argument
Ich habe eine web-Anwendung, die in den cluster-Modus mit einem load balancer.
Es besteht aus zwei Kater (T1 und T2) Adressierung nur eine DB.
T2 ist nfs gemountet zu T1. Dies ist die einzige dofference zwischen den beiden Knoten.
Ich habe eine java-Methode generieren Sie einige Dateien. Wenn die Anforderung
läuft auf T1 ist es kein problem, aber wenn die Anforderung ist, die auf Knoten 2
Bekomme ich auch eine exception wie folgt:
java.io.IOException: Invalid argument
at java.io.FileOutputStream.close0(Native Method)
at java.io.FileOutputStream.close(FileOutputStream.java:279)
Den entsprechenden code wie folgt:
for (int i = 0; i < dataFileList.size(); i++) {
outputFileName = outputFolder + fileNameList.get(i);
FileOutputStream fileOut = new FileOutputStream(outputFileName);
fileOut.write(dataFileList.get(i), 0, dataFileList.get(i).length);
fileOut.flush();
fileOut.close();
}
Ausnahme erscheint am fileOut.close () -
Irgendeinen Hinweis?
Luis
Können Sie schreiben von Dateien in der Regel von der OS-T2 (ie. außerhalb von Java)?
Ja, kann ich. Außerdem, wenn die exceptio nin geworfen und eine leere Datei erzeugt wird.
Ja! Ich kann schreiben, auf das Dateisystem direkt aus einer shell. Außerdem. Eine leere Datei wird erzeugt.
Ja, kann ich. Außerdem, wenn die exceptio nin geworfen und eine leere Datei erzeugt wird.
Ja! Ich kann schreiben, auf das Dateisystem direkt aus einer shell. Außerdem. Eine leere Datei wird erzeugt.
InformationsquelleAutor Luixv | 2009-04-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einstellung dieser Linie in der
.profile
ist das Problem behoben:InformationsquelleAutor ed123
Wie groß tun dataFileList und fileNameList bekommen? Sie könnte knapp werden von Datei-Deskriptoren. Es ist seltsam, dass es passiert, auf schließen(), obwohl.
InformationsquelleAutor mtnygard
Endlich habe ich den Grund gefunden.
Zuerst habe ich bemerkt, dass NICHT immer diese exception kommt
an der gleichen Stelle.
Manchmal war ein
java.io.IOException: Invalid argument
bei java.io.FileOutputStream.close0(Native-Methode)
bei java.io.FileOutputStream.in der Nähe(FileOutputStream.java:279)
^^^^^
und manchmal war
Daher ist das problem NICHT ein java-problem. Nicht einmal ein NFS problem.
Das problem ist die zugrunde liegende Datei-System-Typ, die ein DRBD
Datei system.
Erprobung an einer shell zu schreiben über den Knoten funktioniert, wenn man schreibt einen kleinen
Datei. I. e:
auf die per nfs eingebundenen Knoten
aber
liefern die folgenden Fehler
Daher die Lösung ist die Verwendung eine andere Art von Datei-system, gfs zum Beispiel.
InformationsquelleAutor Luixv