Monday 20 October 2014

Weblogic startup error: java.lang.OutOfMemoryError: PermGen space

Problem:

Weblogic Server fails to startup by giving the below error:



<Oct 16, 2014 11:51:39 AM CDT> <Critical> <WebLogicServer> <BEA-000386> <Server subsystem failed. Reason: java.lang.OutOfMemoryError: PermGen space
java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
Truncated. see log file for complete stacktrace
>
***************************************************************************
The WebLogic Server encountered a critical failure
Reason: PermGen space
***************************************************************************
Exception in thread "main"

Solution:

Weblogic is running with Java JDK. For JDK we need to pass this parameter -XX:MaxPermSize  in startup argument.
This parameter needs to be setup along with the heap argument.

Go to setDomainEnv.sh file, edit the memory parameter for each server as:

if [ "${SERVER_NAME}" = "AdminServer" ] ; then
USER_MEM_ARGS="-Xms2048m -Xmx2048m -XX:MaxPermSize=1024m"
fi

if [ "${SERVER_NAME}" = "soa_server1" ] ; then
USER_MEM_ARGS="-Xms2048m -Xmx2048m -XX:MaxPermSize=1024m"
fi