sql >> Databasteknik >  >> RDS >> Mysql

java jdbc mysql-kontakt:hur man löser frånkoppling efter en lång inaktivitetstid

MySQL JDBC-drivrutinen har en autoreconnect-funktion som kan vara till hjälp ibland; se "Drivrutin/datakälla Klassnamn, URL-syntax och konfigurationsegenskaper för Connector/J ", och läs varningarna.

Ett andra alternativ är att använda en JDBC-anslutningspool.

Ett tredje alternativ är att utföra en fråga för att testa att din anslutning fortfarande är vid liv i början av varje transaktion. Om anslutningen inte är aktiv, stäng den och öppna en ny anslutning. En vanlig fråga är SELECT 1 . Se även:

En enkel lösning är att ändra MySQL-konfigurationsegenskaperna för att ställa in sessionens inaktiva timeout till ett riktigt stort antal. Men:

  • Detta hjälper inte om din applikation kan vara inaktiv under en riktigt lång tid.
  • Om din applikation (eller någon annan applikation) läcker anslutningar, kan en ökning av inaktiv timeout innebära att förlorade anslutningar förblir öppna på obestämd tid ... vilket inte är bra för databasminneanvändning.



  1. Hur många databasindex är för många?

  2. Neo4j - Skapa en begränsning med Cypher

  3. Kör två SQL-frågor på en php-sida (SET + SELECT)

  4. PostgreSQL:FATAL - Peer-autentisering misslyckades för användare (PG::ConnectionBad)