ISAM error: too many files open

Status
Nicht offen für weitere Antworten.

foobar

Top Contributor
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

Top Contributor
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
 

foobar

Top Contributor
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.
Also auf meinem Rechner kriege ich als Ausgabe der file-max: 205711 und auf dem Rechner auf dem die DB läuft sind es nur 16284. Da ist schon ein kleiner Unterschied.

So, ich bin mal den Code durchgegangen und habe ein paar finally-Statements eingefügt in denen ich die Preparedstatements geschlossen habe. Dadurch hat sich der Fehler etwas nach hinten geschoben d.h. es dauert etwas länger bis der Fehler auftritt. Das ist ja schon mal ein Hinweis darauf, daß der Fehler auf die PreparedStatements zurück zu führen ist.
Kann man die Anzahl der max-files einfach so hoch setzen oder kann das zu problemen führen?
 

foobar

Top Contributor
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?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Tom#234 Jakarta Web Service SQL Access Error Datenbankprogrammierung 7
Kirby.exe Error bei Trigger Datenbankprogrammierung 5
D Hibernate Error: NoSuchMethodError Datenbankprogrammierung 4
thet1983 MySQL Error Code 1111: Invalid use of group function Datenbankprogrammierung 2
M MySQL Error in SQL syntax Datenbankprogrammierung 10
F Java SQLite Error Datenbankprogrammierung 19
dat_vin JavaFX Datenbankverbindung über JPA und MySQL Error Datenbankprogrammierung 0
G SQLLite error code 0x13: constraint failed Datenbankprogrammierung 7
L Conversion-Error bei JDBC Date Literals Datenbankprogrammierung 3
F Java SQL Syntax Error erst nach mehrmaligen Aufrufen Datenbankprogrammierung 3
H SQLite SQLExeption Domain error Datenbankprogrammierung 2
B Error: ORA-00933: SQL command not properly ended Datenbankprogrammierung 5
D Error 1452: Cannot add or update a child row: a foreign key constraint fails Datenbankprogrammierung 15
Cypha JPA Syntax error - falscher Aufbau? Datenbankprogrammierung 3
D SQL Skript "ignore this error" Datenbankprogrammierung 8
B My-SQL Abfrage - Out Of Memory Error Datenbankprogrammierung 13
GianaSisters MySQL Datenbank Select error Datenbankprogrammierung 5
P [Hibernate] SQL Syntax-Error Datenbankprogrammierung 2
D mysql - out of memory error Datenbankprogrammierung 4
X von myISAM auf MEMORY! ERROR 1114: Table full Datenbankprogrammierung 13
N SQL Query Browser Error Datenbankprogrammierung 6
E try Error Datenbankprogrammierung 2
A Socket write error Datenbankprogrammierung 2
L You have an error in your sql syntax Datenbankprogrammierung 4
D Bean: server internal error Datenbankprogrammierung 5
@ HSQLDB: socket creation error Datenbankprogrammierung 6
C Error in my_thread_global_end() - FehlerMeldung MySql? Datenbankprogrammierung 2
E ERROR: argument of JOIN/ON must be type boolean? Datenbankprogrammierung 2
K Connection error Datenbankprogrammierung 18
R Function Sequence Error - Warum? Datenbankprogrammierung 2
Z MySQL "Too many connections" auch nach schliessen der Connections. Datenbankprogrammierung 10
OnDemand One to Many bekomm es nicht hin Datenbankprogrammierung 7
D MySQL Many to Many Tabellen in Java abbilden? Datenbankprogrammierung 4
G MongoDB - klassisches one to many Datenbankprogrammierung 2
P Many to Many mit JoinTable Datenbankprogrammierung 2
E PostgreSQL Exception too ...many clients already bei DB-Abfrage Datenbankprogrammierung 14
M Hibernate liefert mir bei many-to-one leeres Feld Datenbankprogrammierung 5
G Many to Many Datenbankprogrammierung 2
rambozola mysql to many connections Datenbankprogrammierung 27

Ähnliche Java Themen

Neue Themen


Oben