2014-09-07 3 views
1

Недавно я работаю над проектом Spring + Hibernate с Oracle. Я узнаю, что всегда открыты сотни курсоров одновременно. У меня нет clew, чтобы решить эту проблему. Может ли кто-нибудь дать мне несколько советов? или некоторые ссылки?Когда спящий режим закрывает курсор?

PS: Я знаю, что это не очень хороший вопрос, но я нашел, что трудно найти точный документ, и у меня нет времени работать со всеми спящими документами в настоящее время.

PS2: В проекте использовалось множество критериев и обычного запроса выбора.

ответ

0

Если вы используете Hibernate 4.3.0.Final вы, вероятно, опыт известной гибернации ошибки:

https://hibernate.atlassian.net/browse/HHH-8811

Как вы можете видеть ссылки , эта ошибка вызывает слишком много открытых курсоров.

Переключить на версию 4.3.1.Final решает проблему.

1

Ваш код должен заботиться о закрытии курсоров. Правило большого пальца - если вы открываете курсор, то после обработки набора результатов вы должны закрыть его, иначе вы ненужно занимаете ресурсы.

Проверьте это обсуждение, он показывает, как это работает: https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1041031921901