com.microsoft.sqlserver.jdbc.SQLServerException: 到主机 的 TCP/IP 连接失败。

xf_turbo 2018-02-01 05:22:33
com.microsoft.sqlserver.jdbc.SQLServerException: 到主机 的 TCP/IP 连接失败。 java.net.ConnectException: Connection timed out: connect

程序一直都在用也没什么问题,就这两天突然就出来了这个,百度看到说 原因并不是数据库连接造成的,而是TCP/IP的连接太多,没有来得及释放造成的。

又不知道该怎么去解决,请大神指点~
...全文
758 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
吉普赛的歌 2018-02-11
  • 打赏
  • 举报
回复
引用 10 楼 xf_turbo 的回复:
引用 9 楼 yenange 的回复:
[quote=引用 4 楼 xf_turbo 的回复:] [quote=引用 2 楼 yenange 的回复:] 用了连接池吗?
没有用链接池,
几个方面一起检查吧: 1. 先启用连接池, 最大连接数设置为 512 。 基本上正常的应用都会启用连接池, 这个节省而且高效, 对于应对用户并发连接数多相当有用; 2. 找一下网络运维同事, 检查网络连接是否有丢包现象; 3. 检查程序里面是否有连接没有正常关闭。 [/quote]感谢,已经好了,原因是服务器的网卡丢失了了一块[/quote] 恭喜, 没事就结贴吧
xf_turbo 2018-02-11
  • 打赏
  • 举报
回复
引用 9 楼 yenange 的回复:
引用 4 楼 xf_turbo 的回复:
[quote=引用 2 楼 yenange 的回复:] 用了连接池吗?
没有用链接池,
几个方面一起检查吧: 1. 先启用连接池, 最大连接数设置为 512 。 基本上正常的应用都会启用连接池, 这个节省而且高效, 对于应对用户并发连接数多相当有用; 2. 找一下网络运维同事, 检查网络连接是否有丢包现象; 3. 检查程序里面是否有连接没有正常关闭。 [/quote]感谢,已经好了,原因是服务器的网卡丢失了了一块
zjcxc 2018-02-05
  • 打赏
  • 举报
回复
并发过多则增加 java 中的连接池上限配置
xf_turbo 2018-02-05
  • 打赏
  • 举报
回复
引用 3 楼 zjcxc 的回复:
sql server 中的连接数过多,可以 kill 掉 sleep 时间久的 可以用下面的语句查询,执行第1列的语句即为 kill
select 'kill ' + rtrim(spid), * from sysprocesses where status='sleep' and spid > 50 order by last_batch
如果 sql server 中的连接不多,那么应该是你客户端的连接数超过连接池上限了,通常是连接不正常关闭或并发过多导致,这个你得排查程序了
链接都有close()掉
xf_turbo 2018-02-05
  • 打赏
  • 举报
回复
引用 3 楼 zjcxc 的回复:
sql server 中的连接数过多,可以 kill 掉 sleep 时间久的 可以用下面的语句查询,执行第1列的语句即为 kill
select 'kill ' + rtrim(spid), * from sysprocesses where status='sleep' and spid > 50 order by last_batch
如果 sql server 中的连接不多,那么应该是你客户端的连接数超过连接池上限了,通常是连接不正常关闭或并发过多导致,这个你得排查程序了
如果是并发过多的话要怎么办呢?出错的那个模块最近确实很多人用
xf_turbo 2018-02-05
  • 打赏
  • 举报
回复
引用 2 楼 yenange 的回复:
用了连接池吗?
没有用链接池,
吉普赛的歌 2018-02-05
  • 打赏
  • 举报
回复
引用 4 楼 xf_turbo 的回复:
引用 2 楼 yenange 的回复:
用了连接池吗?
没有用链接池,
几个方面一起检查吧: 1. 先启用连接池, 最大连接数设置为 512 。 基本上正常的应用都会启用连接池, 这个节省而且高效, 对于应对用户并发连接数多相当有用; 2. 找一下网络运维同事, 检查网络连接是否有丢包现象; 3. 检查程序里面是否有连接没有正常关闭。
OwenZeng_DBA 2018-02-05
  • 打赏
  • 举报
回复
检查下这个时间点,SQL SERVER中的执行情况,看下是不是因为数据库压力过大,导致连接没有很快释放
zjcxc 2018-02-01
  • 打赏
  • 举报
回复
sql server 中的连接数过多,可以 kill 掉 sleep 时间久的 可以用下面的语句查询,执行第1列的语句即为 kill
select 'kill ' + rtrim(spid), * from sysprocesses where status='sleep' and spid > 50 order by last_batch
如果 sql server 中的连接不多,那么应该是你客户端的连接数超过连接池上限了,通常是连接不正常关闭或并发过多导致,这个你得排查程序了
吉普赛的歌 2018-02-01
  • 打赏
  • 举报
回复
用了连接池吗?

22,300

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧