我有一个应用程序,它与运行所需的 SQL Server 实例之间的连接间歇性中断。解决此类问题的好方法是什么?如果 SQL Server 故意断开连接,是否会在其中记录某种日志。
我知道应用程序和数据库之间的任何东西都可能导致连接丢失。我不认为这是客户端和服务器之间的网络连接问题,因为该应用程序是通过 Citrix XenApp 提供的,并且在同一主机上运行的所有其他实例在我看到的那个时间点或那个时间点附近都没有问题问题。
如果重要的话,这就是 SQL Server 2005 - 企业版。我的应用程序是基于 Visual FoxPro 的应用程序,通过 Citrix XenApp 提供给客户端机器。此问题很少见且是间歇性的(每天 1-2 次,超过数百个客户)。
此外,SQL Server 和 Citrix 在虚拟化服务器基础架构上运行。
TL;DR:如何解决间歇性数据库连接丢失问题?
更新:这是问题发生时应用程序错误日志中的消息:
Connectivity error: [Microsoft][ODBC SQL Server Driver]Communication link failure
Run Code Online (Sandbox Code Playgroud)
我之前看到该消息的唯一时间是 SQL Server 完全过载以及实际网络连接本身出现问题(断开连接)时。在这种情况下,我认为这两种情况都不是。
一定要查看 NT 和 SQL 日志……如果您在 SQL Server 2008 或更高版本上运行,请检查环形缓冲区 DMV 以获取一些额外线索。您是否有任何可以提高采样率的监控工具,以证明问题可能出在 Citrix Xenapp 交付上?
环形缓冲区:http : //blogs.msdn.com/b/sql_protocols/archive/2008/05/20/connectivity-troubleshooting-in-sql-server-2008-with-the-connectivity-ring-buffer.aspx
Kendra Little 在解决查询超时问题上做了一个很好的介绍视频,与连接超时不太一样。 http://www.brentozar.com/archive/2011/07/mystery-of-query-timeouts-video/
| 归档时间: |
|
| 查看次数: |
48945 次 |
| 最近记录: |