Dalla traccia dello stack che hai fornito, posso trarre un'unica conclusione:stai semplicemente esaurendo le connessioni.
Ciò può essere causato da transazioni di lunga durata, probabilmente a causa di query lente o limiti impropri delle transazioni dell'applicazione.
Ti suggerisco di iniziare a utilizzare FlexyPool , che supporta Tomcat DBCP e offre una migliore comprensione sia della connessione che dell'utilizzo delle transazioni.FlexyPool fornisce molti istogrammi potrebbe interessarti, come il tempo di acquisizione della connessione e il tempo di noleggio.
E, per sicurezza, controlla anche la versione del driver MySQL e verifica se stai utilizzando una libreria obsoleta.