2016-08-10 3 views
0

Я пытаюсь получить соединение ActiveWeb/ActiveJDBC, настроенное на использование C3P0 для объединения пулов.Activeweb/ActiveJDBC с подключением базы данных C3P0

Я знаю, что в документацию, предоставленную Javalite говорит каждая сделка будет один открытым/закрытым соединения, но также упоминает, мы можем открыть источник данных с помощью:

new DB("default").open(cpds); 

Это заставляет меня думать, что это может быть возможным перехватывать соединение механизма открытия/закрытия, включив в AppControllerConfig:

addGlobalFilters(new DBConnectionFilterTest("default", true) ); 

... где DBConnectionFilterTest является пользовательским классом расширения DBConnectionFilter, который переопределяет до/после поведения, который открывает и закрывает соединение. Источник данных сконфигурирован внутри конструктора с использованием ComboPooledDataSource.

Мне было любопытно, если бы кто-нибудь имел представление об этой конфигурации или успешно интегрировал C3P0 в activeweb/activeJDBC?

Самое дальнее, что я получил до сих пор, - это запустить C3P0. Я вижу 5 подключений на моем мониторе сеанса, но activeweb все еще инициирует новое соединение при выполнении транзакции. Пул C3P0 не перемещается.

ответ

1

Поскольку вы создаете собственный фильтр для открытия и закрытия соединения, не забудьте закрыть соединение после завершения запроса. Это вернет соединение обратно в пул. Выезд DBConnectionFilter код, в частности методы onException() и after(). Если по какой-то причине вы не закроете соединение, ActiveWeb попытается закрыть его для вас, но будет жаловаться в журнале.

Лично я использую встроенный бассейн от Tomcat. Он работает без каких-либо проблем в производственных условиях при большой нагрузке. Стандартная реализация DBConnectionFilter делает это тогда.

+0

Спасибо за информацию! Я использую Jetty, и до сих пор он неплохо справляется без дальнейшей реализации C3P0. Я набросил на него много нагрузочных тестов, и Jetty/Activeweb обрабатывает его на 100%. – javastunt

+0

рад, что это сработало для вас! – ipolevoy

Смежные вопросы