1

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

  1. 假设 SQLException 是一个丢失的连接。似乎不可靠。
  2. 检查 ex.getCause 并查找套接字异常。不确定检查原因是否是一个好习惯。
  3. 检查我知道的错误代码是连接丢失的情况。也显得有些不靠谱。

编辑:我试过 isValid 和 isClosed。isValid 抛出一个异常并且 isClosed 总是返回 false 无论如何。

4

1 回答 1

1

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

于 2013-09-26T17:20:37.513 回答