SQLSERVER 18056 错误-阿里云开发者社区

开发者社区> 技术小胖子> 正文

SQLSERVER 18056 错误

简介:
+关注继续查看

From:http://blog.csdn.net/yangzhawen/article/details/8209167

18056 
 

客户端无法重新使用 SPID 为 %d 的会话,该会话已被重置用于连接池。失败 ID 为 %d。

此错误可能是由于先前的操作失败引起的。

请查看错误日志,找出在显示此错误消息之前刚发生的失败操作。






2011-11-19 16:33:53.91 spid5495    The client was unable to reuse a session with SPID 5495, which had been 
reset for connection pooling. The failure ID is 1. This error may have been caused by an earlier operation
failing. Check the error logs for failed operations immediately before this error message.
2011-11-19 16:33:53.93 spid2991    错误: 18056,严重性: 20,状态: 1。




案例说明:


当SQLSERVER的errorlog文件中不停的报错10856的时候,CPU同时会很低,此时SQL客户端登陆
数据库查询操作正常;IIS连接数暴涨,网站无法操作数据库(如登录、基本查询)






分析前提:
该问题很常见,官方解释没有很明确的答案,都是说要么需要打补丁要么需要设置IIS的连接池.
这里分析前提是数据库已经打了最新的补丁、IIS连接数据库的字符串正常、用户名和密码正常.




分析过程:
如IIS的连接池设置1500M,IIS连接数据正常1500个,那么每个session分到的连接池大小平均1MB,
数据库网络数据包默认是4096;

如果这个时候有个请求需要返回20M数据,那么这个session从数据库返回的数据包大小就要超过session
获得的连接池大小,数据包是4096,比正常的请求(请求1M的回话)就需要多的数据包传递,这个session对应的
回话保持时间就需要比平均水平长些,正常情况下,这些独大的请求不会有太大问题.
如果同一时刻,IIS的请求数达到3000,每个SESSION分到的连接池大小平均值就会0.5MB,如果同样返回20MB数据,
那么SESSION的时间就会更长!
如果这个时候客户端请求返回100个30M数据,那么此时的请求,当数据库返回给IIS时,IIS会发现连接池没有足够的内存空间
分配这个SESSION,此时IIS的连接池大小不会随着客户端请求的增加而自动增加或IIS服务器没有更多的物理内存,此时IIS就会
因为没有足够的连接池空间分配来缓存对应的SESSION,但是后续的客户端回话还是不停的向IIS申请,这个时候问题就来啦!
IIS会释放掉(或IIS进程down掉或IIS自动重启)没法处理的SESSION,当数据库收到IIS端SESSION请求查询出数据准备返回给
IIS的SESSION时,去寻找对应请求的SPID,发现该请求的SPID已经不存在,但是数据库的TCP连接不会因为SPID的不存在立即抛弃这些
数据,此时网卡的流量会增加!同时数据库ERRORLOG里全是这种错误.

解决办法:
0.首先排除DB是否有死锁
1.最直接的办法就是增加IIS连接池大小
2.就是找出程序中大的会话请求,修改代码
3.限制IIS进程数上限,根据日常运行情况设置连接池大小(不推荐,迫不得已)
4.数据库端限制sql回话时常:SQL防火墙或数据库限制长连接(不推荐,迫不得已,没办法的办法)






    本文转自 Fanr_Zh 博客园博客,原文链接:http://www.cnblogs.com/Amaranthus/archive/2012/11/22/2781990.html,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
SQL Server 2012安装错误:Error while enabling Windows feature: NetFx3, Error Code: -2146498298
最近在安装SQL server 2012时,碰到错误:Error while enabling Windows feature: NetFx3, Error Code: -2146498298。
1079 0
怎么设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程
8338 0
MSSQL SERVER 2008 R2 无法连接到数据库,用户sa登录失败,错误:18456
原因:勾选了强制实施密码策略,但是设置的密码很简单依然可以,比如:123456 这是为什么?原来,这个功能要用到NetValidatePasswordPolicy() API这个函数。 (该功能只有在安全要求较高的时候才用) 解决方法:在运行里输入 gpedit.msc 打开 “本地策略”编辑器依次 展开“计算机配置” “Windows设置”-“安全设置”-“帐户策略”-“密码策略",“密码必须符合复杂性要求”应该是禁用状态, 改为已启用,之后再创建SQL Server用户即可。
1488 0
无法获取有关Windows NT 组\用户‘组\用户’的信息,错误代码0x5(Microsoft SQL Server,错误:15404)
原文:无法获取有关Windows NT 组\用户‘组\用户’的信息,错误代码0x5(Microsoft SQL Server,错误:15404) 配置了复制,在删除某个发布的时候,突然报此错误,无法删除此发布:   使用语句修改:  ALTER AUTHORIZATION ON DATABAS...
1573 0
mySQL 错误日志分析
https://github.com/twitter/mysql/commit/1912d02a461797977219e2578080b790020ad845   https://github.com/twitter/mysql/blob/master/sql/hostname.
910 0
21119
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《Nacos架构&原理》
立即下载
《看见新力量:二》电子书
立即下载
云上自动化运维(CloudOps)白皮书
立即下载