Ich habe ein Tomcat-Instanz-Setup, aber die Datenbankverbindung, die ich in context.xml konfiguriert habe, bleibt nach Perioden der Inaktivität stehen.Java + Tomcat, Dying Datenbankverbindung?
Wenn ich überprüfen Sie die Protokolle ich die folgende Fehlermeldung erhalten:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Das letzte Paket erfolgreich vom Server empfangen was68051 Sekunden vor. Das letzte Paket, das erfolgreich an den Server gesendet wurde, war 68051 Sekunden vor, die länger ist als der Server konfiguriert Wert von 'wait_timeout'. Sie sollten die Verbindungsgültigkeit vor der Verwendung in Ihrer Anwendung entweder ablaufen lassen und/oder testen, indem Sie die Serverkonfigurationswerte für Client-Timeouts erhöhen oder die Verbindungseigenschaft 'autoReconnect = true' des Connectors/J verwenden, um dieses Problem zu vermeiden. Hier
ist die Konfiguration in context.xml:
<Resource name="dataSourceName"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="username"
password="********"
removeAbandoned = "true"
logAbandoned = "true"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/databasename?autoReconnect=true&useEncoding=true&characterEncoding=UTF-8" />
I autoReconnect = ture bin mit wie der Fehler zu tun, sagt, aber die Verbindung hält sterben. Ich habe das noch nie zuvor gesehen.
Ich habe auch verifiziert, dass alle Datenbankverbindungen ordnungsgemäß geschlossen werden.
Schön. Ich setze die Parameter in context.xml, und ich lasse es für 24 Stunden sitzen. Wenn es nicht funktioniert, werde ich die Antwort nicht akzeptieren. Aber es sieht vielversprechend aus! Vielen Dank! –