【问题标题】:JDBC detect a lost connectionJDBC 检测到丢失的连接
【发布时间】:2013-09-26 17:14:56
【问题描述】:

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

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

编辑: 我试过 isValid 和 isClosed。 isValid 抛出异常,isClosed 总是返回 false。

【问题讨论】:

    标签: java jdbc database-connection vertica


    【解决方案1】:

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

    【讨论】:

    • 我会试试 isValid。我认为我不能使用池,因为我需要控制我连接的数据库节点。不能只是游泳池中的任何一个:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-22
    • 2011-05-19
    • 1970-01-01
    • 2018-09-26
    • 2016-09-04
    • 2011-06-13
    • 1970-01-01
    相关资源
    最近更新 更多