sql-server – 重置错误的连接池:18056,严重性:20,状态:46.&a
我们正在使用SQL身份验证(以减少连接池的数量)& .NET 4.0连接字符串,用于连接到
Windows 2008 R2 Enterprise Server上的SQL Server Enterprise Edition 2012 SP1:
我们使用大约50台服务器分成8个不同组的网站不同部分. 我们的网站使用此SQL Server记录访问跟踪数据.在过去的几天里,它已经发布了有关重置连接池的以下消息:
错误日志读取:
经过一番挖掘后,我在CSS博客上找到了这个文件:How It Works: Error 18056 – The client was unable to reuse a session with SPID ##,which had been reset for connection pooling和Aaron Bertrand的这个文件:Troubleshooting Error 18456.我知道错误号是不同的,但失败ID是相同的,一些消息是相同的). 失败ID 46表明登录没有权限.我们的登录默认为master数据库,并且在连接字符串中指定了db名称. 我想检查连接字符串池的数量等,并检查Perfmon中针对SqlServer的.Net Data Provider的所有计数器.它只为我提供了defaultdomain9675选项,因此我选择了假设这是我们的Datacentre网络的系统生成的ID名称.不幸的是,所有的计数器都读数为零.在我们的其他主服务器上,连接池徘徊在10左右,这是我期望在具有这种负载的健康服务器上看到的. 我的问题是3折 >任何人都可以建议为什么Windows 2008 R2 Server没有为SqlServer显示.Net数据提供程序? Min&最大内存设置为20GB&分别为58GB.服务器是一个具有64GB RAM的专用数据库服务器.我不认为记忆是问题,因为盒子似乎有一个不错的预期页面.未启用自动关闭.服务器始终处于运行状态:这是一个24×7的网站,使用率很高. 解决方法1 – 不能肯定地说,我必须去找一台服务器来挖掘自己.2 – 是的,我在我的环境中定期看到这个,虽然我们还没有在我们看到的系统上的sql 2012上.您可能还想检查http://blogs.msdn.com/b/psssql/archive/2013/02/13/breaking-down-18065.aspx虽然状态46似乎与连接字符串中具有特定的Database = xxx有关,该数据库是否仍然存在? 该方法我的网络设置我怀疑这是网络的TCP会话的自动关闭被5分钟闲置这是个问题之后 – 无论是分贝,也不是客户端关闭,以便连接池仍然认为连接是打开的,并尝试使用该会话它只是发现它不再是真的开放了.您没有提到如何配置Web服务器和db之间的网络,也许您的情况类似. 另一种可能是关于TCP烟囱卸载设置的问题(旧的,不确定,如果真的解决了,请参阅http://support.microsoft.com/kb/942861). 3 – 我的理解是池化需要精确的字符串匹配,因此空格和不同的参数顺序会导致不同的池. (如果我错了,请告诉我.) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |