Столкнувшись с проблемой утечки памяти из-за внутренних объектов weblogic

У меня есть приложение, работающее на сервере приложений Weblogic 10.

Я столкнулся с проблемой утечки памяти из-за внутренних объектов weblogic. Следующие объекты класса занимают много памяти и не очищают ее. Может ли кто-нибудь помочь мне понять, для чего предназначены эти классы и что может быть причиной утечки? Гугление мало помогло.

weblogic.store.xa.internal.PersistentStoreXAImpl 

Спасибо, Сид


person Sid    schedule 25.04.2011    source источник


Ответы (4)


Это внутренний класс WL для постоянного хранилища с поддержкой XA. Если вы используете JDBC, проверьте, заполнена ли ваша БД. Если вы используете хранилище по умолчанию или хранилище файлов, проверьте файловую систему на наличие ошибок или убедитесь, что она заполнена.

Их не должно быть очень много. Используете ли вы JMS в своем приложении? Возможно, у вас также есть проблема с конфигурацией. Попробуйте создать тикет в службе поддержки Oracle или, если вы можете поделиться со мной кодом и конфигурацией, напишите мне по адресу [email protected]. Если у вас есть контракт на поддержку, вы должны открыть дело, а не писать мне по электронной почте. Если вы открываете дело, пожалуйста, напишите мне номер SR, и я могу изучить его. Если у вас нет контракта на поддержку, напишите мне по электронной почте с подробностями вашей проблемы...

person Jeff West    schedule 25.04.2011
comment
У нас нет контракта на поддержку с Oracle. Не подскажете, как узнать, были ли ошибки в файловой системе? Кроме того, нет кода, который выдает ошибку, это дамп кучи, который показывает, что этот класс занимает 32% памяти. - person Sid; 26.04.2011
comment
Какую версию WLS вы используете и в какой операционной системе? - person Jeff West; 26.04.2011
comment
Мы используем Weblogic 10.3 на машине с Linux. - person Sid; 26.04.2011

Чтобы добавить к ответ Джеффа Это постоянное хранилище, используемое Weblogic. для различных подсистем, таких как JMS, JTA и даже веб-сервисы и таймеры EJB

Если вы не настроили это в своем экземпляре, обычно по умолчанию должно использоваться хранилище файлов, расположенное по адресу

bea_home\user_projects\domains\domain-name\servers\server-name\data\store\default

Таким образом, вы можете проверить наличие проблем с дисковым пространством в файловой системе. Если вы можете позволить себе выключить Weblogic, можете ли вы очистить файловую систему, указанную выше, или проверить, насколько старые объекты там сохранились?

person JoseK    schedule 27.04.2011

«XA» для меня обычно означает «двухэтапная фиксация». Я думаю, что это драйвер JDBC для двухфазной фиксации в постоянном хранилище.

Я не понимаю, почему их не убирают. Как вы смотрите на кучу. Какой инструмент говорит вам, что это источник утечки? Может быть, ваши классы не очищают постоянные ресурсы?

person duffymo    schedule 25.04.2011
comment
Я использую дамп кучи, извлеченный с сервера Weblogic в тот момент, когда использование кучи составляло 87%. Я использую Eclipse Memory Analyzer Tool для анализа дампа кучи. Когда вы говорите о постоянных ресурсах, разве это не связано с базой данных? Извините, я не очень хорошо разбираюсь в Weblogic. Кроме того, как загружается хранилище файлов в контексте веб-приложения? - person Sid; 26.04.2011

Мы видели подобную проблему однажды, когда был включен профилировщик JDBC. Включено ли профилирование на уровне приложения или на уровне WebLogic?

person buffalo    schedule 10.05.2011
comment
Да, мы используем инструмент Eclipe Memory Analyzer Tool (MAT) - person Sid; 11.05.2011