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

Posted

技术标签:

【中文标题】如何测试数据库连接是不是成功关闭?【英文标题】:How to test if a database connection is closed successfully?如何测试数据库连接是否成功关闭? 【发布时间】:2011-08-27 05:50:35 【问题描述】:

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

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

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

除了将conn.close 放入异常 finally 块之外?

【问题讨论】:

相关问题 - ***.com/questions/274822/… 和 ***.com/questions/5075824/… 【参考方案1】:

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

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

【讨论】:

+1,关于检查数据库连接的好想法(虽然我不知道你会如何以编程方式进行 - 会很有趣!)。 呵呵,刚刚发现SQL Server【参考方案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

【讨论】:

以上是关于如何测试数据库连接是不是成功关闭?的主要内容,如果未能解决你的问题,请参考以下文章

delphi测试数据库是不是连接成功

求一个连接oracle数据库的java类和一个测试是不是连接成功的JAVA类

wincc怎么编写VBS程序确认与服务器连接成功?

数据库连接失败的原因

如何检测(远程)主机上的某个端口是不是开启

JDBC 关闭数据库连接