-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hallo, ich erhalte bei meinem selbstprogrammierten Java-Programm nach ungefähr 10 Stunden Betrieb immer die Fehlermeldung: "Too many open files". Klar. Irgendwo muss der Fehler sein, ich habe allerdings schon mehrfach stundenlang danach gesucht und finde ihn nicht. Irgendwo wird dort im Sekunden-Takt eine Datei geöffnet, aber fragt mich net wo, da die Software doch relativ komplexx ist. Meine Fragen an die Gemeinde: 1) Wo kann man die Anzahl der maximal geöffneten Dateien einstellen? 2) Sieht man irgendie, durch welchen Aufruf, oder vielleicht sogar, welche Datei geöffnet wird? Meine Lösungssuche wäre dann nämlich entweder die Zahl der möglichen Dateien auf 20 oder 30 zu beschränken um das Problem früher auftreten zu lassen, um nicht jedesmal 10 Stunden warten zu müssen bis das Problem auftritt. Oder ich hätte wenigstens eine Anhaltspunkt, welche Art von Datei überhaupt so oft geöffnet wird. Vielleicht kennt Ihr noch andere Möglichkeiten um ein Java-Programm zu "debuggen" und den möglichen Fehler herauszufinden. Vielen Dank Michael -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFDHLCWNhM2b4kmzXwRAkbTAKCCysoUuz5GiVyM3FClGyaN74EZqACghYxP ACVw/JaEpx6l/7tPmZqzM90= =oGUy -----END PGP SIGNATURE-----
Hallo, Was fuer ein program is das web, database, files oder anders?? Die beste rat ich dir gibben kan ist the offnung von files oder connections zu passen. Du kanst das tun wenn du einen static variable als ein counter benutzen wirdest jedes mal wenn du ien file oder connection geoffnet hast. Wenn du einen pool nutzts dan sollst du die api reden un der soll ein method werden vonn solche dinge zu passen koenen. Entshuldige mein schlehten Deutsch ich hoffe du kanst verstien und das hilft dir dein problem zu loesen. Du solts auch mehr details geben weil das problem kann ins viellen dingen sein. Das kann auch das OS sein wenn du nur ein numer hast vor den VM. Gruessen. George --- Michael Post <michael.post@purematic.de> wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hallo,
ich erhalte bei meinem selbstprogrammierten Java-Programm nach ungefähr 10 Stunden Betrieb immer die Fehlermeldung: "Too many open files".
Klar. Irgendwo muss der Fehler sein, ich habe allerdings schon mehrfach stundenlang danach gesucht und finde ihn nicht.
Irgendwo wird dort im Sekunden-Takt eine Datei geöffnet, aber fragt mich net wo, da die Software doch relativ komplexx ist.
Meine Fragen an die Gemeinde:
1) Wo kann man die Anzahl der maximal geöffneten Dateien einstellen? 2) Sieht man irgendie, durch welchen Aufruf, oder vielleicht sogar, welche Datei geöffnet wird?
Meine Lösungssuche wäre dann nämlich entweder die Zahl der möglichen Dateien auf 20 oder 30 zu beschränken um das Problem früher auftreten zu lassen, um nicht jedesmal 10 Stunden warten zu müssen bis das Problem auftritt.
Oder ich hätte wenigstens eine Anhaltspunkt, welche Art von Datei überhaupt so oft geöffnet wird.
Vielleicht kennt Ihr noch andere Möglichkeiten um ein Java-Programm zu "debuggen" und den möglichen Fehler herauszufinden.
Vielen Dank
Michael -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFDHLCWNhM2b4kmzXwRAkbTAKCCysoUuz5GiVyM3FClGyaN74EZqACghYxP
ACVw/JaEpx6l/7tPmZqzM90= =oGUy -----END PGP SIGNATURE-----
-- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
__________________________________________________________ Find your next car at http://autos.yahoo.ca
* Michael Post [05.09.2005 22:54]:
ich erhalte bei meinem selbstprogrammierten Java-Programm nach ungefähr 10 Stunden Betrieb immer die Fehlermeldung: "Too many open files".
Vielleicht würde es dir helfen, wenn du wüsstest, welche Datei das ist: $ ps aux|grep java ... => PID des Prozesses herausfinden $ cd /proc/<pid>/fd $ ls -l Zeigt dir alle geöffneten Dateien des jeweiligen Java-Prozesses. Gruß, Bernhard
Moin Michael, Am Montag, 5. September 2005 22:54 schrieb Michael Post:
1) Wo kann man die Anzahl der maximal geöffneten Dateien einstellen?
zb. im kernel
2) Sieht man irgendwie, durch welchen Aufruf, oder vielleicht sogar, welche Datei geöffnet wird?
man strace zb. strace -f -t -o /tmp/tracefile -e trace=open javaprogrammaufruf je nachdem wie dein java Programm strukturiert ist könnte ein -ff für mehr Übersichtlichkeit sorgen. Mglw. musst du dir auch mal die Option -F ansehen. Wenn du dann weist wo du ungefähr suchen musst und der filename keinen Hinweis gibt kannst du die Beschränkung auf den open aufruf wieder raus nehmen dann sollte sehr schnell klar werden in welchem Kontext das file auf geht. Gruss Falk
Michael Post schrieb:
Oder ich hätte wenigstens eine Anhaltspunkt, welche Art von Datei überhaupt so oft geöffnet wird.
Habe selber vor kurzem erst den Befehl lsof (steht wohl für list open files) entdeckt. Gibt Programmname mit PID für jede geöffnete Datei aus. Grüße Uli Brochhagen -- _____________________________________________________ This mail is written in 100% recycled electrons.
Am Dienstag, den 06.09.2005, 12:04 +0200 schrieb Ulrich Brochhagen:
Michael Post schrieb:
Oder ich hätte wenigstens eine Anhaltspunkt, welche Art von Datei überhaupt so oft geöffnet wird.
Habe selber vor kurzem erst den Befehl lsof (steht wohl für list open files) entdeckt. Gibt Programmname mit PID für jede geöffnete Datei aus.
ist aber mit vorsicht zu geniessen! http://www.netadmintools.com/art295.html die info aus dem /proc filesystem ist da schon aussagekräftiger. -- einen schönen Tag noch DI Rainer Klier Abteilung IT - Entwicklung ECOLOG Logistiksysteme GmbH Bauernstraße 11, A-4600 Wels Tel. ++43/7242/66200 Fax ++43/7242/66200-200 mailto:kra@ecolog.at http://www.ecolog.at
participants (6)
-
Bernhard Walle
-
Falk Sauer
-
George Stoianov
-
Michael Post
-
Rainer Klier
-
Ulrich Brochhagen