У меня есть приложение JSF, обслуживаемое Tomcat 6, и каждый сеанс может получать bean-компоненты viewScoped, выделенные ему в области «сеанс» в качестве управляемого bean-компонента. Проблема заключается в том, что память, используемая для хранения этого компонента, НИКОГДА, кажется, не освобождается, даже после того, как сеансы провели часы в состоянии ожидания.
Есть ли способ заставить Tomcat освободить эту память после простоя сеанса в течение определенного промежутка времени (например, 10 минут)? Если нет, как насчет способа вручную освободить эту память программно? Или это одна из особенностей «управляемого компонента» в области «сеанс», которая сохраняется в памяти до тех пор, пока сервер не завершит работу, несмотря ни на что?
Заранее спасибо!
Но bean-объекты viewScoped не могут быть освобождены. Потому что если щелкнуть ссылку на странице с истекшим сроком действия, журналы в консоли tomcat показывают, что UIViewRoot на стороне сервера все еще жив. Журналы:
beforePhase-RESTORE_VIEW 1
afterPhase -RESTORE_VIEW 1 раз: 3
beforePhase-RENDER_RESPONSE 6
И память о серверном процессе немного не уменьшилась. Если сервер работает относительно долго. Реакция приложения очень медленная и кажется не очень надежной, например, не работает пагинатор и так далее.
Даже при выключении сервера распечатка консоли:
Ожидание освобождения 16 экземпляров (ей)
Кто-нибудь знает об этом?