sql >> Databasteknik >  >> RDS >> Mysql

Spring app tappar anslutningen till MySql efter 8 timmar. Hur konfigurerar man korrekt?

Det korta svaret är att det borde räcka. DBCP stöder testning av anslutningen vid lån från anslutningspoolen (standardinställningen), men stöder även test vid retur och test medan inaktiv.

Det är också värt att förstå vad som kan gå fel här. Det låter som att något mellan din Tomcat-server och databasen avbryter den inaktiva anslutningen efter en timeout (som en router eller brandvägg). Problemet med detta är att Tomcat tror att den fortfarande har en giltig anslutning, försöker göra lite arbete med anslutningen och misslyckas, men håller anslutningen vid liv och returnerar den till poolen. Nu kommer alla ytterligare försök att prata med databasen att misslyckas om den får samma brutna anslutning från poolen.

Jag tror att det var Michael Nygards utmärkta 'Release It!' bok som beskrev detta scenario i en av hans berättelser från skyttegravarna.

Du kommer också att vilja undersöka hur MySQL rensar upp döda anslutningar som när Tomcat tappar anslutningen efter 8 timmar kommer DB också att vara omedveten om den misslyckade anslutningen.

En sista punkt, om du använder Tomcat 7, byt till deras nya anslutning pool eftersom det ger bättre prestanda än DBCP.



  1. Få maxvärde från rader och gå med i en annan tabell

  2. Vad är andra nivån SQL Injection

  3. ställer in mamp-portarna till 80 och 3306

  4. hur man hittar exakt data mellan valt diagonalområde i mysql-frågan