Высокое использование памяти сеанса в Мохарре

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

<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 забирает всю память. Есть ли способ определить, что именно находится в хранилище сеансов?

Например, сохраненная куча com.ibm.ws.session.store.memory.MemorySession @ 0x700000057890108 для хранилища памяти xxx в /xxx/yyy составляет 66209288.

1 ответ

Решение

Если вы проанализируете свой дамп кучи с помощью /questions/tagged/eclipse-memory-analyzer, вы сможете развернуть свой com.ibm.ws.session.store.memory.MemorySession чтобы найти виновника, как объяснено в этой записи блога: Сессии Richfaces Съедая память - Анализ утечки памяти

введите описание изображения здесь

Другие вопросы по тегам