Da DBCP holder returnerede mysql-forbindelser åbne for kommende forbindelsesanmodninger, bliver de ofre for MySQL Server timeout .
DBCP har en række funktioner, der kan hjælpe (kan bruges fra og med Tomcat 5.5 IIRC).
validationQuery="SELECT 1"
testOnBorrow="true"
Valideringen sikrer, at en forbindelse er gyldig, før den returneres til en webapp, der udfører 'låne'-metoden. Flaget aktiverer selvfølgelig denne funktion.
Hvis timeoutet (tror jeg tror) er forløbet, og forbindelsen er død, testes en ny forbindelse (hvis der ikke er nogen længere, oprettes den) og leveres til webappen.
Andre mulige tilgange:
-
brug
testWhileIdle="true"
DBCP i dine ressourceindstillinger for også at kontrollere inaktive forbindelser, før en effektiv anmodning detekteres. -
Brug 'connectionProperties' til at hærde din MySQL-forbindelse (f.eks.
autoReconnect/autoReconnectForPools=true
)