当前位置: 首页 > 知识库问答 >
问题:

java.lang.OutOfMemoryError:超出GC开销限制:部署在weblogic中的应用程序

慕逸仙
2023-03-14

我们在weblogic 12c上部署了应用程序,我们在日志中看到间歇性的以下异常

JAVAlang.OutOfMemoryError:

当我同时看到应用程序log4j日志时,我可以看到以下异常

异常[Eclipse链接-4002](Eclipse持久性服务-2.5.2. v20140319-9ad6abd):org.eclipse.persistence.exceptions.数据库异常内部异常:weblogic.jdbc.extensions.PoolLimitSQL异常:weblogic.common.resourcepool.资源限制异常:池中目前没有可用的资源TMP_DS_RW分配给应用程序,请增加池和重试...错误代码: 0

原因:weblogic。jdbc。扩展。PoolLimitSQLException:weblogic。常见的资源库。ResourceLimitException:池TMP\u DS\u RW中当前没有可分配给应用程序的资源,请增加池的大小并重试。。

发生这种情况是因为池中的连接数已耗尽吗?

连接池大小与OutOfMemoryErrorjava.lang.有关系吗?

因为每当池连接似乎耗尽时,我们就要面对java。lang.OutOfMemoryError。

我们已经尝试将堆大小从1GB增加到2GB,但仍然面临java。一段时间后,lang.OutOfMemoryError出现错误。

在问题中使用eclipse堆转储分析器后,怀疑它正在显示

由“系统类加载器”加载的类“java.lang.ref.终结器”占用9,935,880 (69.45%)字节。

注意:weblogic中jndi datsource配置的连接池选项卡中的最大容量设置为30,我们使用的是oracle数据库。

共有3个答案

东典
2023-03-14

您是否尝试从WebLogic控制台监视连接?服务-

宣望
2023-03-14

JAVAlang.OutOfMemoryError:超出GC开销限制

当满足以下所有条件时,将引发此错误:

  1. 在完整GCs中花费的时间量超过了-XX:GCTimeLimit=N标志指定的值。默认值为98(即,如果98%的时间花费在GC中)

来源:Java性能,权威指南

如果增加堆大小无法解决问题,请检查CPU是否不是瓶颈。

-XX:+PrintGCDetails
-Xloggc:<path>

这将把有关GC的信息记录到。如果您看到堆大小不断增加,那么您就有内存泄漏,并且可能没有关闭连接。

谭正谊
2023-03-14

这是可能的,因为数据库连接使用内存。您的应用程序必须泄漏连接池。尝试查看应用程序代码,并检查它是否在使用后正确释放数据库连接。

 类似资料:
  • 问题内容: 我在一个程序中创建了这个错误,该程序创建了几个(数十万)HashMap对象,每个对象都有几个(15-20)文本条目。这些字符串必须全部收集(不分解成较小的数量),然后再提交给数据库。 根据Sun的说法,该错误发生“如果在垃圾回收上花费了太多时间:如果在垃圾回收上花费了总时间的98%以上,而回收不到2%的堆,则将引发OutOfMemoryError。 ”。 显然,可以使用命令行将参数传递

  • 我正在IntelliJ Idea Ultimate Edition 2020.2.2上运行Grails 2.5.0。它可以很好地编译和构建代码,但它会不断抛出“java.lang.OutOfMemoryError:超出GC开销限制”错误(整个错误都是复制并粘贴在最后)。以下是我在研究这个错误的基础上尝试的东西: 1)增加构建进程堆大小(在2G、4G和6G下尝试)https://intellij-s

  • 问题内容: 我执行JUnit测试时收到以下错误消息: 我知道是什么OutOfMemoryError,但是GC开销限制是什么意思?我该如何解决? 问题答案: 该消息表示由于某种原因,垃圾收集器占用了过多的时间(默认情况下为该进程所有CPU时间的98%),并且每次运行时恢复的内存很少(默认为堆的2%)。 这实际上意味着你的程序停止任何进展,并且一直在忙于仅运行垃圾回收。 为了防止你的应用程序浪费CPU

  • 我有一个Spark作业抛出“java.lang.OutOfMemoryError:GC开销限制超出”。 作业正在尝试处理4.5g的文件。 我尝试了以下spark配置:

  • 我得到一个java.lang.OutOfMemoryError:在Android1.4上运行gradle时超过了GC开销限制...以下是我的错误: 这怎么修复呢?

  • 使用当我尝试构建我的项目时,这种错误越来越多: 错误:任务“:app:CompiledEbugJavaWithJavac”执行失败。OutofMemoryError:超出GC开销限制 有什么办法解决这个问题吗?