编程语言
首页 > 编程语言> > java – 如何解决生产系统上的Out Of Memory错误

java – 如何解决生产系统上的Out Of Memory错误

作者:互联网

我们在Windows上使用JBoss_4_0_4_GA和JDK 1.5.0(无更新)

JBoss服务器在Wrapper(版本3.2.3)http://wrapper.tanukisoftware.org中运行.

由于JVM太老了,我甚至无法在JVM上使用-XX:HeapDumpOnOutOfMemoryError选项.

找出问题有什么选择?

像往常一样,Out of Memory异常发生在应用程序的不同部分.

我没有权利立即升级JVM.

    The current VM settings
    Java Additional Parameters
    wrapper.java.additional.1=-Xms512m
    wrapper.java.additional.2=-Xmx1024m
    wrapper.java.additional.3=-Dsun.rmi.dgc.client.gcInterval=3600000
    wrapper.java.additional.4=-Dsun.rmi.dgc.server.gcInterval=3600000
    wrapper.java.additional.5=-Dorg.xml.sax.driver=org.apache.xerces.parsers.SAXParser
    wrapper.java.additional.6=-Djava.endorsed.dirs=D:/jboss-4.0.4.GA/lib/endorsed

异常片段

INFO | jvm 1 | 2012/05/31 11:25:03 | 11:25:03,502 ERROR [SOAPFaultExceptionHelper] SOAP request exception INFO | jvm 1 | 2012/05/31 11:25:03 | java.rmi.RemoteException: java.lang.OutOfMemoryError: Java heap space; nested exception is: INFO | jvm 1 | 2012/05/31 11:25:03 | java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space

INFO | jvm 1 | 2012/05/31 11:25:03 | Caused by: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space INFO | jvm 1 | 2012/05/31 11:25:03 | at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:205) INFO | jvm 1 | 2012/05/31 11:25:03 | at java.util.concurrent.FutureTask.get(FutureTask.java:80)

解决方法:

您可以尝试使用jmap进行内存转储(在标记中您提到了java 5,因此这应该是可行的).当服务器仍然工作时(例如每小时左右)进行多次转储.

然后在Eclipse MAT中分析它们.搜索每个转储上变大的对象或对象集合.这很可能是你的内存泄漏.

标签:java-5,java,jvm,out-of-memory,jboss-4-0-x
来源: https://codeday.me/bug/20191006/1859797.html