Questo è un po 'risposto a metà dagli altri post e volevo essere molto esplicito. Inoltre volevo essere più in stile Spring Boot. Sentiti libero di modificare gli intervalli di tempo secondo necessità.
Opzione 1:elimina le connessioni interrotte dal pool.
Usa queste proprietà:
spring.datasource.test-on-borrow=true
spring.datasource.validation-query=SELECT 1;
spring.datasource.validation-interval=30000
Opzione 2:Mantieni attive le connessioni nel pool.
Usa queste proprietà:
spring.datasource.test-while-idle=true
spring.datasource.validation-query=SELECT 1;
spring.datasource.time-between-eviction-runs-millis=60000
Opzione 3:elimina in modo proattivo le connessioni inattive.
Usa queste proprietà (Nota:non sono riuscito a trovare documentazione affidabile su questo per Spring Boot. Inoltre il timeout è in secondi e non in millisecondi):
spring.datasource.remove-abandoned=true
spring.datasource.remove-abandoned-timeout=60
Buon avvio!