最近在一次上线过程中遇到了这个问题,在这里将解决方案记录一下。
当项目在weblogic中部署的时候,如果你是使用脚本启动managed server的话,则关于jvm 内存的相关设置去修改$DOMAIN_HOME目录下的env file即可,但是如果你是使用网页控制台的方式去启动managed server的话(通过nodeManger),这样的方式是不起作用的。
java.lang.OutOfMemoryError: PermGen space at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:607) at weblogic.xml.jaxp.WebLogicTransformerFactory.newTransformer(WebLogicTransformerFactory.java:214) at weblogic.xml.jaxp.RegistryTransformerFactory.newTransformer(RegistryTransformerFactory.java:190) at weblogic.management.provider.internal.ConfigReader.convert(ConfigReader.java:132) at weblogic.management.provider.internal.ConfigReader.<init>(ConfigReader.java:70) Truncated. see log file for complete stacktrace > <18-Sep-2014 10:39:22 o'clock UTC> <Error> <Socket> <BEA-000421> <Uncaught Throwable in processSockets java.lang.OutOfMemoryError: PermGen space. java.lang.OutOfMemoryError: PermGen space > <18-Sep-2014 10:39:33 o'clock UTC> <Error> <HTTP> <BEA-101020> <[ServletContext@241191297[app:bea_wls_deployment_internal module:bea_wls_deployment_internal.war path:/bea_wls_deployment_internal spec-version:null]] Servlet failed with Exception java.lang.OutOfMemoryError: PermGen space >
要解决上述的问题,需要遵循下列的步骤:
(1)Login to AdminConsole–>Environments—Servers—>YourManagedServer—>Configuration (TAB)—>ServerStart (SubTab)—> Arguments:(TextArea)
(2)Specify the your own Heap & MaxPermSize setting here.
-Xms256m -Xmx512m -XX:MaxPermSize=256m
(3)Restart your Managed Server and verify from backend that these settings are being picked up.