我们的团队在公司 IT 部门提供的两个独立主机(测试和生产)上拥有 SQL Server 数据库。
在我的 Windows 7 计算机上运行一个执行大量面向数据库的工作的工具时,经过一段时间的交互后,我突然无法连接到测试数据库或测试数据库主机。
我的意思是我会突然在日志中收到错误:
错误 ohejsSqlExceptionHelper // 与主机 TESTHOST(名为实例 TEST)的连接失败。错误:“java.net.SocketTimeoutException:接收超时”。验证服务器和实例名称,并检查防火墙是否阻止到端口 1434 的 UDP 流量。对于 SQL Server 2005 或更高版本,验证主机上是否正在运行 SQL Server Browser 服务。
我无法 ping TESTHOST
(“常规失败”是唯一显示的错误消息),也无法 telnet(到 1979),也无法 tracert(也是“常规失败” - 立即)。
在此过程中,我可以 ping、tracert、telnet 以及使用 SQL Server Management Studio 连接到PRODHOST/PROD
数据库实例,没有任何问题。我团队中的其他人可以TESTHOST\TEST
在这个“停电期间”正常连接。一段时间后(甚至无需重新启动我的电脑),我可以恢复连接,通过 telnet 和 SQL Server Management Studio 或工具本身进行测试。
IT 部门已禁用 Windows 防火墙。已安装 McAfee Agent 和 McAfee Virus Security。我对此无能为力。如果再对 IT 部门说“它不起作用!”,我就会重新制作我的机器映像,但这甚至不一定能解决问题(尽管有人反对不去了解根本原因),但它会妨碍我处理许多其他不受此特定工具无法进一步开发影响的事情。
我很困惑:我并不是一个超级用户,但有人能帮我调查一下到底发生了什么吗?有证据表明,对我来说,这完全是我的系统的问题(所以,也许重新镜像一下就可以了)。我尝试了一些随机的方法,比如为我的英特尔 82578DM 千兆网络适配器安装最新的驱动程序、禁用 IPv6,以及netsh int ip reset
(这不允许我再次开始连接,只有时间或重置才能连接)。