Обычно я бы сказал, попробовать c3p0 (другая реализация пула соединений).
Однако я думаю, что проблема заключается в том, как ваше приложение обрабатывает соединения с БД. Мне было бы интересно узнать, какие значения вы используете для пула соединений dbcp (параметры конфигурации источника данных).Попробуйте опубликовать их, пожалуйста.
Я бы использовал следующее, чтобы убедиться, что оставленные соединения будут удалены и зарегистрированы:
removeAbandoned = true
logAbandoned = true
, и я бы также попытался уменьшить значение для:
removeAbandonedTimeout
, чтобы принудительно отключить соединения раньше, чтобы вы могли определить потоки в вашем приложении, которые отвечают за удержание этих соединений дольше всего.После исправления проблемы вы можете изменить значение для нее.