odd problem with jni interacting with dll's - not sure why a change to gc ergonomics fixes it
- by jim hale
We were having a problem with our Tomcat jvm blowing up and giving us an hs_* dump at random times but always in the same spot,
that wasn't very informative other than saying we had an EXCEPTION_ACCESS_VIOLATION
Commenting out various parts of the java that called particular jni functions just made it blow consistently in another spot.
By changing our jvm options from:
set PAF_OPTS=-Xms1024m -Xmx32000m -server -XX:+UseParallelGC -XX:+UseParallelOldGC -XX:+DisableExplicitGC -XX:+UseCompressedOops -Djava.library.path="%CATALINA_HOME%"\jni -Dcom.sun.management.jmxremote
TO
set PAF_OPTS=-Xms1024m -Xmx32000m -server -XX:+DisableExplicitGC -XX:+UseCompressedOops -Djava.library.path="%CATALINA_HOME%"\jni -Dcom.sun.management.jmxremote
The problem went away. The solution does not give me a warm and fuzzy however and am wondering anyone might understand what's going on under the covers here.
Environment:
jdk1.6, 64 bit OS and Java, Tomcat, Windows