У меня есть веб-приложение, построенное на 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>
Я ничего явно не добавляю в session. Тем не менее некоторые сеансы в моем приложении достигают 60 МБ.
Когда я делаю анализ hepdump, он показывает, что хэш-карта сеанса занимает всю память. Есть ли способ определить, что именно находится в хранилище сеансов?
Например. Сохраненная куча com.ibm.ws.session.store.memory.MemorySession @ 0x700000057890108 для хранилища памяти xxx в /xxx/yyy равна 66209288.