Krótka odpowiedź brzmi:powinno wystarczyć. DBCP obsługuje testowanie połączenia przy pożyczaniu z puli połączeń (domyślnie), ale obsługuje również testowanie przy powrocie i testowanie w stanie bezczynności.
Warto też zrozumieć, co może być tutaj nie tak. Wygląda na to, że coś między serwerem Tomcat a bazą danych zrywa bezczynne połączenie po przekroczeniu limitu czasu (np. router lub zapora). Problem polega na tym, że Tomcat myśli, że nadal ma prawidłowe połączenie, próbuje wykonać trochę pracy z połączeniem i kończy się niepowodzeniem, ale utrzymuje połączenie i zwraca je do puli. Teraz każda kolejna próba nawiązania komunikacji z bazą danych zakończy się niepowodzeniem, jeśli otrzyma ona to samo zerwane połączenie z puli.
Myślę, że to był znakomity „Release It!” Michaela Nygarda. książka, która opisała ten scenariusz w jednej z jego historii z okopów.
Będziesz także chciał sprawdzić, w jaki sposób MySQL czyści martwe połączenia, ponieważ gdy Tomcat traci połączenie po 8 godzinach, baza danych również nie będzie wiedziała o nieudanym połączeniu.
Ostatnia uwaga, jeśli używasz Tomcata 7, przełącz się na nowe połączenie basen ponieważ oferuje lepszą wydajność niż DBCP.