gpt4 book ai didi

java - SQL Server JDBC 驱动程序无法快速检测丢失的连接

转载 作者:行者123 更新时间:2023-12-02 07:33:52 25 4
gpt4 key购买 nike

我正在使用 JDBC 驱动程序 sqlserver-jdbc-4.0.jar 连接到 SQL Server。我创建了一个连接并成功使用它。

然后我关闭了 SQL Server 计算机的网络接口(interface)。当我运行下一个命令时,应用程序一侧的 JDBC 驱动程序需要大约 15 分钟才能了解连接已丢失。我尝试了几件事:

  1. 配置的 JDBC 驱动程序属性LoginTimeout=5、LockTimeout=5、QueryTimeout=5(5 秒)
  2. 调用 Statement.setQueryTimeout() 将超时设置为 5 秒
  3. 调用 Connection.isValid() 时超时 5 秒 - 它还卡住了 15 分钟

另一个可能的选项 - Connection.setNetworkTimeout() 但它不是由 SQL Server 驱动程序实现的。我也无法访问 JDBC 驱动程序用于在其上设置 TCP Keepalive 的套接字。

如果我关闭连接然后再次打开它,它会立即了解到 SQL Server 实例无法访问。

如何解决我的问题并在几秒钟而不是 15 分钟内检测到丢失的连接?

最佳答案

Microsoft MSSQL-JDBC 现已开源。最近 MSSQL-JDBC 团队实现了 sockettimeout & querytimeout s。这肯定会解决你的问题。

关于java - SQL Server JDBC 驱动程序无法快速检测丢失的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41021303/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com