Ting du kan prøve:
-
setMaxWait(-1)
på BasicDataSource. Det fortæller, at den skal vente i det uendelige på en forbindelse. -
Tjek, at
wait_timeout
på din MySQL-server er indstillet til standard 8h. -
Indstil
?autoReconnect=true
på din JDBC URL -
setTestOnBorrow(true)
på BasicDataSource. Dette vil forhindre den i at uddele forældede forbindelser, men vil tilføje overhead til din app (men hvis du allerede har så lange enkeltforespørgsler, vil du sandsynligvis ikke engang bemærke den del).
Generelt synes jeg, det er en dårlig idé at blive ved med at genbruge en forbindelse. For mig er pointen med at have en pool, at jeg ikke behøver at gøre det.
Er dine forespørgsler transaktionelle? Er en virkelig lang forespørgsel, der låser en større tabel?