Java Mailing List Archive

http://www.junlu.com/

Home » Home (12/2007) » Tomcat Users »

Re: Tag Handler pool eating up Memory (and enablePooling is set to
false)

Christopher Schultz

2003-12-01

Replies:

Neil,

> are you sure this is a tomcat reference holding on to it?
> it could be one of your classes as well, you need to run it through a memory
> profile in order to find out

Yeah, it's possible (and probable) that the TagHandlerPool maintains a
reference back to the ServletContext in which it lives. That might kew
your results. I'm sure that the TagHandlerPool isn't actually taking up
that much memory.

Do you have any of your own tag libraries, or are you using only
3rd-party taglibs? If you are using your own, check to see if you are
holding on to references or something like (anything like shared objects
between tags -- that kind of thing).

If you are using 3rd-party only, check their bug lists to see if there
are memory leaks listed as bugs.

If you have a profiler handy (something more robust that the heap
dumper), check to see how many instances of various types there are. For
example, if you are using org.foo.bar.taglib, then filter the object
list by org.foo.bar.taglib and take a look at how many instances there
are. If you find that there are thousands of references to tag handlers,
then something is probably wrong with Tomcat. Otherwise, several hundred
references doesn't sound horrible. It's possible that they haven't been
GC'd yet.

I also noticed that you are using JDK 1.4.1. I've heard that this
version (it might only be the Sun distro -- can someone confirm?) has an
implementation of StringBuffer that has a terrible memory leak. You
might want to consider upgrading to 1.4.2 if that's possible.

Hope that helps.

-chris


---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@(protected)
For additional commands, e-mail: tomcat-user-help@(protected)



©2008 junlu.com - Jax Systems, LLC, U.S.A.