c3p0 или dbcp или BoneCP могут обрабатывать разорванные соединения

Я читал о c3p0 и dbcp для обработки соединений jdbc и слышал много проблем и людей, говорящих, что dbcp мертв, но c3p0 не может выполнять jdbc4 и так далее. Но я не знаю, устарели ли эти посты.

Теперь я наткнулся на BoneCP, где объясняется, как обрабатываются разорванные соединения здесь. Соединения оборачиваются, и BoneCP выполняет предварительную проверку исключений, прежде чем они будут переданы приложению. Если с соединением что-то не так, BoneCP удаляет его из пула.

1.) Все ли эти пулы имеют такую ​​обработку соединений?

2.) Этот вопрос задают снова и снова, но я не смог найти ответа с 2011 года. Какой из них я должен использовать для нового приложения, которое будет поддерживаться в течение следующих 10 лет, если не больше.


person Franz Kafka    schedule 12.06.2011    source источник
comment
Есть ли причина, по которой вы не используете реализацию пула, предоставленную сервером приложений? Дело в том, что на вашем сервере приложений его нет?   -  person Vineet Reynolds    schedule 12.06.2011
comment
Не является веб-приложением. Эти вещи все еще существуют :-) Это часть программного обеспечения, которое может быть очень многопоточным и обращаться к базе данных очень случайным образом. Я не хочу изобретать велосипед, если уже есть хорошие средства для одновременного доступа к базам данных.   -  person Franz Kafka    schedule 12.06.2011
comment
Вы можете найти ответ в этом вопросе.   -  person Vineet Reynolds    schedule 12.06.2011


Ответы (1)


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

2.) На самом деле сложно сказать, так как, с одной стороны, C3P0 широко используется на многих производственных сайтах, и сопровождающий возобновил активную разработку, но, с другой стороны, BoneCP, кажется, имеет некоторые очень интересные принципы проектирования (например, разделение пула) и некоторые лестные ориентиры. Поскольку у вас обычно есть довольно хорошая косвенность из вашей библиотеки пула соединений (в основном зависимость содержится в файле конфигурации или двух), я могу предложить начать с одного, и как только у вас будет производство с фактическими данными, попробуйте оптимизировать его и сравнить его с другая библиотека (тоже оптимизированная, конечно). Очень может быть, что любой выбранной вами библиотеки будет достаточно для ваших нужд.

person Ittai    schedule 25.04.2013