JDBC检测丢失的连接

时间:2013-09-26 17:14:57

标签: java jdbc database-connection vertica

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

  1. 假设SQLException是丢失的连接。似乎不可靠。
  2. 检查ex.getCause并查找套接字异常。不确定检查原因是否是一种好习惯。
  3. 检查错误代码,我知道这是连接丢失的情况。也似乎有点不可靠。
  4. 编辑:  我试过isValid和isClosed。 isValid抛出异常,isClosed总是返回false,无论如何。

1 个答案:

答案 0 :(得分:1)

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