Z podanego przez Ciebie śledzenia stosu mogę wyciągnąć jeden wniosek:po prostu kończą Ci się połączenia.
Może to być spowodowane długotrwałymi transakcjami, prawdopodobnie z powodu powolnych zapytań lub niewłaściwych granic transakcji aplikacji.
Proponuję zacząć używać FlexyPool , który obsługuje Tomcat DBCP i pozwala lepiej zrozumieć połączenie i wykorzystanie transakcji. FlexyPool zapewnia wiele histogramy może Cię zainteresować, na przykład czas pozyskania połączenia i czas dzierżawy.
Aby być po bezpiecznej stronie, sprawdź również wersję sterownika MySQL i zobacz, czy korzystasz z przestarzałej biblioteki.