Ich habe über Nacht eine Ausnahme in meiner Anwendung.
Meine Umgebung ist eine Java-Webanwendung, die Tomcat verwendet, in Java6 geschrieben ist und auf MySQL läuft, wobei Hibernate3 verwendet wird, um eine Verbindung zur Datenbank herzustellen (unter Verwendung des MySQL-Connectors 5.0.3 - mysql-connector-java-5.0.3-bin). jar)
Es gibt einen geplanten Job, der über Nacht läuft (mit Quarz als Scheduler). Wenn er um 3 Uhr morgens läuft, gibt er die folgende Ausnahme, wenn er versucht, auf die Datenbank zuzugreifen (ich habe Bits des Stack-Trace mit "xxx" umbenannt) "Wie es interner Code für die Firma ist, für die ich arbeite":
%Vor%Am Morgen, wenn man sich in die Anwendung einloggt (was auch Datenbankzugriff erfordert), gibt es eine ähnliche Ausnahme, aber nachdem wir ungefähr 5 Minuten gewartet haben und es erneut versuchen, können wir in die App gelangen.
Ich habe die Datenbank überprüft und kann einfache SELECTs für Tabellen ausführen, mit denen sie sich verbinden möchte. Jede Hilfe wäre willkommen.
Ihr Zeitlimit für den DBCP-Verbindungspool wird mit der folgenden Konfiguration überschritten ...
Eine einfache Lösung besteht darin, DBCP dazu zu bringen, Verbindungen zu verifizieren, bevor sie dem Aufrufer übergeben werden. Fügen Sie Ihrer BasicDataSource-Konfiguration die folgenden Eigenschaften hinzu:
%Vor%Eine Liste aller Optionen finden Sie hier: Ссылка
BEARBEITEN: Für eine leichte Korrektur in dem, was passiert, siehe unten den Kommentar von MJB.