weblogic 內存OutOfMemoryError

weblogic 有個域的概念,先有個總的配置文件,然後再分域的配置文件,如果你只操作域就在域中操作

公共:修改weblogic安裝目錄下wlserver\common\bin\commEnv.cmd,找到set MEM_ARGS=-Xms32m -Xmx200m -
域:

%MW_HOME%\user_projects\domains\mydomain\bin\setDomainEnv.cmd



最近安裝了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) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) at java.net.URLClassLoader.access$000(URLClassLoader.java:58) at java.net.URLClassLoader$1.run(URLClassLoader.java:197) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) at weblogic.jsp.internal.jsp.JspJavaLanguageX.getTransform(JspJavaLanguageX.java:10) at weblogic.jsp.internal.jsp.JspScriptTransform.(JspScriptTransform.java:132) at weblogic.jsp.internal.jsp.JspCheckContext.check(JspCheckContext.java:82) at weblogic.jsp.internal.jsp.JspAnalyzer.check(JspAnalyzer.java:57) at weblogic.jsp.internal.ProxySourceFile._check(ProxySourceFile.java:136) at weblogic.jsp.internal.SourceFile.masterCheck(SourceFile.java:762) at weblogic.jsp.internal.SourceFile.check(SourceFile.java:314) at weblogic.jsp.internal.SourceFile.check(SourceFile.java:335) at weblogic.jsp.internal.ProxySourceFile.codeGen(ProxySourceFile.java:224) at weblogic.jsp.internal.SourceFile.codeGen(SourceFile.java:327) at weblogic.jsp.internal.client.ClientUtilsImpl$CodeGenJob.run(ClientUtilsImpl.java:599) at weblogic.jsp.internal.client.Job.performJob(Job.java:83) at weblogic.jsp.internal.client.ThreadPool$WorkerThread.run(ThreadPool.java:217)

上網查找說是要增大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。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章