2009-06-26 1 views
0

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

Утечка Подозреваемый Доклад MAT, предоставляет следующую информацию

Класс "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. БД - это оракул 10gR1. Приложение представляет собой приложение struts-Ejb.

ответ

0

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

На неотвязном примечании пакет com.ibm.rmi.io намекает, что это может быть связано с RMI - EJBs.

0

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

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