java 关闭oracle连接_Java应用中Oracle连接不关闭

在一些不使用连接池的较老的Java Web应用程序中,我有一个连接泄漏。

查找泄漏很困难,因为它不会授予我访问v$session的权限

SELECT Count(*) FROM v$session;

因此,我尝试使用System.Out语句进行调试。即使在关闭连接之后

conn.close();

当我将conn打印到系统日志文件时,它会给出连接对象的名称。

try {

Connection conn;

conn.close()

}

catch (SQLException e) { }

finally {

if (conn != null) {

try {

System.out.println("Closing the connection");

conn.close();

}

catch (Exception ex)

{

System.out.println("Exception is " + ex);

}

}

}

// I then check conn and it is not null and I can print the object name.

if (conn != null) {

System.out.println("Connection is still open and is " + conn);

}

但是,如果我还补充

conn = null;

在下面

连接关闭();

语句连接现在似乎已关闭。所以我的问题是conn.close();实际上释放了我的连接,还是必须使其为空才能真正释放我的连接。就像我说的,在没有查询v$session的情况下,很难确定连接是否真的被释放。是否有Java代码片段可以给我打开的连接??

这可能是有教育意义的,因为我计划重构这些应用程序以使用连接池,但我现在正在寻找一个快速的创可贴。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值