2013-04-30 2 views
2

У меня есть веб-приложение, основанное на Mojarra (JSF 2). Приложение развернуто в WebSphere 7. Использование сеанса для моего приложения очень велико. Я использую видимые бобы, а некоторые страницы значительно большие. Мой веб-xml настроен на сохранение 5 просмотров в сеансе.Использование памяти с высокой сессией в Mojarra

<context-param> 
    <param-name>com.sun.faces.numberOfViewsInSession</param-name> 
    <param-value>5</param-value> 
</context-param> 
<context-param> 
    <param-name>com.sun.faces.numberOfLogicalViews</param-name> 
    <param-value>5</param-value> 
</context-param> 

Я не добавляю ничего к сеансу. Тем не менее некоторые сеансы в моем приложении составляют до 60 МБ.

Когда я делаю анализ hepdump, он показывает, что hashmap сессии занимает всю память. Есть ли способ определить, что именно находится в хранилище сеансов?

E.g. Сохраненная куча com.ibm.ws.session.store.memory.MemorySession @ 0x700000057890108 для памяти магазина ххх в/ххх/ууу является 66209288.

ответ

1

Если проанализировать ваш дамп кучи с , вы должны быть в состоянии развернуть ваш com.ibm.ws.session.store.memory.MemorySession найти виновника, как описано в этой записи в блоге: Richfaces Sessions Eating Memory – Analysis of a Memory Leak

enter image description here

+0

Спасибо! В моем случае это массив объектов javax.faces.component.UIOutput. – dkaustubh