Web应用程序通过jdbc在Oracle中创建非活动会话

时间:2011-10-18 09:55:05

标签: java oracle jdbc

我们有一个用Java编写的Web应用程序,它连接到Oracle数据库以进行数据提取。最近,我们在JDBC数据库中遇到了太多非活动会话,这是我们使用grails框架的Web应用程序。即使我们点击UI页面中的刷新按钮,INACTIVE SESSION大小也会增加。这将长时间(几天)徘徊。

我们非常确定所有连接都已关闭,并在每个进程后设置为null。

任何人都可以帮助我们吗?为什么它会导致数据库中的非活动会话以及可以解决此问题的方法。

1 个答案:

答案 0 :(得分:0)

  

我们非常确定所有连接都已关闭,并在每个进程后设置为null。

如果手动关闭连接(如果使用JDBC,似乎就是这种情况),为什么不使用日志记录来分析导致创建新连接的原因?

也许你也使用连接池?也许您在共享模式下连接到ORACLE?

在您提供更多信息之前,可能会有太多 maybes

更新:

在评论中,您说明确关闭连接池。的为什么
强烈建议使用连接池,因此每次需要与数据库交互时,应用程序都不会生成新连接,而是使用池中的连接。 所以,首先要确保您实际使用连接池。您最有可能使用应用程序服务器(如果是这样,而不是指定哪一个),我也怀疑您使用的是纯JDBC。最有可能的是,它是Hibernate或任何其他持久性提供程序,对吗?

另见: Inactive session in Oracle by JDBC