2010-12-14 6 views
0

Ich verwende Tomcat Version 5.0.28, ich analysierte den Heap-Dump. Es zeigt, dass das Speicherleck auf die BodyContentImpl-Objekte zurückzuführen ist, die (nicht sicher) den Inhalt des JSP zwischen den Tags zwischenspeichern. Auch ich fand, dass es ein Problem in dieser Version gibt, es setzt nicht den Puffer zurück, den es intern verwendet, um Daten zu halten. Es gibt eine Option, um den Puffer in den späteren Versionen von Tomcat zu begrenzen.BodyContentImpl JSP-Tag Speicherverlust Problem

Was ich wissen möchte, ist, was BodyContentImpl tatsächlich tun, ist das Caches die Tags oder Daten. wie es in einem dynamisch wechselnden JSP nützlich sein wird.

+0

Tomcat 5.0 ist sehr alt ... können Sie ein Upgrade? – skaffman

+0

Du hast meine Frage nicht verstanden, Simple was macht der Puffer dort – John

Antwort

3

Ja, Ihre JSP-Tags sind im Cache gespeichert. Speziell "JSP Custom Tag Pooling - Die Java-Objekte, die für benutzerdefinierte JSP-Tags instanziiert wurden, können jetzt zusammengefasst und wiederverwendet werden. Dies steigert die Performance von JSP-Seiten, die benutzerdefinierte Tags verwenden, erheblich."

deaktivieren zu catalina.properties hinzufügen (oder CATALINA_OPTS)

org.apache.jasper.runtime.JspFactoryImpl.USE_POOL = false org.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER = true

dies auszuschalten (ich bin aber nicht sicher, ob dies jemals von 5.5.x bis 5.0.x zurückportiert wurde)

Siehe zum Beispiel Tomcat 5.5 Configuration