java - JDBC 检测丢失的连接

标签 java jdbc database-connection vertica

如何使用 JDBC 以可靠且高效的方式检测丢失的连接?目前我正在使用 Vertica JDBC 驱动程序。我不认为我可以使用连接池,因为我需要始终控制连接到哪个节点。到目前为止我想到的事情:

  1. 假设 SQLException 是连接丢失。看起来不太可靠。
  2. 检查 ex.getCause 并查找套接字异常。不确定检查原因是否是一个好的做法。
  3. 检查错误代码,我知道这是连接丢失的情况。也显得有点不靠谱。

编辑: 我尝试过 isValid 和 isClosed 。 isValid 会抛出异常,isClosed 无论如何都会返回 false。

最佳答案

从1.6版本开始,理论上你可以使用Connection.isValid方法,但我不确定是否每个供应商都支持它。另一种选择是使用 connection pool它管理连接,您可以从它们那里获取连接,并在不需要时释放它。连接池负责维护连接,并且始终提供有效的连接。

关于java - JDBC 检测丢失的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19034492/

相关文章:

java - Android 从 Retrofit 调用获取 LiveData

Java JDBC 语法错误

java - 使用 JDBC 的 tomcat 6.0 抛出 ClassNotFoundException com.mysql.jdbc.Connection

sql - 使用jdbc River将多个表从MySQL索引到elasticsearch

java - jsp中的oracle连接

java - 使用Java在DynamoDb中找不到QueryRequest的SetCount方法

java - Spring Boot Controller 屏蔽静态内容

java - 是什么导致 HttpHostConnectException?

sql - 如何关闭在数据库链接 (ORA-02080) 中创建的游标?

asp.net - 追踪数据库连接问题