我们在 weblogic 12c 上部署了应用程序,我们在日志中看到间歇性以下异常
java.lang.OutOfMemoryError:超出 GC 开销限制
当我同时看到应用程序 log4j 日志时,我可以看到以下异常
异常 [EclipseLink-4002] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.DatabaseException 内部异常: 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 中 jndi 数据源配置的连接池选项卡中,最大容量设置为 30,我们使用的是 oracle 数据库。