On Dec 4, 2008, at 4:11 AM, rdomingo wrote:
Hmm, damn. Cheered to early, tomcat shows already the outofmemory
again after
about 15 deploys...
OK. So, looks there must be a ClassLoader memory leak.
If you can share your application, I can have a look. The causes are
usually application code or application libraries. There can also be
some temporal leaks with ThreadLocal/Stack variables preventing
ClassLoaders from being GC'ed. Which version of G are you using?
Running with -XX:+HeapDumpOnOutOfMemoryError will cause the Sun JRE to
generate a heap dump on out-of-memory conditions. You can then do some
post-mortem analysis to help identify cause(s). I find that YourKit is
a very good tool for analyzing the dumps...
If you can generate a dump, I'll take a look. Or if you have an
application, I can recreate locally...
--kevan
rdomingo wrote:
Kevan Miller wrote:
On Dec 3, 2008, at 11:15 AM, rdomingo wrote:
Thank you, this seems to do the job.
The spring related error is gone.
Good.
Off topic:
Currently I get java.lang.OutOfMemoryError: PermGen space
Actually this is the reason I would like to stop using tomcat....
I will look in to this tomorrow.
This is after multiple deploy/redeploys or after a single deploy?
Have
you bumped your permgen space (e.g. -XX:MaxPermSize=256m)? You don't
see the same problem w/ Jetty?
--kevan
Kevan, you are the greatest :-))
Situation before -XX:MaxPermSize=256m, out of memory all the time
Situation using -XX:MaxPermSize=256m, no more out of memory. This
also
worked for me in tomcat
But what is actually happening ???
My gues is that My app didn't fit in mem or garbage collection hadn't
enough time to do it's job. By increasing the permSize I have more
time to
do garbage collection before I run out of memory... Is this correct ?
So, we weren't sure if this was a static problem (the application is
too large) or a memory leak (you're results tell us that it's a
ClassLoader memory leak). Next step is to identify the cause...
There are some temporary ClassLoader memory leaks that can be caused
by ThreadLocal and Stack variables. It doesn't sound like this is your
problem.
--kevan