Przypuszczam, że problem pojawia się, ponieważ serwer bazy danych zabija połączenie, podczas gdy pula połączeń aplikacji nadal ma do niego dostęp. Dzięki krótszemu limitowi czasu w puli połączeń aplikacji niż po stronie serwera bazy danych połączenie jest odnawiane przez pulę połączeń aplikacji, zanim zostanie zabite przez serwer bazy danych, co pozwala uniknąć problemu. Mój serwer bazy danych MySQL ma limit czasu oczekiwania wynoszący 28800 sekund, a moja pula połączeń aplikacji C3P0 ma limit czasu oczekiwania wynoszący 14400 sekund. Sensowne jest, aby łańcuch oczekiwania na przekroczenie limitu czasu był krótszy od serwerów do klientów.