Я много читал о них в блогах и на других форумах, но не смог прийти к решению.
Существуют ли какие-либо подходящие альтернативы этим двум?
Переведено автоматически
Ответ 1
DBCP устарел и не соответствует производственному уровню. Некоторое время назад мы провели внутренний анализ двух из них, создав тестовое устройство, которое генерировало нагрузку и параллелизм для двух из них, чтобы оценить их пригодность в реальных условиях.
DBCP последовательно генерировал исключения в нашем тестовом приложении и изо всех сил пытался достичь уровней производительности, с которыми C3P0 был более чем способен справиться без каких-либо исключений.
C3P0 также надежно обрабатывал отключения DB и прозрачные переподключения при возобновлении, тогда как DBCP никогда не восстанавливал соединения, если ссылка была удалена из-под него. Что еще хуже, DBCP возвращал объекты подключения в приложение, для которого произошел сбой базового транспорта.
С тех пор мы использовали C3P0 в 4 основных потребительских веб-приложениях с высокой нагрузкой и никогда не оглядывались назад.
ОБНОВЛЕНИЕ: Оказывается, что после многих лет бездействия разработчики Apache Commons вывели DBCP из состояния покоя, и теперь это снова активно развивающийся проект. Таким образом, мой исходный пост может устареть.
При этом я еще не испытывал производительность этой новой обновленной библиотеки и не слышал о том, что она де-факто присутствует в какой-либо новой платформе приложений.
Ответ 2
Я приглашаю вас попробовать BoneCP - это бесплатно, с открытым исходным кодом и быстрее, чем доступные альтернативы (см. Раздел "Тесты").
Отказ от ответственности: Я автор, так что вы могли бы сказать, что я предвзят :-)
ОБНОВЛЕНИЕ: По состоянию на март 2010 года, все еще примерно на 35% быстрее, чем новый перезаписанный пул Apache DBCP ("tomcat jdbc"). Смотрите ссылку на Динамический тест в разделе "Тест".
Обновление # 3: (14 сентября) Пожалуйста, примите во внимание, что BoneCP на данный момент устарел, рекомендуем переключиться на HikariCP.
Обновление # 4: (15 апреля) - я больше не владею доменом jolbox.com
Ответ 3
У меня возникли проблемы с DBCP, когда истекло время ожидания подключений, поэтому я опробовал c3p0. Я собирался запустить это в производство, но затем начал тестирование производительности. Я обнаружил, что c3p0 работает ужасно. Я вообще не смог настроить его на хорошую работу. Я обнаружил, что он в два раза медленнее DBCP.
Это было в два раза быстрее, чем c3p0, и устранило другие проблемы, которые у меня возникали с DBCP. Я потратил много времени на изучение и тестирование 3 пулов. Мой совет при развертывании на Tomcat - использовать новый пул Tomcat JDBC.
Ответ 4
Что касается проблемы с автоматическим переподключением с DBCP, кто-нибудь пробовал использовать следующие 2 параметра конфигурации?