tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pieter Temmerman <>
Subject Re: Weblogic library and Tomcat
Date Wed, 11 Feb 2009 16:28:24 GMT
Chuck, Mark,

Many thanks to both.
I'll give it a try.

Btw, I'm quite sure the problem is located in the weblogic.jar library,
as 2 other developers (working on different projects) already told me
some similar problems with their app being reloaded.

Anyway, time will tell.



On Wed, 2009-02-11 at 16:15 +0000, Mark Thomas wrote:
> Pieter Temmerman wrote:
> > Is there any documentation I can read to understand this process better,
> > or do I rather have to digg into the source code to get a better picture
> > of all these Tomcat internals?
> > I'm very interested in understanding how all this works, because at the
> > end of the day, many problems can be reduced to something easy if you
> > understand the internals. I'd be glad if you could point me to some good
> > docs.
> The YourKit help is quite good as I recall.
> >> Hence none of your classes are unloaded and Tomcat has an instance of your web
> >> application it can't garbage collect -> memory leak.
> > Ok. Sounds reasonable. But why aren't my classes unloaded when I
> > undeploy a webapp? Isn't Tomcat responsible for unloading my classes
> > when I order it to undeploy my webapp?.
> Tomcat will clear the references it has created but you are responsible for
> clearing the references you create. Once all the references are cleared gc will
> remove it.
> In this case your classes are pinned into memory by the following reference chain:
> DriverManager > JDBC driver > webapp classloader > webapp classes
> Since you created this by calling DriverManager.registerDriver() you have to
> clear it.
> >> You need to find which objects are holding on to a reference to the the weblogic
> >> class and make sure it gets cleared when the app restarts. A context listener
> >> might be useful here.
> > I never heard about context listeners, but according to the explanation
> > at below link, I think I know what you mean. Sounds good!
> > Just one question. How do you clear an object? Sorry, I'm not a Java
> > programmer (Actually, I'm not a programmer at all). Would it be
> > something like object.finalize or object.destroy?
> It depends on how the reference is maintained. In the DriverManager example you
> would use DriverManager.deregisterDriver() to break the reference chain.
> What you need to use in your case will depend on exactly what is in the
> reference chain and where it needs to be broken.
> Mark
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:
Pieter Temmerman
skype: ptemmerman.sadiel


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message