Permanent Generation
December 23rd, 2007
Recently I was at a client site where a WebSphere Application Server V5.1 on Solaris was producing OutOfMemoryErrors even though the heap was not fully utilized. This usually points to a native heap issue. Unfortunately for me, this first guess turned out to be wrong.
The only loaded shared libraries were from the Sun JVM, Solaris, and Documentum. – The client uses type-4 JDBC drivers. – We were not able to remove Documentum from the equation because the application didn’t work without it, so I reviewed the verbose GC output once again using the “recommended” parameters -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC.
While we reproduced the problem in the test system we noticed that the perm gen was running out of memory, which was not a good sign. ;-)
After increasing the perm gen from 64m to 96m and reducing the -Xmx from 1536m to 1024m everything worked like a charm :-)