您的位置:首页 > 编程语言 > Java开发

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

2017-09-04 09:40 579 查看
文章转自: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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: