# Datenbankverbindung bricht nach ca. 12 Stunden Verbindung ab



## milanwb (2. Sep 2006)

Hallo, ich habe einen Server programmiert, der 24 Stunden am Tag online sein soll.

Das Problem ist aber, dass meine Mysql Datenbank nach etwa 12 Stunden benutzung eine Exception wirft und der Server keine Verbindung mehr entgegen nimmt:


```
com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception[..]
```

(Ist eine gekürzte Fassung der Exception, da ich die komplette grade nicht zur Hand habe, kann sie aber morgen posten, falls sie erforderlich ist!)

Ich habe schon versucht bei google etwas zu finden. Aber da sind sich die User irgendwie nicht einig was es für ein Fehler ist und wie man ihn beheben kann.
Es hat wohl etwas mit dem Autoconnecten zu tun!

Ich hoffe jemand kann mir weiter helfen!

Mfg

Michael


----------



## bronks (2. Sep 2006)

Jetzt wäre es interessant zu erfahren, wie und wo Du die Connection aufbaust und was im laufe des Servletlebens damit passiert ...

Auf jeden Fall mußt Du für solche Späße beim Verbundungsaufbau den URL-Parameter "autoreconnect=true" verwenden. Mit Sicherheit schmeist er die Exception wegen "wait_timeout". MySql ist eine DB die mit PHP an Bedeutung gewonnen hat ...


----------



## Grizzly (18. Sep 2006)

Bei uns im Geschäft durfte ich vor einer Weile eine kleine Serveranwendung basteln, die alle 6 Stunden Stempelungen aus einer Datenbank ausliest und diese in eine Textdatei schreibt, damit unsere Personalabteilung diese in ihre Zeiterfassung importieren kann. Da habe ich auch öfters das Problem, dass die Verbindung weg ist. Die Lösung ist da aber ganz einfach: Einfach beim Auslesen er Datenbank die Datenbank öffnen und danach schließen. Länger muss man sich ja auch nicht geöffnet haben. Und siehe da: Das Problem ist weg.

Mit dem Problem hat man nämlich auch zu kämpfen, wenn man aufgrund bspw. einer Konfigurationsänderung die Datenbank neu starten muss.

Ich weiss allerdings nicht, inwieweit das bei Deiner Anwendung möglich ist. Bzw. was verstehst Du unter einem Server? Ein Servlet? Eine Java Anwendung?


----------



## KSG9|sebastian (18. Sep 2006)

Ich denk mal das du die Verbindung nur einmal aufbaust. Und dann kickt mysql die Verbindung nach 12 Stunden inaktivität. Dafür gibts das wait timeout, wie oben schon geschrieben.


----------

