私は@ViewScoped
beanを持つJSFアプリケーションを持っています。私はいくつかのAjaxリクエストをするので、viewScoped
です。JSF ViewScoped OutOfMemoryException
大量のデータをビューにロードしてユーザーに表示します。
今日私は負荷テストを行い、OutOfMemoryException
に遭遇しました。それは私がページを開くと、@PostConstruct
は今、私は別のページに移動し、(@PreDestroy
が呼び出されなかった)、再び戻る
bean created. ID = @54a35e23
と呼ばれ、結局のところそれから私は
bean created. ID = @fee0948
を取得します私は負荷テストでこれをやり直します。そして数時間後に私はOutOfMemoryException
私は別のページにナビゲートすると何とか私のViewScoped
豆を破壊するようにJSFを強制することはできますか?
CDIを使用していますか? OmniFaces @ViewScopedは、オンロード時にBeanと関連するJSFビューの状態を明示的に破棄します。しかし、CDIが必要です。 http://showcase.omnifaces.org/cdi/ViewScopedも参照してください。 – BalusC
私はjava ee 6とCDIを使用しません。さらに私はライブに行くのがとても近いので、私は多くを変えたくありません。他の方法はありませんか? – matthias
JSF(Mojarra)はセッション中にビュースコープのBeanを最大25個保持します。その上のメモリスペースを変更します。または、JPAを使用している場合、第2レベルのJPAキャッシュを導入してください。 – BalusC