java.lang.StringBuffer java.lang.OutOfMemoryError: Java heap space
java.lang.StringBuffer java.lang.OutOfMemoryError: Java heap space
我在从数据库中读取数据时出现以下错误。
请提供您对原因的看法。
注意 - 我增加了最大堆大小。
Exception in thread "Thread-4" Exception in thread "Thread-2" java.lang.OutOfMemoryError: Java heap space
at java.lang.AbstractStringBuilder.<init>(AbstractStringBuilder.java:45)
at java.lang.StringBuffer.<init>(StringBuffer.java:79)
at com.ddtek.pool.ConnectionPool.enforceMinimum(Unknown Source)
at com.ddtek.pool.ConnectionPool.doMaintenance(Unknown Source)
at com.ddtek.pool.ConnectionPoolGroup.doMaintenance(Unknown Source)
at com.ddtek.pool.ConnectionPoolMaintenance.run(Unknown Source)
java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2882)
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:390)
at java.lang.StringBuffer.append(StringBuffer.java:224)
at com.ddtek.pool.ConnectionPool.enforceMinimum(Unknown Source)
at com.ddtek.pool.ConnectionPool.doMaintenance(Unknown Source)
at com.ddtek.pool.ConnectionPoolGroup.doMaintenance(Unknown Source)
at com.ddtek.pool.ConnectionPoolMaintenance.run(Unknown Source)
java.lang.OutOfMemoryError: Java heap space
at org.codehaus.groovy.reflection.CachedClass.initValue(CachedClass.java:97)
at org.codehaus.groovy.reflection.CachedClass.initValue(CachedClass.java:80)
at org.codehaus.groovy.util.LazyReference.getLocked(LazyReference.java:46)
at org.codehaus.groovy.util.LazyReference.get(LazyReference.java:37)
at org.codehaus.groovy.reflection.CachedClass.getMethods(CachedClass.java:251)
at org.codehaus.groovy.reflection.CachedClass.initValue(CachedClass.java:117)
at org.codehaus.groovy.reflection.CachedClass.initValue(CachedClass.java:80)
at org.codehaus.groovy.util.LazyReference.getLocked(LazyReference.java:46)
at org.codehaus.groovy.util.LazyReference.get(LazyReference.java:37)
at org.codehaus.groovy.reflection.CachedClass.getMethods(CachedClass.java:251)
at org.codehaus.groovy.reflection.CachedClass.initValue(CachedClass.java:117)
使用eclipse mat工具获取内存泄漏原因,如下
1- 使用 java visualvm 到 运行 您的应用程序,有时并在早期使堆哑,保持 运行 大约一两个小时并使其他堆哑,最后配置你 visualvm 让你对 OOM 情况变得愚蠢。
2- 使用 MAT 工具(它是 eclipse 内存分析工具)并分析你所有的堆,当然你将能够找到根本原因,但这是 java 中最困难的任务之一。
我在从数据库中读取数据时出现以下错误。 请提供您对原因的看法。 注意 - 我增加了最大堆大小。
Exception in thread "Thread-4" Exception in thread "Thread-2" java.lang.OutOfMemoryError: Java heap space
at java.lang.AbstractStringBuilder.<init>(AbstractStringBuilder.java:45)
at java.lang.StringBuffer.<init>(StringBuffer.java:79)
at com.ddtek.pool.ConnectionPool.enforceMinimum(Unknown Source)
at com.ddtek.pool.ConnectionPool.doMaintenance(Unknown Source)
at com.ddtek.pool.ConnectionPoolGroup.doMaintenance(Unknown Source)
at com.ddtek.pool.ConnectionPoolMaintenance.run(Unknown Source)
java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2882)
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:390)
at java.lang.StringBuffer.append(StringBuffer.java:224)
at com.ddtek.pool.ConnectionPool.enforceMinimum(Unknown Source)
at com.ddtek.pool.ConnectionPool.doMaintenance(Unknown Source)
at com.ddtek.pool.ConnectionPoolGroup.doMaintenance(Unknown Source)
at com.ddtek.pool.ConnectionPoolMaintenance.run(Unknown Source)
java.lang.OutOfMemoryError: Java heap space
at org.codehaus.groovy.reflection.CachedClass.initValue(CachedClass.java:97)
at org.codehaus.groovy.reflection.CachedClass.initValue(CachedClass.java:80)
at org.codehaus.groovy.util.LazyReference.getLocked(LazyReference.java:46)
at org.codehaus.groovy.util.LazyReference.get(LazyReference.java:37)
at org.codehaus.groovy.reflection.CachedClass.getMethods(CachedClass.java:251)
at org.codehaus.groovy.reflection.CachedClass.initValue(CachedClass.java:117)
at org.codehaus.groovy.reflection.CachedClass.initValue(CachedClass.java:80)
at org.codehaus.groovy.util.LazyReference.getLocked(LazyReference.java:46)
at org.codehaus.groovy.util.LazyReference.get(LazyReference.java:37)
at org.codehaus.groovy.reflection.CachedClass.getMethods(CachedClass.java:251)
at org.codehaus.groovy.reflection.CachedClass.initValue(CachedClass.java:117)
使用eclipse mat工具获取内存泄漏原因,如下 1- 使用 java visualvm 到 运行 您的应用程序,有时并在早期使堆哑,保持 运行 大约一两个小时并使其他堆哑,最后配置你 visualvm 让你对 OOM 情况变得愚蠢。 2- 使用 MAT 工具(它是 eclipse 内存分析工具)并分析你所有的堆,当然你将能够找到根本原因,但这是 java 中最困难的任务之一。