You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Christian Kaufhold <ka...@googlemail.com> on 2012/06/05 17:17:40 UTC

Re: memory leak in tomcat

Hi Warren,

thanks for the help. I found that the application
creates lots of SessionFactoryImpl objects
even though one is enough

I changed this part of webapp. Now it has only one
SessionFactoryImpl and the memory leak is gone.

bye

2012/5/24 Warren Bell <wa...@gmail.com>

> Is this the same server with the Wicket app you posted about earlier ?
> If so, you have a Wicket app that is storing the
> SessionFactoryObjectFactory on a page as a class member. Wicket stores
> each page a user has been to in the user's session. If the page has
> class members, then it serializes them and stores them too. I have seen
> this kind of thing happen many times before causing big memory usage.
>
> Remove the Wicket app and run the Eclipse Memory Analyzer.
>
> Thanks,
>
> Warren Bell
>
> On 5/24/12 5:42 AM, Konstantin Kolinko wrote:
> > 2012/5/24 Christian Kaufhold <ka...@googlemail.com>:
> >> Hi,
> >>
> >> I have a leaking Tomcat App
> >> I checked the heap with the Eclipse Memory Analyser
> >> and it says
> >>
> >> The classloader/component
> *"org.apache.catalina.loader.WebappClassLoader @
> >> 0x94532f50"*
> >> occupies *376.421.152 (79,51%)* bytes. The memory is accumulated in one
> >> instance of
> >> *"java.util.HashMap$Entry[]"* loaded by *"<system class loader>"*.
> >>
> >
> > So the memory is used for something useful? That is not a "memory
> > leak". It is just a web application requiring a lot of memory.
> >
> > WebappClassLoader is the classloader that is used to load the classes
> > of your webapp.  Of course, it remembers every class that it loaded
> > (to satisfy repeated class.forName() calls) and every class that it
> > loads has a reference it it (via getClass().getClassLoader()).
> >
> > There may be many classes, but I do not think that the classloader
> > itself is responsible for 300 Mb of memory.
> >
> >> and the data that is in the entries of the gigantic Map is
> >> org.hibernate.impl.SessionFactoryObjectFactory
> >>
> >
> > That would be a hibernate question. I have no clue what that class is
> about.
> >
> > Best regards,
> > Konstantin Kolinko
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> > For additional commands, e-mail: users-help@tomcat.apache.org
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>