geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dain Sundstrom <dsundst...@gluecode.com>
Subject Re: Strategies for Eliminating OOM Exceptions on Redeploys?
Date Sat, 13 Nov 2004 19:03:45 GMT
On Nov 12, 2004, at 5:52 PM, Seth Ladd wrote:

> On Thu, 11 Nov 2004 12:50:12 -0800, David Jencks 
> <djencks@gluecode.com> wrote:
>> I certainly agree this is an important issue.  I think so far our main
>> defense has been "good design".  Do you have a specific example that
>> causes problems on geronimo, or are you just warning us to check this
>> thoroughly?  I take it you are also hinting that we should test with a
>> web app that uses hibernate:-)
>
> Hi!  Thanks for the quick response.
>
> I do not have a example webapp at this moment, but I have just started
> one to test.  I'm skeptical due to previous experiences with Tomcat,
> Resin, and Jetty.  Certain 3rd party libraries (totally out of my
> control) are not built with ClassLoader release in mind.  For
> instance, cglib (used by hibernate) does not release its dynamic
> proxies when the webapp is destroyed on a redeploy.  In a Single
> Application, this is not a problem.  In the dynamic world of
> application containers, this is certainly a problem.

Can you be more specific on the cglib problem you have seen?  We use 
cglib for proxies.

> Thanks for being interested in this.  I've just downloaded M3 and will
> run my test (that I've used for other application servers) on it.
> I'll respond back with results.
>
> AFAICT, though, there isn't much we can do about the problem because
> there is no way to completely (and forcibly) garbage collect
> ClassLoaders.  But maybe Geronimo has solved the problem? :)

We do our best to release any handles to classes and class loaders, but 
it is the vm that must decide to garbage collect classes.  From what I 
have seen, this is a bigger problem on Java 5, because the current 
release does puts classes in a permeant store which is not (or rarely) 
collected.

-dain


Mime
View raw message