我们在weblogic 12c上部署了应用程序,并且在日志中看到了断断续续的异常
java.lang.OutOfMemoryError: GC overhead limit exceeded
当我同时看到应用程序log4j日志时,我可以看到以下异常
org.eclipse.persistence.exceptions.DatabaseException weblogic.jdbc.extensions.PoolLimitSQLException:EclipseLink-4002:weblogic.jdbc.extensions.PoolLimitSQLException: weblogic.common.resourcepool.ResourceLimitException: TMP_DS_RW中没有可用的资源分配给应用程序,请增加池的大小并重试。错误代码:0
由于: weblogic.jdbc.extensions.PoolLimitSQLException: weblogic.common.resourcepool.ResourceLimitException:没有当前可用的资源池TMP_DS_RW分配给应用程序,请增加池的大小并重试。
这种情况是由于池中的连接已耗尽而发生的吗?
weblogic的连接池大小与java.lang.OutOfMemoryError有什么关系吗?
因为每当池连接似乎耗尽时,我们就会面临java.lang.OutOfMemoryError。
我们已经尝试将堆大小从1GB增加到2GB,但是过了一段时间,我们仍然面临着java.lang.OutOfMemoryError。
在问题怀疑中使用eclipse堆转储分析器后,它正在显示
由“系统类加载器”加载的类"java.lang.ref.Finalizer“占9,935,880 (69.45%)字节。
注意:在weblogic数据源配置的连接池选项卡中,最大容量设置为30,我们使用的是oracle数据库。
发布于 2019-10-01 11:26:09
这是可能的,因为数据库连接使用内存。您的应用程序必须泄漏连接池。尝试查看应用程序代码,并检查它在使用后是否正确地释放数据库连接。
发布于 2019-10-02 09:13:13
java.lang.OutOfMemoryError:超过GC开销限制
当满足下列所有条件时,将引发此错误:
资料来源: Java性能,权威指南
如果增加堆大小不能修复它,请检查CPU是否是瓶颈。
-XX:+PrintGCDetails
-Xloggc:<path>
这将记录有关GC的信息。如果看到堆大小不断增加,则会出现内存泄漏,并且可能不会关闭连接。
发布于 2019-10-01 07:27:18
您是否试图监视来自WebLogic控制台的连接?服务->数据源-> (选择您的dataSource) -> (选项卡)监视,在那里您应该有一个连接的“实时”视图。
https://stackoverflow.com/questions/58165266
复制相似问题