1.) Я не знаю о dbcp, но что касается C3P0, эта функциональность существует в классе C3P0PooledConnection (посмотрите в методе invoke, исключение перехватывается и обрабатывается, если вы хотите больше подробностей о точной обработке I можете добавить их). Мне также нужно было узнать, содержит ли он его для удаления testOnCheckin / Checkout, и я проверил, содержит ли он это поведение.
2.) Действительно трудно сказать, так как, с одной стороны, C3P0 широко используется на многих производственных площадках, и сопровождающий возобновил активную разработку, но, с другой стороны, BoneCP, похоже, имеет несколько очень интересных принципов проектирования (примеры разбиения пула для примера ) и некоторые лестные ориентиры. Поскольку у вас обычно довольно хорошая косвенность из вашей библиотеки пулов соединений (в основном зависимость содержится в одном или двух конфигурационных файлах), я могу предложить начать с одного, и как только у вас получится продукт с реальными данными, попробуйте оптимизировать его и сравнить с другая библиотека (тоже оптимизированная конечно). Вполне возможно, что любая библиотека, которую вы выберете, будет достаточной для ваших нужд.