самая распространенная причина ошибок OutOfMemory при использовании Hibernate? - PullRequest
1 голос
/ 24 сентября 2010

Простите за вопрос новичка.

Моя модель данных очень проста (две таблицы; 200 строк в одной, 10000 в другой; естественное соединение между обеими). ​​

Я используюHibernate для попытки простого чтения / обновления этих таблиц.Это приводит к возникновению ошибок OutOfMemory (1 ГБ, назначенных моей JVM).

Это кажется маловероятным из-за естественных потребностей в памяти и, скорее всего, из-за того, что я пропускаю какой-то базовый шаг в Hibernate.Я нахожусь в точке, где я даже заменил большинство моих реальных обращений к объектам Hibernate прямым SQL (я знаю, что это абсурд).Но даже getCurrentSession (). CreateSQLQuery (...) приводит к ошибкам OOM.

Может кто-нибудь указать мне правильное направление?

1 Ответ

2 голосов
/ 24 сентября 2010

самая распространенная причина ошибок OutOfMemory при использовании Hibernate?

Распространенной причиной OOM является отсутствие контроля над размером кэша на уровне сеанса (путем вызова flush и clear на session через регулярные интервалы, в идеале такой же интервал, как у пакета JDBC размер) при работе с большими коллекциями объектов. Подробнее см. Глава 13. Пакетная обработка .

Но ваше дело не так впечатляет. Что ты делаешь именно? И как (даже псевдокод может помочь)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...