Mysql
 sql >> Datenbank >  >> RDS >> Mysql

java jdbc mysql connector:wie man die Trennung nach einer langen Leerlaufzeit löst

Der MySQL-JDBC-Treiber verfügt über eine Funktion zur automatischen Wiederverbindung, die gelegentlich hilfreich sein kann. siehe "Treiber/Datenquelle Klassennamen, URL-Syntax und Konfigurationseigenschaften für Connector/J ", und lesen Sie die Vorbehalte.

Eine zweite Option ist die Verwendung eines JDBC-Verbindungspools.

Eine dritte Möglichkeit besteht darin, eine Abfrage durchzuführen, um zu testen, ob Ihre Verbindung zu Beginn jeder Transaktion noch aktiv ist. Wenn die Verbindung nicht aktiv ist, schließen Sie sie und öffnen Sie eine neue Verbindung. Eine häufige Abfrage ist SELECT 1 . Siehe auch:

Eine einfache Lösung besteht darin, die MySQL-Konfigurationseigenschaften zu ändern, um das Zeitlimit für Sitzungsleerlauf auf eine wirklich große Zahl einzustellen. Allerdings:

  • Das hilft nicht, wenn Ihre Anwendung sehr lange im Leerlauf sein wird.
  • Wenn Ihre Anwendung (oder eine andere Anwendung) Verbindungen verliert, kann eine Erhöhung des Leerlaufzeitlimits dazu führen, dass verlorene Verbindungen unbegrenzt offen bleiben ... was für die Nutzung des Datenbankspeichers nicht gut ist.