连接未在oracle数据库中关闭

时间:2014-07-21 06:08:54

标签: java oracle jdbc datasource

问题 我们有一个连接到Oracle数据库的java Web应用程序,通过Websphere应用程序服务器配置。 连接是数据源连接,而不是普通的jdbc连接(DriverManager.getConnection(),所以不需要做con.colse())。 连接池大小为10.数据库端打开的连接数超过500. v $ session table正在显示 超过500个连接开放。我们只通过一个用户连接到数据库。所有连接都属于一个 用户。我的问题是为什么在空闲时间或tranaaction结束后连接没有关闭?大多数连接 是空闲的,不用于对数据库运行任何sql查询,但连接是打开的。 这是websphere设置还是Oracel DBA设置?如何配置Websphere仅使用连接池中的连接? 如何在会话输出时间或默认时间(比如30分钟)之后执行DBA Oracle设置以终止连接,而不是手动? 请帮忙 谢谢, 克里希纳 ekrishna10@gmail.com

1 个答案:

答案 0 :(得分:3)

您使用DataSource绝不意味着您的代码在完成连接时不需要关闭连接。无论您如何获得连接,都需要确保在完成连接后关闭连接。

例如,DataSource tutorial明确指出您需要关闭您的连接并建议类似

的内容
try {
    Connection con = ds.getConnection(username, password);
    // ... code to use the pooled
    // connection con
} catch (Exception ex {
    // ... code to handle exceptions
} finally {
    if (con != null) con.close();
}