【问题标题】:Tracking down database connection issues追踪数据库连接问题
【发布时间】:2012-10-14 15:03:42
【问题描述】:

背景

我们在连接到单个数据库服务器的不同 Web 服务器上拥有许多 Web 应用程序。在过去的几个月中,我们注意到每隔一段时间,我们的 Web 服务器将无法连接到数据库服务器。

我们的环境

我们有几个不同的 Web 环境,一些运行 ColdFusion,另一些运行 .NET。 .NET 应用程序既是 Web 窗体又是 MVC。它们跨越从 2.0 到 4.5 的多个版本。 ColdFusion 和 .NET Web 服务器都是基于 Windows 的机器。 ColdFusion 和 .NET Web 环境都是集群的,其中一些机器是物理的,而另一些是虚拟的。

我们的数据库服务器是 SQL Server 2008 r2。它包含多个数据库。每个应用程序都有自己的数据库用户,它连接到只允许它访问特定数据库的服务器。

其他事实

  • 当我们注意到问题时,它们会以短时间的形式出现,持续时间从几秒到几分钟不等。
  • 当我们注意到问题时,突发包含来自多个不同应用程序的错误,而不仅仅是一个应用程序。
  • 当我们注意到问题时,突发包含来自不同 Web 环境的应用程序的错误。 (这让我们认为我们可以排除应用程序本身的问题)
  • 连接问题在白天和晚上的不同时间发生。它们并不总是在使用率高的时候。
  • 我们已经监控了诸如用户连接数、内存、IO、CPU 使用率等内容......我们没有看到峰值或任何其他可能指向问题的东西。
  • 我们已经在 web 和 db 服务器上安装了 wireshark,希望能在没有成功的情况下解决问题。

问题

  1. 有人对我接下来应该看哪里有建议吗?
  2. 是否存在可能导致此问题的数据库属性?
  3. 有什么方法可以更好地“监控”数据库和 Web 服务器之间的连接?
  4. 是否可以在应用程序端执行任何操作以更好地了解正在发生的事情?

应用程序捕获的错误

  • .NET 错误
    • 在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:命名管道提供者,错误:40 - 无法打开与 SQL Server 的连接)
    • 超时。在操作完成之前超时时间已过或服务器没有响应。
    • 从服务器接收结果时发生传输级错误。 (提供者:TCP 提供者,错误:0 - 信号量超时期限已过。)
    • 超时。在从池中获取连接之前超时时间已过。这可能是因为所有池连接都在使用中并且达到了最大池大小。
  • ColdFusion 错误
    • 执行数据库查询时出错。与主机的 TCP/IP 连接失败。 java.net.ConnectException: Connection timed out: connect
      第38行出现错误。
    • 执行数据库查询时出错。对等方重置连接:套接字写入错误
      错误发生在第 91 行。
    • 执行数据库查询时出错。尝试建立连接时超时
      第 38 行出现错误。

【问题讨论】:

标签: asp.net coldfusion error-handling sql-server-2008-r2 database-connection


【解决方案1】:

在 CF 中,我曾经遇到过您所看到的问题。我在一台服务器上有 CF,在另一台服务器上有 sql 2008 r2。我会看到您在下面发布的 CF 错误。为了帮助追踪到网络错误,我写了这样的东西:

1) 创建了一个 down.bat

tracert serverip

2) 然后我在查询周围加上<cftry><cfcatch>

当查询产生错误时我会执行

<cfexecute name="C:\path\to\down.bat" variable="log" timeout="60" />
    <cfmail to="ME" from="Server" subject="SQL DOWN">

    Server Debugging Info:
    ------------------------------------------------------------    
    #now()#

    #cfcatch.Detail#

    #cfcatch.Message#

    #log#        

    </cfmail>
</cfexecute>

这帮助我解决了最终成为数据中心硬件的问题。

【讨论】:

    猜你喜欢
    • 2015-10-25
    • 1970-01-01
    • 2020-04-06
    • 1970-01-01
    • 2016-07-12
    • 2012-02-29
    相关资源
    最近更新 更多