# ISAM error: too many files open



## foobar (26. Apr 2007)

Hallo,

ich arbeite gerade an einer Anwendung die per JDBC auf eine Informix-DB zugreift. Das Problem ist, daß ich reproduzierbar nach einer bestimmten Anzahl von geschriebenen Datensätzen folgende Exception bekomme:

 Could not open database table (mydb.myTable)
 caused by:
 ISAM error: too many files open

In meiner Software verwende ich viele PreparedStatemens und ich weiß, daß ich nicht alle schliesse nachdem diese nicht mehr verwendet werden. Kann das diesen Fehler verursachen? Ist das ein Problem, wenn man die PreparedStatements und ResultSets nicht schliesst?

Viele Grüße,
foobar


----------



## AlArenal (26. Apr 2007)

Was sagt die DB-Doku zu der Fehlermeldung?

Ich könnte mir vorstellen, dass es ein Limit des OS ist. Wenn es ne Linux/Unix Karre ist, such mal nach Doku zu ulimit. Da dürfte es aber auch Empfehlungen seitens des DB-Herstellers geben. Mach dann mal ein cat /proc/sys/fs/file-max


----------



## KSG9|sebastian (26. Apr 2007)

Schließ zuerst mal sämtliche ResultSets


----------



## foobar (26. Apr 2007)

Erstmal Danke für eure Antworten.

Ja, es ist ein Linuxsystem.



> 104 ISAM error: too many files open.
> The ISAM processor has reached its limit of open files. For C-ISAM programs, review the program logic and change it so that fewer files are open concurrently. Use isclose to close unneeded files. For SQL products, this query is too complex; it uses too many tables concurrently. Perform the query in steps, and use temporary tables.
> 
> 
> ...


----------



## KSG9|sebastian (27. Apr 2007)

Hast du sehr umfangreiche Querys? Falls ja dann zeig mal welche her..


----------



## foobar (27. Apr 2007)

Die Queries sind ziemlich simpel, das ist nicht das Problem. Ich hab jetzt mal überall finally-Blöcke eingebaut *ächzi* und anscheinend läuft es jetzt. Aber merwürdig finde ich das ganze schon. Das ist ja nicht meine erste DB-Anwendung in Java und ich habe mich bisher nie um das Schliessen der PreparedStatements sorgen müssen. Vielleicht liegt hängt das auch mit dem JDBC-Treiber zusammen oder mit Informix. Hat jemand schon mal ähnliche Erfahrungen gemacht?


----------

