2010-12-14 4 views
0

J'utilise Tomcat version 5.0.28, j'analysais le tas de mémoire. Il montre que la fuite de mémoire est due aux objets BodyContentImpl, ce qui semble (pas sûr) qu'il met en cache le contenu du jsp entre les balises. Aussi, j'ai trouvé qu'il y avait un problème dans cette version, Il ne réinitialise pas le tampon qu'il utilise en interne pour stocker des données. Il y a une option pour limiter le tampon dans les versions ultérieures de tomcat.BodyContentImpl jsp problème de fuite de mémoire tag

Ce que je veux savoir est ce que BodyContentImpl fait réellement, Est-ce que cela met en cache les balises ou les données. comment il sera utile dans un jsp qui change dynamiquement.

+0

Tomcat 5.0 est très ancienne ... vous pouvez mettre à jour? – skaffman

+0

Vous n'avez pas compris ma question, Simple qu'est-ce que le tampon fait là – John

Répondre

3

Oui, votre tag JSP est mis en cache. Spécifiquement "Pool de balises personnalisées JSP - Les objets Java instanciés pour les Balises personnalisées JSP peuvent maintenant être regroupés et réutilisés, ce qui augmente considérablement la performance des pages JSP qui utilisent des balises personnalisées."

Pour ajouter à désactiver catalina.properties (ou CATALINA_OPTS)

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

désactiver cette fonction (Cependant, je ne suis pas sûr que cela n'a jamais été backported à 5.0.x de 5.5.x)

Voir par exemple Tomcat 5.5 Configuration