Re: java.lang.OutOfMemoryError: PermGen space
От: Nicht Россия  
Дата: 13.12.06 14:28
Оценка: 18 (6)
Здравствуйте, msqrt84, Вы писали:

M>Привет, всем!


M>Проблема собственно в том, что возникает вышеуказанная ошибка (в JBoss'е). Я так понимаю, что проблема в non-heap memory — она заканчивается .


M>Пробовали её увеличивать, помогает, но память всё равно постоянно увеличивается и достигает предела. Опять ошибка.


M>Может, кто с этим сталкивался? В чём может быть проблема?


M>Спасибо за любой совет или предположение.


Этот эффект называется orphaned classloader
Вот пара ссылок здесь и здесь.
Там все подробно написано.
Но грубо говоря этот эфект наблюдается когда обекты созданные COntainer ClassLoader-ом начинают ссылаться на обекты созданные Application ClassLoader-ом. Тогда при редеплое приложения Application ClassLoader просто зануляется, но обект из COntainer ClassLoader держит ссылку на обект, который держит ссылку на Его класс, который держит ссылку на Application ClassLoader, который, в свою очередь, держит ссылки на все, созданные им объекты. Но обекты то собираются GC, но вот обекты типа Class не мобираются так как они как раз выделяются в PermGen. Ну и при нескольких редеплоях соответственно память заканчивается.

О как. Аж сам понял.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.