Memory leak in JDK5
Folks,
I develop a Java application (non-J2EE) which is highly multithreaded and runs on server class machines. One of the recent changes we made to the application was to replace a bunch of JNI code with pure Java code.
Load tests of our application show a very prett Java-side picture (as seen from JConsole). We see the familiar sawtooth heap usage graph with no rising trend. When we switch to Windows perfmon, however, the picture is very different. The process' private bytes show a steady increase of about 4M/hour. The handle count also shows a monotonically rising curve.
So far we have tried the following:
-Updated JDK from JDK 5u5 to JDK 5u10: no impact
- Changed garbage collectors from the default (conc mark sweep compact) to ParallelGC: This changed the trend slighly but still a rising trend.
Through all of the above, the Java-side things still look pretty.
I could attach graphs from perfmon showing the private byte and handle trends.
Does anyone have ideas on what is the best way to proceed? How do I narrow it down further?
One of the recent changes was to integrate NIST SIP stack. Is that code known to trigger a JVM memory leak?
Thanks.
-Raj

