在我们的数据库中,我们发现GV $ Session中的非活动会话数很高。但是,监视weblogic服务器中的连接池时,找不到数据库中指示的连接数。
检查应用程序代码是否存在连接泄漏,但无法找到。能否请你帮我说明这可能是问题所在。
Weblogic 8.1, Oracle 10g
答案 0 :(得分:0)
您是否在Weblogic群集中运行?
请记住,每个受管服务器都会打开配置的数据库连接数,因此,如果您有10个JDBC连接和4个受管服务器,那么它就是40个打开的会话。
然后,您是否使用相同的凭据将多个池配置到同一个数据库,您必须为每个受管服务器总计所有这些池。
答案 1 :(得分:0)
请计算连接设置中每个JDBC允许的最大连接数。 然后检查每个JDBC到每个服务器的映射。
当您的应用程序运行时,weblogic服务器会创建与DB的连接,在用户之后,它将其作为非活动会话保留,而不是断开连接。因此很容易重复使用weblogic。随着越来越多的负载被放在应用程序上,这个数字增加到允许的最大数量。
一旦超过一个JDBC的数量,JVM就开始给出错误。
但连接不会丢失,它们处于非活动状态。理解这与你得到的数量有关。
我想他们会一样的。在这种情况下,调整您的应用程序以减少连接时间,并在网络上提供更好的连接逻辑。