如何测试数据库连接是否成功关闭?

时间:2011-08-27 05:50:36

标签: java

通常我们的框架类hibernate将处理数据库连接的打开和关闭。

但由于某些技术要求,我们需要通过jndi直接调用数据库来打开另一个数据库连接。

对于这种情况,我们如何彻底测试我们的开放连接关闭连接是否会按预期正常工作?

除了将conn.close置于异常终止块之外?

2 个答案:

答案 0 :(得分:3)

它实际上取决于数据库。大多数数据库显示与它们的连接数,并且还可以显示连接到它的IP地址。所以,请检查数据库。

否则,尝试在关闭后运行模拟查询,它应该失败,捕获异常,以便它不会关闭连接。

答案 1 :(得分:2)

conn.close()放入finally似乎已经足够了。我想在那之后,您可以在另一个try-catch块中尝试对数据库执行查询。如果您收到异常,则表明(很可能)您的连接已完全关闭。

只是一个想法,希望有所帮助!

编辑:为了清楚起见,我的意思是在你最终阻止之后做这样的事情(注意我的Java语法有点生疏,所以这可能不完全正确,但是你明白了哈哈

try
{
    s.executeQuery(sqlString);
}
catch(SQLException e)
{
    //examine error here to make sure it's because the connection is already closed
}