# SQL Exception



## BigBoss (5. Nov 2007)

hi,


```
java.sql.SQLException: Communication link failure: java.net.SocketException, underlying cause: socket closed
```

ich hab gerade das problem das ein programm diese Exception wirft ohne einen wirklichen grund zu haben.
Die Datenbank ist da und wurde auch in der Zeit als die Exception auftrat nicht neugestartet.
Diese Exception tritt auch nur vereinzelt auf und auch nicht immer. Nach einem Neustart des Programms läuft dieses ohne probleme.
Hat irgend jemand eine idee was diese exception auslösen kann und wie man das verhindert?
Gruß & thx BB


----------



## L-ectron-X (5. Nov 2007)

Eventuell nimmt der DB-Server keine Anfragen mehr an, weil bspw. ein Timeout konfiguriert ist.


----------



## BigBoss (5. Nov 2007)

kannst du das etwas genauer erklären?
Ich kann nicht nachvollziehen wieso der das tun sollte.
Gruß BB


----------



## maki (5. Nov 2007)

Benutzt du einen ConnectionPool?


----------



## y0dA (5. Nov 2007)

maki hat gesagt.:
			
		

> Benutzt du einen ConnectionPool?



Wenn ja, dann gehen ihm wohl schlichtweg die zugewiesenen Connections aus.


----------



## maki (5. Nov 2007)

Naja, eine spordische "Socket closed Exception" wäre eher ein Anzeichen dafür das ein Timeout, wie von L-ectron-X vorgeschlagen, die Ursache ist.

Oder der Server hat ein Limit an offenen Connections, oder das Netzwerkkabel ist lose...


----------



## Guest (5. Nov 2007)

danke erstmal für die Antworten
aber ich benutze keinen pool und die hardware ist auch komplett in ordnung.
die möglichkeit mit dem connectionlimit währe möglich aber der fehler ist bis jetzt immer früh zwischen 7 & 8 uhr aufgetreten wo der mysqlserver noch nicht mal annähernd belastet wird
kann ich irgendwie was genaueres aus der fehlermeldung rausbekommen?
Gruß & thx BB


----------



## tuxedo (5. Nov 2007)

Das hört sich doch stark nach einem TimeOut an... 

Wenn die Verbindung zur DB über einen längeren Zeitraum nicht aktiv genutzt wird, dann kommt i.d.R. ein Fehler in der von dir beschriebenen Art. 

Entweder du suchst mal nach einen "keep alive" in bezug auf die Connection, oder du sorgst dafür dass regelmäßig eine Anfrage an die DB geht.

- Alex


----------



## BigBoss (6. Nov 2007)

hmm das komische ist ja das es kein timeout sein kann da kurz vor dieser exception ein sqlquery erfolgreich ausgeführt wird.
Gruß BB


----------



## The_S (6. Nov 2007)

Du bekommst auch nen Timeout wenn eine Abfrage zu lang dauert. Angenommen der Timeout ist auf 15 Minuten eingestellt. Jetzt hast du aber ne hammermäßige Abfrage die 16 Minuten dauert. Dann bekommste nach 15 nen Timeout.


----------

