J'ai eu des problèmes similaires avec MySQL et un pool de connexions. Le problème est que vous indiquez au pool de connexions qu'un délai d'inactivité est de 30 minutes, mais que la base de données coupe la connexion après 10 secondes. Étant donné que votre période de vérification de connexion inactive est de 120 secondes, il reste un peu moins de 110 secondes au pool pour utiliser une connexion interrompue !
J'utiliserais les paramètres suivants pour la production :
MySQL:
wait_timeout=75
C3P0:
maxIdleTime=60
idleConnectionTestPeriod=55