0

在我们的数据库中,我们发现 GV$Session 中的非活动会话计数很高。但是在监视 weblogic 服务器中的连接池时,没有发现数据库中显示的连接数。

检查了连接泄漏的应用程序代码,但找不到任何。你能帮我指出可能是这里的问题。

Weblogic 8.1,Oracle 10g

4

2 回答 2

0

请计算连接设置中每个 JDBC 允许的最大连接数。然后检查每个 JDBC 到每个服务器的映射。

当您的应用程序运行时,weblogic 服务器会在用户之后创建与数据库的连接,而不是断开连接,而是将其保留为非活动会话。因此很容易被 weblogic 重用。随着越来越多的负载施加到应用程序上,这个数字会增加到允许的最大数量。

一旦超过一个 JDBC 的这个数字,JVM 就会开始给出错误。

但连接并没有丢失,它们处于非活动状态。将此计数与您所拥有的计数相比较。

我想他们会是一样的。在这种情况下,请调整您的应用程序以减少连接时间,并尝试更好的连接逻辑(如果在 Web 上可用)。

于 2012-05-17T13:01:20.700 回答
0

您是否在 Weblogic 集群中运行?

请记住,每个托管服务器都会打开配置的数据库连接数,因此如果您计算出 10 个 JDBC 连接和 4 个托管服务器,则它是 40 个打开的会话。

然后,您是否使用相同的凭据将多个池配置到同一个数据库,您必须将每个托管服务器的所有池合计起来。

于 2012-05-15T08:24:17.620 回答