间歇性SQL Server ODBC超时已过期

时间:2008-12-18 19:14:35

标签: sql-server vb6 odbc

我们有一堆VB6应用程序可以访问两个不同的数据库服务器(32位Windows 2003,一个SQL Server 2000,一个SQL Server 2005)。大约每十分钟左右,我们会遇到一些错误:

  

[Microsoft] [ODBC SQL Server驱动程序]超时已过期   [Microsoft] [ODBC SQL Server驱动程序] [DBNETLIB] SQL Server不存在或访问被拒绝。   [Microsoft] [ODBC SQL Server驱动程序] ConnectionRead()

随机时间在十几台不同的计算机上发生这种情况。我们也有IP电话,所有IP电话都通过相同的网络,并没有任何问题。我们还可以将VNC转换为用户计算机并重现他们所获得的错误,但VNC仍然可以继续工作。电子邮件也有效。它似乎是导致该问题的SQL Server的ODBC连接。我们的两个SQL Server都会发生错误。我们已经搜索谷歌,但未能提出解决方案。有什么我们可以尝试诊断问题吗?那有什么问题吗?

更新

我们在服务器或客户端上都没有内部防火墙。我们通过TCP / IP通过服务器的DNS名称连接(也有尝试过的IP地址)。

一台服务器具有Windows 2003 SP2,另一台服务器没有。

奇怪的是,它已经运行了好几年,现在突然发生了这些错误。在很长一段时间内,这些服务器上没有任何变化。这让我们相信这是一个糟糕的转变,但这似乎不太可能,因为没有别的东西(电子邮件,电话,vnc,文件服务器等)都可以毫无问题地工作。

4 个答案:

答案 0 :(得分:2)

请参阅此Microsoft知识库文章。

Some problems occur after installing Windows Server 2003 SP2

我还建议您切换到OLE DB提供程序。根据我的经验,它比ODBC更快,也更可靠。

Connection Strings

向下滚动到:SQL Native Client OLE DB提供程序

答案 1 :(得分:0)

您使用的是非默认实例吗?或者你有内部防火墙吗?

我们更改为“server.fqdn.tld \ instance,port”以避免内部防火墙后面的客户端出现这种确切的(IIRC)间歇性连接问题。

只有SQL连接受到影响。

答案 2 :(得分:0)

我们从未弄清楚为什么会这样。我们将服务器升级到SQL Server 2008,并且错误消息已停止。

答案 3 :(得分:0)

我最近遇到了一个非常类似的问题posted it here

ScottE找到了解决方案。