Недавно я работаю над проектом Spring + Hibernate с Oracle. Я узнаю, что всегда открыты сотни курсоров одновременно. У меня нет возможности решить эту проблему. Может ли кто-нибудь дать мне несколько советов? или некоторые ссылки?
PS: Я знаю, что это не очень хороший вопрос, но мне было трудно найти точный документ, и у меня нет времени для работы во всех спящих документах в настоящее время.
PS2: Я использовал в проекте много критериев и обычного запроса выбора.
Если вы используете Hibernate 4.3.0.Final, вы, вероятно, испытаете известную ошибку в спящем режиме:
https://hibernate.atlassian.net/browse/HHH-8811
Как видно из ссылки, эта ошибка вызывает слишком много открытых курсоров.
Переключение на версию 4.3.1. Final решает проблему.
Ваш код должен заботиться о закрытии курсоров. Правило большого пальца - если вы открываете курсор, то после обработки набора результатов вы должны закрыть его, иначе вы ненужно занимаете ресурсы.
Проверьте это обсуждение, оно показывает, как это работает: https://asktom.oracle.com/pls/asktom/f?p=100:11:0::P11_QUESTION_ID:1041031921901