代码之家  ›  专栏  ›  技术社区  ›  boj

SQL Server 2000服务器错误

  •  0
  • boj  · 技术社区  · 17 年前

    在试验机上:

    • 我们得到了SSL错误异常。我们根据MS KB的一篇文章修复了这个问题,但之后它说
    • " Server error General network error “并降低到每秒1-2个存储过程。
    • 探查器说,当应用程序运行时,我们有2000-2500个连接。同一应用程序在其他机器上只有5-10个连接。我认为随机错误消息是由这个巨大的连接数引起的。

    我们重新安装了SQL Server,关闭了连接池,并关闭了所有DataReader。

    我还能做什么?MSSQLS2K是否有“更深入”的配置工具?是否有隐藏的组件/ini/config/registry键?或者我可以使用的SQL事件探查器以外的其他事件探查器?

    4 回复  |  直到 17 年前
        1
  •  1
  •   Mitch Wheat    17 年前

    还有一种可能性(!):

    Multiple Fixes for SQL Server .NET Data Provider

    当SQLCommand.CommandTimeout为 如果设置为零,则期望无穷大 超时。但是,版本1.1和1.0 SqlClient提供程序的配置不正确 从SQL返回响应时超时 服务器被分成两个数据包。 在收到第二份 提供程序超时错误。修复 这是本文中包含的修复 此问题将导致命令 有一个无限的超时。

        2
  •  0
  •   Mitch Wheat    17 年前

    如果关闭OLE DB资源池,会发生什么情况

    'For SQLOLEDB provider
     'strConnect = "Provider=SQLOLEDB;server=MyServerName;OLE DB Services = -2;uid=AppUser;pwd=AppUser;initial catalog=northwind"
    
    ' For MSDASQL provider 
    'strConnect = "DSN=SQLNWind;UID=Test;PWD=Test; OLE DB Services= -2"
    
        3
  •  0
  •   Mitch Wheat    17 年前

    另一个需要注意的问题是,您是否总是从ADO.NET指定存储过程参数的类型和方向。

    内部情况是sqlClient将您在ADO.NET中设置的参数转换为存储过程参数中的相关数据类型。但当您发送可能导致错误转换的nText参数时,此操作可能会失败。

    此外,我还要检查您是否有时在存储过程参数中传递很长的语句。

        4
  •  0
  •   boj    17 年前

    不幸的是,米奇,这些想法都不是真正的解决方案。毫不奇怪,MSSQL中的错误消息似乎是 随机的 .

    随机的 ,我的意思是:

    • 在X[1]并发连接之后,MSSQL会自动停止关闭连接,并且连接池会变大。在X之前,我只看到5-10个连接[2]/但在那之后,有2500个和MSSQL连接。
    • 在这种情况下,MSSQL抛出非确定性错误消息,如 “全面失败” , '用户(空)'
    • 我们在DAL中有未关闭的连接(自2年后隐藏…brrr),当我们经常使用它时,它导致了这个可怜的错误。

    [1] 我不知道X的具体值

        SELECT 
          DB_NAME(dbid) as DBName, 
          COUNT(dbid) as NumberOfConnections,
          loginame as LoginName 
        FROM
          sysprocesses
        WHERE 
          dbid > 0
        GROUP BY 
          dbid, loginame