On 04/25/2012 08:47 PM, Matt White wrote:
> On 4/24/2012 5:13 PM, Bill Au wrote:
> Wow, something I'm actually qualified to talk about on this list! :)
>> Out of PermGen space is almost always caused by a classloader leak which
>> occurs when a webapp is reloaded. It could be caused by either your own
>> code, third-party code, or in some case Java core classes.
> I debug PermGen errors quite a bit. Some of our apps have a cache of
> dynamically generated classes (Drools does this) that, if held onto long
> enough, will make the the JVM run out of PermGen. This isn't really a
> mistake, it's just how it works, sadly.
>> You need to take heap dumps before and after webapp reload and use a
>> heap analyzer to see what is holding onto the leaked classloader(s).
> That's how I debug them. Take a series of heap dumps and start comparing
> the differences between them -- YourKit even makes this easy for you
> with a tool that diffs heap dumps.
If you're using Resin 4.0, have you tried looking for the
ZombieClassLoaderMarker? It's designed to make that tracing easier.
> - Matt
> resin-interest mailing list
resin-interest mailing list