# HSQLDB: socket creation error



## @x.l (3. Apr 2008)

Hallo zusammen,

ich habe folgendes Problem. Ein Servlet holt und schreibt Daten aus einer HSQLDB-Datenbank. Dies klappt auch eine gewisse Zeit (ca. 1500+/- Abfragen). Doch mit einem Mal knallt es und ich bekommen eine SQLException mit der Meldung: "socket creation error"

Nun bin ich ratlos wie das passieren kann. Wenn diese Meldung kam, kann ich die Datenbank auch nicht mehr mit dem DatabaseManager von hsqldb erreichen - er verweigert die Verbindung mit der gleichen Fehlermeldung.

Hat jemand einen Ansatzpunkt wie ich das Problem beheben könnte?


----------



## HoaX (4. Apr 2008)

ich würde tippen du hast zu viele offene verbindungen zur datenbank da du immer neue erstellt und nie schließt. "netstat" auf konsole sollte da aufschluss bringen ... oder ein blick in den code.


----------



## @x.l (4. Apr 2008)

Vielen Dank! Genau das wars!


----------



## benedikt.s (18. Apr 2011)

Hallo Zusammen, 

ich habe hier dasselbe Problem. 

Allerdings erhalte ich den Fehler "socket creation error" trotz explizitem schließen der Connection.
Zudem schließe ich zur Sicherheit alle ResultSets und Statements. 

Nach ca. 3500 Einträgen geht nichts mehr. (Netstat voll mit Verbindungen zum Server)
Nach ca. 1-2 Minuten ist wieder eine Verbindung möglich. (Netstat leert sich nach und nach)

Kann es sein, dass JAVA die Verbindungen schneller aufbaut, als Sie vollständig geschlossen werden können?

Was tun in diesem Fall?

Grüße,
Ben


----------



## Gast2 (18. Apr 2011)

Connection Pooling nutzen.


----------



## benedikt.s (19. Apr 2011)

Ja das wäre eine Möglichkeit, ist aber mit einigen Umbauten verbunden die Ich vermeiden wollte.

Wir verwenden HSQLDB 1.8 gibt es in Diesem Bereich Erfahrungen mit der Version 2?
Besseres bzw. schnelleres Connection handling?

Falls wir Pooling verwenden: 
Gibt es Erfahrungswerte wie viele Statements eine Connection verträgt?

Die Importe können mehrere 100000 Statements enthalten, auf wie viele Connection würdet Ihr das Aufteilen?


----------



## maki (19. Apr 2011)

> Die Importe können mehrere 100000 Statements enthalten, auf wie viele Connection würdet Ihr das Aufteilen?


Auf eine einzige Connection.
Oder gibt es gründe das nebenläufig zu machen?

Warum eigentlich keine Batches nehmen?
Man kann zB. mehrere Inserts auf einmal losschicken abschicken.


----------

