weblogic java.lang.OutOfMemoryError: PermGen space 问题解决方法

文章转自:http://blog.csdn.net/cuihaiyang/article/details/6679735
最近安装了WebLogic10.3.4,测试在weblogic上部署项目,没过多久就报错了:
weblogic.servlet.jsp.CompilationException: Failed to compile JSP /error.jsp Exception occurred while processing ‘D:\JavaProject\struts2\webapp\error.jsp’java.lang.OutOfMemoryError: PermGen space at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)

上网查找说是要增大PermGen space的大小,但大部分都是修改tomcat的文章,最后找到http://darkjune.iteye.com/blog/178854才知道要在哪里修改。
方法如下:
修改weblogic安装目录下wlserver\common\bin\commEnv.cmd,找到set MEM_ARGS=-Xms32m -Xmx200m -XX:MaxPermSize=128m,修改成set MEM_ARGS=-Xms256m -Xmx512m -XX:MaxPermSize=256m,可根据机器配置调整。其中有针对oracle自己jvm和sun jvm的配置,我使用的是sum的jvm所以只修改了“:sun”下面的MEM_ARGS。解释一下参数含义:
-Xms:内存初始值
-Xmx:内存最大值(不要超过内存的80%)
-XX:MaxPermSize:PermGen(用于存放Class和Meta的信息)区域内存最大值。
运行一段时间发现还是报错,查看了启动命令,发现%MW_HOME%\user_projects\domains\mydomain\bin\setDomainEnv.cmd在调用完wlserver\common\bin\commEnv.cmd后有这么一句:set MEM_MAX_PERM_SIZE_32BIT=-XX:MaxPermSize=128m,将其修改成256m。

你可能感兴趣的:(Oracle)