Caldarale, Charles R wrote:
From: Ognjen Blagojevic [mailto:ogn...@etf.bg.ac.rs]
Subject: Debugging PermGen problems
Environment: Tomcat 6.0.14, Windows XP SP2.
Before doing *anything* else, move up to the current level (6.0.26). Besides
having numerous stability and security fixes beyond your nearly three-year old
version, it has several enhancements to catch and work around these memory
leakers. It's pointless to continue experimentation with 6.0.14.
Thank you for hint. We upgraded to 6.0.26, and DriverManager problems
are now gone.
A bit of research of the other GC root paths revealed that one culprit
is jsf-impl jar, so we upgraded from mojarra 1.2_08 to latest 1.2_14 and
solved part of the problem with PropertyEditorManager.
Now, it seems that there is no more problematic static references, but
few threadLocal references are still there. Those seems to be related to
JasperReports 2.0.5 library. From the root paths attached below, I guess
that the thread "http-8443-6" holds reference to the class loaded by
webapp class loader, and therefore it is not possible to GC that webapp
class loader.
If my assumption is correct, next thing we need to find is how to
inspect and clean up thread local after JasperReport servlet finished
his work. Right?
Regards,
Ognjen
Paths from "GC Roots" to "Object WebappClassLoader #04068C80"
+-------------------------------------------------------------------------------------------+-----------------+----------------+
| Name
| Retained Size | Shallow Size |
+-------------------------------------------------------------------------------------------+-----------------+----------------+
| +---org.apache.catalina.loader.WebappClassLoader
| 8,109,432 | 168 |
| |
| | |
| +---<loader> of net.sf.jasperreports.engine.util.JRClassLoader
| 64 | 64 |
| | |
| | |
| | +---<class> of net.sf.jasperreports.engine.util.JRClassLoader
| 632 | 56 |
| | |
| | |
| | +---<loader> of
stu_zavrsni_rad_prijava_detail_1269596557540_786829 |
696 | 64 |
| | |
| | |
| | +---value of java.lang.ThreadLocal$ThreadLocalMap$Entry
| 728 | 32 |
| | |
| | |
| | +---[52] of java.lang.ThreadLocal$ThreadLocalMap$Entry[64]
| 5,776 | 272 |
| | |
| | |
| | +---table of java.lang.ThreadLocal$ThreadLocalMap
| 5,800 | 24 |
| | |
| | |
| | +---threadLocals of java.lang.Thread [Stack Local,
Thread] "http-8443-6" | 6,088 | 104 |
| |
| | |
| +---classloader of java.security.ProtectionDomain
| 920 | 32 |
| | |
| | |
| | +---<protection domain> of
stu_zavrsni_rad_prijava_detail_1269596557540_786829 |
696 | 64 |
| | |
| | |
| | +---value of java.lang.ThreadLocal$ThreadLocalMap$Entry
| 728 | 32 |
| | |
| | |
| | +---[52] of java.lang.ThreadLocal$ThreadLocalMap$Entry[64]
| 5,776 | 272 |
| | |
| | |
| | +---table of java.lang.ThreadLocal$ThreadLocalMap
| 5,800 | 24 |
| | |
| | |
| | +---threadLocals of java.lang.Thread [Stack Local,
Thread] "http-8443-6" | 6,088 | 104 |
| |
| | |
| +---contextClassLoader of java.lang.Thread [Stack Local, Thread]
"Java2D Disposer" | 320 | 104 |
| |
| | |
| +---parent of net.sf.jasperreports.engine.util.JRClassLoader
| 632 | 56 |
| |
| | |
| +---<loader> of
stu_zavrsni_rad_prijava_detail_1269596557540_786829 |
696 | 64 |
| |
| | |
| +---value of java.lang.ThreadLocal$ThreadLocalMap$Entry
| 728 | 32 |
| |
| | |
| +---[52] of java.lang.ThreadLocal$ThreadLocalMap$Entry[64]
| 5,776 | 272 |
| |
| | |
| +---table of java.lang.ThreadLocal$ThreadLocalMap
| 5,800 | 24 |
| |
| | |
| +---threadLocals of java.lang.Thread [Stack Local,
Thread] "http-8443-6" | 6,088 | 104 |
+-------------------------------------------------------------------------------------------+-----------------+----------------+
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org