Причина утечки памяти в веб-сфере ValueHandlerPool (подозревается) - PullRequest
0 голосов
/ 26 июня 2009

Мы сталкиваемся с ошибкой OutofMemory. Я проанализировал файл * .phd, который выгружает websphere, используя Eclipse Memory Analyzer.

Отчет о подозрении на утечку в ВСУ, содержит следующую информацию

Класс "com.ibm.rmi.io.ValueHandlerPool", загруженный "com.ibm.oti.vm.BootstrapClassLoader @ 0x466578", занимает 68 734 136 (50,25%) байт. Память накапливается в одном экземпляре «java.util.Hashtable $ Entry []», загруженном «com.ibm.oti.vm.BootstrapClassLoader @ 0x466578».

Но я не могу связать эту подозрительную утечку ни с одним из классов приложения. Нет явной ссылки.

Есть какие-нибудь указатели, как проводить анализ?

Среда: мы используем Websphere 6.1 на jdk 1.4.2, работающем под Windows. БД оракул 10гР1. Приложение представляет собой приложение Struts-Ejb.

Ответы [ 2 ]

0 голосов
/ 13 июля 2009

Также посмотрите количество членов этой хеш-таблицы. Например, если у вас есть один массивный член, это будет означать что-то более глубокое (возможно, где-то кешируются данные). Если в хеш-таблице было тысячи членов, это может указывать на то, что у вас есть утечки.

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

0 голосов
/ 26 июня 2009

Попробуйте «сверлить» в экземпляр Entry[]. Он должен показать вам, что записи.

На несвязанной ноте пакет com.ibm.rmi.io намекает, что это может быть связано с RMI - EJB включены.

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