诊断 OLEDB 80004005 E_FAIL 错误

诊断 OLEDB 80004005 E_FAIL 错误

我正在尝试诊断导致我们的一个数据库应用程序经常崩溃和挂起的原因。操作系统是 Windows Server 2003,数据库服务器是 SQL Server Enterprise 2005。

在崩溃/挂起之前,我们收到大量类似的错误。

Error:  OLEDB returned result 80004005. Description: E_FAIL.  Unspecified error

我已经与软件供应商进行了交流,他们认为这是由于 SQL 服务器负载过大或与 SQL 服务器的连接丢失造成的。

我不认为这是负载问题 - 如果有的话,情况似乎在夜间变得更糟,因为 SQL 服务器上的负载较少(这可能是一个空闲问题?)。连接性是可能的,但是服务器上的其他数据库没有遇到问题,并且访问数据库的另一个应用程序没有报告任何问题(尽管它可能具有更高的容错能力)。

在我们的测试系统上运行测试时,我偶尔可以通过 Windows 防火墙阻止 SQL 服务器端口约 20 秒然后重新启用来复制此问题 - 有时会导致相同的行为,有时应用程序会恢复。我编写了一个实用程序来尝试每秒连接到数据库以检查连接性,但它没有显示任何连接丢失。

我可以采取哪些后续步骤来证明/反驳 SQL 服务器连接性良好?

谢谢。

答案1

该问题似乎是由 tcp 卸载引起的,已知 Broadcom 5708 芯片组存在问题:

http://support.microsoft.com/kb/942861/en-us

相关内容