【发布时间】:2014-09-11 13:49:50
【问题描述】:
问题 我们有一个 Java Web 应用程序连接到通过 Websphere 应用程序服务器配置的 Oracle 数据库。 连接是数据源连接,而不是普通的 jdbc 连接(DriverManager.getConnection(),所以不需要做 con.colse())。 连接池大小为 10。在数据库端打开的连接数超过 500。正在显示 v$session 表 超过 500 个连接处于打开状态。我们只通过一个用户连接到数据库。所有连接都属于一个 用户。我的问题是为什么在空闲时间或事务结束后连接没有关闭?大多数连接 空闲且不用于对数据库运行任何 sql 查询,但连接已打开。 这是 websphere 设置还是 Oracel DBA 设置?如何将 Websphere 配置为仅使用来自连接池的连接? 如何在会话结束时间或默认时间(例如 30 分钟)后终止连接,而不是手动进行 DBA Oracle 设置? 请帮忙 谢谢, 克里希纳 ekrishna10@gmail.com
【问题讨论】:
-
你需要
close()连接完成后。是什么让你不这么认为? -
感谢 Elliott Frisch,这是一个有点旧的应用程序,最近出现了连接问题。我检查了代码,我们通常在一种方法 closeJDBCObjects() 中关闭所有连接,并在 finally 块中创建新连接的所有位置调用。
-
看看我的博文here。然后确保你按照你所说的去做。
-
数据库方面的任何帮助,因为连接大部分时间都是空闲的,没有运行任何 sql,为什么 Oracle DB 不能在一段时间后关闭连接(会话时间或默认时间说30 分钟?如果有任何此类选项,请告诉我。
-
咨询您的 DBA(或服务器故障)。你也可以定期重启你的应用服务器(有相应的停机时间)。
标签: java oracle jdbc datasource