You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何延长JDBC连接MS SQL Server 2019的无活动超时时间?

解决JDBC连接SQL Server 2019无活动12小时中断的问题

一、服务器端配置调整

该超时问题大概率和SQL Server的会话空闲设置或远程查询超时有关,可通过以下SQL命令检查和修改:

  • 检查并修改远程查询超时:
    该参数控制远程查询的执行超时,默认600秒(10分钟),若需取消超时限制,执行:
    sp_configure 'remote query timeout', 0; -- 0表示无超时
    RECONFIGURE;
    
  • 检查并修改空闲会话超时:
    SQL Server 2016及以上版本支持idle session timeout参数,会自动断开超过指定时长的空闲会话。先查看当前设置:
    SELECT name, value, value_in_use FROM sys.configurations WHERE name = 'idle session timeout';
    
    若要延长至24小时(86400秒),执行:
    ALTER SERVER CONFIGURATION SET IDLE_SESSION_TIMEOUT = 86400;
    

二、JDBC客户端参数优化

即使服务器端设置正常,JDBC驱动的参数也可能影响连接稳定性,可尝试添加以下配置到连接URL:

  • socketTimeout:设置套接字超时(毫秒),默认0为无限,显式设置更长时长(如24小时):
    jdbc:sqlserver://<服务器地址>:<端口>;databaseName=<数据库名>;socketTimeout=86400000;
    
  • keepAlive:启用TCP保持活动机制,防止中间网络设备断开空闲连接(JDBC驱动6.0+支持):
    jdbc:sqlserver://<服务器地址>:<端口>;databaseName=<数据库名>;keepAlive=true;
    
  • 连接池配置(若使用):如果用了连接池(如HikariCP、Druid),需调整池内连接的空闲回收时间,比如HikariCP的idleTimeout和maxLifetime,确保时长大于你的业务空闲周期。

三、网络设备排查

若上述调整后问题依旧,需检查中间的防火墙、路由器或负载均衡设备——这类设备通常默认设置12小时的空闲连接超时规则。需联系管理员调整超时时间,或启用TCP keepalive来维持连接活跃。

内容的提问来源于stack exchange,提问作者warleem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 22:25:17