Как уничтожить контекст ViewScope с помощью JSF 2.2.6?

Каждый раз, когда я захожу на определенную страницу jsf, bean-компонент аннотирован @ViewScoped, куча увеличивается.

Как уничтожить контекст ViewScope? (чтобы уничтожить все связанные объекты и очистить кучу памяти) Обновление до 2.2.8 дает мне другие ошибки, поэтому я хочу остаться с реализацией jsf 2.2.6.

Вопрос относится к этому: "Контекст ViewScope не уничтожается при уничтожении карты просмотра"

Итак, каков другой способ добиться этого? Означает ли это, что ViewScoped имеет привязку и что ее не рекомендуется использовать. Итак, какова альтернатива, когда у вас есть много информации для отображения, а также ajax на одной странице?

Я попробовал это решение тоже безуспешно. (этот пост выглядит так же) я прочитал это, а также что я пробовал аннотацию @PreDestroy, которая не работает ни в ViewScoped .

Я не хочу увеличивать слишком много памяти виртуальной машины. Если я перехожу на ту же страницу jsf, которую обрабатывает управляемый компонент с viewScoped, каждый раз память увеличивается до сбоя приложения.

Сборщик мусора не происходит во время сеанса даже после многократной обратной передачи или если я окончательно закрываю сеанс и жду 5-10 минут.

NB: @PreDestroy по-прежнему вызывается при закрытии сеанса.


person ZheFrench    schedule 15.10.2014    source источник
comment
Я знаю, что GC работает тогда, когда это необходимо, а не только после разыменования объекта. Я тестировал с параметрами виртуальной машины по умолчанию, и да, в течение недели он давал сбои. Но иногда GC работает, когда куча слишком велика, но все равно увеличивается, клянусь, и поэтому в какой-то момент он падает, и я не знаю, почему. Я установил для кучи значение -Xms2048m -Xmx2048m, чтобы избежать проблем, и иногда использую GC через VisualVM для освобождения памяти. Я паникую, потому что я хотел бы понять, как это работает. Я не ставлю на пробу JSF-приложения в продакшене по всему миру :) Просто хотелось понять, почему он жадный в памяти   -  person ZheFrench    schedule 15.10.2014
comment
Когда есть так много слоев, трудно отлаживать. Приложение (и ведение журнала сеанса) обрабатывается Spring Security. Я не очень хорошо понимаю, как jsf и spring взаимодействуют друг с другом, но, возможно, это связано. Только один последний вопрос, если, как сказано в JAVASERVERFACES-3194, контекст ViewScope не уничтожается при уничтожении карты просмотра. Есть ли другой способ очистить максимум вещей, чтобы проверить поведение памяти, даже если мой сеанс остановится? Спасибо за ваш комментарий.   -  person ZheFrench    schedule 15.10.2014
comment
stackoverflow.com/questions/12182844/ - посмотрите на это........ forum.primefaces.org/ viewtopic.php?f=3&t=27344   -  person Sureshkumar Panneerselvan    schedule 28.12.2014
comment
Вы нашли решение для jsf 2.2? весной мы также сталкиваемся с утечками памяти с пользовательским обзором.   -  person fischermatte    schedule 04.08.2015
comment
нет: / я увеличил объем памяти heapSize. Попытка обновить JSF также может быть хорошей идеей (надеюсь, они это исправят). Я больше не работаю над этим проектом, поэтому сейчас сложно ответить. Удачи.   -  person ZheFrench    schedule 05.08.2015