Ich habe eine JSF-Anwendung mit einer @ViewScoped
Bean. Es ist viewScoped
, weil ich einige Ajax-Anfragen mache.JSF ViewScoped OutOfMemoryException
Ich lade eine große Menge an Daten in die Ansicht und zeige sie dem Benutzer an.
Heute habe ich einen Belastungstest durchgeführt und ich lief in eine OutOfMemoryException
. Wie sich herausstellt, wenn ich die Seite öffnen, wird @PostConstruct
bean created. ID = @54a35e23
Jetzt steuere ich auf eine andere Seite und wieder zurück (@PreDestroy
wurde nicht genannt) Dann bekomme ich
bean created. ID = @fee0948
Ich mache das nochmal im Belastungstest. Und ein paar Stunden später habe ich die
Kann ich irgendwie JSF zwingen, meine ViewScoped
Bohne zu zerstören, wenn ich auf eine andere Seite navigiere?
Verwenden Sie CDI oder sind Sie offen für? OmniFaces '@ ViewScoped' zerstört beim Onload explizit Beans und den zugehörigen JSF-Ansichtszustand. Aber es erfordert CDI. Siehe auch http://showcase.omnifaces.org/cdi/ViewScoped – BalusC
Ich benutze Java EE 6 und keine CDI. Außerdem bin ich kurz davor, live zu gehen, also möchte ich nicht viel ändern. Gibt es keinen anderen Weg? – matthias
JSF (Mojarra) behält maximal 25 View-Scoped-Beans in Sitzung. Ändern Sie den Speicherplatz darauf. Oder führen Sie den JPA-Cache der 2. Ebene ein (wenn Sie JPA verwenden). – BalusC