powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Пул соединений в hibernate
12 сообщений из 12, страница 1 из 1
Пул соединений в hibernate
    #33627647
Pomytkin Evgeny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У нас используется пул c3p0. До недавнего времени все работало, но сейчас при хорошей нагрузке он начинает конкретно тупить.
Попытались перейти на пул proxool, но у него оказалась другая проблема - не удалось настроить его так, чтобы он закрывал отработавшие statement. Результат - max open cursor.
Помогите, плз. Очччень надо быстро решить данную проблему!
...
Рейтинг: 0 / 0
Пул соединений в hibernate
    #33628118
М.Голованов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в чем выражается "тупить"? КОНКРЕТНО?
...
Рейтинг: 0 / 0
Пул соединений в hibernate
    #33628141
Pomytkin Evgeny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Резкое замедление работы. При этом база не загружена и машина с tomcat тоже.
...
Рейтинг: 0 / 0
Пул соединений в hibernate
    #33628260
М.Голованов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pomytkin EvgenyРезкое замедление работы.

Это просто перевод на русский. Тоже ничего не говорит.

c3p0 - проверенный пул, у меня в боевой системе управляет 50 соединениями без каких-либо проблем.
...
Рейтинг: 0 / 0
Пул соединений в hibernate
    #33628329
Pomytkin Evgeny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У нас тоже 50 коннектов - и такая беда только неделю продолжается.

Про то, что это не предел для с3р0 я знаю. но у нас странная ситуация: в пик нагрузки сервер сначала замедляется и работает все медленнее и медленнее. Буквально за 10 минут он замедляется в десятки раз, т.е. на каждый клик мышки реакция до 10 - 15 мин при том, что раньше - максимум 3 сек. При этом база не нагружена и машина с tomcat не загружена.

Почему я говорю, что скорее всего виноват с3р0? Заменил на proxool и все стало работать нормально, пока не стала вылетать периодически ошибка "max open cursor" - в с3р0 этого не было. Уж очень правдободобно получается: заменил пул - исчезло торможение.

Кстати, есть такая фича что у с3р0, так и у proxool : они по какой то мне неведомой причине после отработки запроса курсор не закрывают. Хотя hibernate сессии я говорю закрываться. При этом в с3р0 не наталкивается на проблемы, а у proxool возникает ошибка "max open cursor". Можно ли закрывать курсоры в с3р0 или proxool ?
...
Рейтинг: 0 / 0
Пул соединений в hibernate
    #33628825
М.Голованов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я Вам посоветую найти и привинтить p6spy. Погоняете один поток, посмотрите, что делается с базой (какие запросы выполняются, в какой последовательности и в какое время, что закрывается, а что нет). Наверняка найдете какие-нибудь проблемы с вашей настройкой или с программным кодом. Лучше один раз увидеть.

http://www.p6spy.com/download.html
...
Рейтинг: 0 / 0
Пул соединений в hibernate
    #33629081
Pomytkin Evgeny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема оказалась в том, что по каким то непонятным причинам становится очень много открытых курсоров. Это приводит к тому что когда достигается предел открытых курсоров на сессию, с3р0 начинает ожидать закрытия курсоров, а proxool смело забивает на эту проблему(и я получаю еще бОльшую проблему).

Отсюда вопрос: как закрывать курсоры в hibernate? У сессии close() делается, но этого надо полагать не достаточно.

Уточнение: у нас используются в большом количестве SQLQuery. СУБД - Oracle, AppServer - Tomcat, Pool - c3p0.
...
Рейтинг: 0 / 0
Пул соединений в hibernate
    #33630862
М.Голованов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pomytkin EvgenyУточнение: у нас используются в большом количестве SQLQuery.

Понятно. Создаете SQLQuery, получаете List, ScrollableResults или Iterator. Если получили List, ничего делать не надо - List есть List, он заполнился чем получилось и курсор закрылся. А вот если вы получили ScrollableResults или Iterator, будьте любезны его ЯВНО закрыть.

Это есть в документации ():

авторDue to a silly limitation of the JTA spec, it is not possible for Hibernate to automatically clean up any unclosed ScrollableResults or Iterator instances returned by scroll() or iterate(). You must release the underlying database cursor by calling ScrollableResults.close() or Hibernate.close(Iterator) explicity from a finally block. (Of course, most applications can easily avoid using scroll() or iterate() at all from the CMT code.)

Короче, для итераторов и скроллеров просто вызываете Hibernate.close(...).
...
Рейтинг: 0 / 0
Пул соединений в hibernate
    #33630868
М.Голованов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забыл дописать: ... сразу после того как отработали с итератором или скроллером.
...
Рейтинг: 0 / 0
Пул соединений в hibernate
    #33636226
М.Голованов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогло? Хотелось бы убедиться
...
Рейтинг: 0 / 0
Пул соединений в hibernate
    #33636859
Pomytkin Evgeny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня вот такой код:

Код: plaintext
1.
2.
    List list = query.list();
    ...

Поэтому Hibernate.close(...) как мне кажется для данного случая не актуален.
...
Рейтинг: 0 / 0
Пул соединений в hibernate
    #33636976
М.Голованов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для List не актуален. Курсор для List закрывается сразу после того, как List заполнен результатами запроса. А вот курсоры для Iterator и ScrollableResults закрываются только явно - Hibernate.close() (закрывает данный курсор) или Session.clear() (закрывает все открытые курсоры).
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Пул соединений в hibernate
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]