Från stack-trace du angav kan jag dra en enda slutsats:du får helt enkelt slut på anslutningar.
Detta kan orsakas av långa transaktioner, möjligen på grund av långsamma frågor eller felaktiga applikationstransaktionsgränser.
Jag föreslår att du börjar använda FlexyPool , som stöder Tomcat DBCP och få en bättre förståelse för både anslutningen och transaktionsanvändningen. FlexyPool tillhandahåller många histogram du kanske är intresserad av, som anslutningsförvärvstid och leasingtid.
En, bara för att vara på den säkra sidan, kontrollera MySQL-drivrutinsversionen också och se om du kör på ett föråldrat bibliotek.