Нужно ли использовать библиотеку пула C3P0 в моем веб-приложении (grails)? - PullRequest
2 голосов
/ 10 мая 2010

Я совершенно не знаком с библиотекой пула соединений. Я только что обнаружил это в этой статье блога ), и я не уверен, что должен использовать ее в своем веб-приложении на основе grails / hibernate / mysql.

Так что мой вопрос прост: в каких ситуациях вы бы предложили интегрировать библиотеку пула соединений в приложение grails? Всегда, никогда или только через некоторые пороги соединений?

P.S. : Если вы когда-либо успешно использовали C3P0 в своем веб-приложении, я буду очень признателен за ваши отзывы (с точки зрения видимых положительных эффектов).

Ответы [ 4 ]

1 голос
/ 12 мая 2010

Я всегда использую пул соединений по двум причинам:

  1. Поскольку открытие соединений - дорогостоящая операция
  2. Настроить прозрачную работу крайне просто, поэтому нет никакого реального преимущества, если не использовать его.

Если вы уже используете hibernate, просто измените файл connection.provider_class вашего hibernate.cfg.xml, чтобы использовать org.hibernate.connection.C3P0ConnectionProvider и добавьте файл jar c3p0 в папка WEB-INF / lib вашего сервлета. Готово.

Если вы используете JNDI и объявление GlobalNamingResources, измените свойство type , чтобы оно указывало на com.mchange.v2.c3p0.ComboPooledDataSource , и бросьте флягу c3p0 в Tomcat's / папка lib. Готово.

1 голос
/ 11 мая 2010

Мой опыт работы с этим довольно ограничен, но в итоге я использовал C3P0 по той простой причине, что Hibernate, похоже, не обрабатывает перезапуски MySQL. Каждое утро я получал "Сломанный канал", потому что наш хостинг перезапускал MySQL каждую ночь.

Я погуглил его, и единственный совет, который я смог найти, это использовать ... пул соединений сервера приложений или C3P0. Для меня последний работает просто отлично.

1 голос
/ 11 мая 2010

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

Соединение может управляться сервером приложений (Tomcat, JBoss, Glassfish ...) или вашим приложением. Последний проще в настройке, но его сложно настроить для каждого развертывания. Конфигурирование пула соединений в приложении и настройка вашего сайта на его использование упрощает точную настройку параметров пула соединений, таких как: минимальное количество открытых соединений, максимальное время бездействия и т.

0 голосов
/ 10 мая 2010

C3P0 - очень неплохой пул, но я все равно рекомендую использовать пул соединений вашего сервера приложений или подсистемы сервлетов и настроить Grails для его использования через обычный DataSource. Используйте автономный пул соединений, когда вы не можете этого сделать (в этом случае C3P0 является хорошим выбором).

...