客户端无法重新使用 SPID 为 63 的会话,该会话已被重置用于连接
客户端无法重新使用 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防火墙或数据库限制长连接(不推荐,迫不得已,没办法的办法)
文章转自:http://tech.ddvip.com/2013-06/1371752991197617.html
客户端无法重新使用 SPID 为 63 的会话,该会话已被重置用于连接的更多相关文章
- WCF揭秘学习笔记(4):可信赖会话、会话管理、队列、事务
可信赖会话 WCF的可信赖会话在绑定层保证消息只会被传输一次,并且保证消息间的顺序.当使用TCP通信时,协议本身保证了可靠性,但它只在两点间的网络 包这个层面提供了这样的保证.WCF的可信赖会话特性保 ...
- 解决secureCRT 数据库里没有找到防火墙 '无' 此会话降尝试不通过防火墙进行连接。
解决secureCRT 数据库里没有找到防火墙 '无' 此会话降尝试不通过防火墙进行连接.的方法 中文版的CRT由于汉化的问题(把null翻译成无了),导致每次打开都会有个防火墙的错误提示:数据库里没 ...
- Fidder详解-工具简介(保存会话、decode解码、Repaly、自定义会话框、隐藏会话、会话排序)
前言 本文会对Fidder这款工具的一些重要功能,进行详细讲解,带大家进入Fidder的世界,本文会让你明白,Fidder不仅是一个抓包分析工具,也是一个请求发送工具,更加可以当作为Mock Serv ...
- SET SESSION AUTHORIZATION - 为当前会话设置会话用户标识符和当前用户标识符
SYNOPSIS SET [ SESSION | LOCAL ] SESSION AUTHORIZATION username SET [ SESSION | LOCAL ] SESSION AUTH ...
- loadrunner使用socket协议来实现客户端对服务器产生压力实例。(通过发送心跳包,达到连接多个客户端的目的)
#include "lrs.h" vuser_init(){ char *ip; int handler; //编写获取LR分配的Vuser IP函数,将IP保存在ip变量中. i ...
- PostgreSQL drop database 显示会话没有关闭 [已解决]
错误重现 有时候需要删除某个数据库时,会报如下错误,显示有一个连接正在使用数据库,无法删除 ERROR: database "pilot" is being accessed by ...
- sqlserver DBA面试题
1.sqlserver 2008 R2 on windows server 2008 R2群集中,有节点A.B,现在需要停机新添加一个节点C进来替换现有节点B,请列出必要的步骤. 2.sqlserve ...
- 【转】为什么 MQTT 是最适合物联网的网络协议
初识 MQTT 为什么 MQTT 是最适合物联网的网络协议 Michael Yuan2017 年 6 月 14 日发布 WeiboGoogle+用电子邮件发送本页面 0 物联网 (IoT) 设备必须连 ...
- 初识 MQTT——IBM
为什么 MQTT 是最适合物联网的网络协议 官方网址: http://mqtt.org/ Michael Yuan2017 年 6 月 14 日发布 WeiboGoogle+用电子邮件发送本页面 0 ...
随机推荐
- cxGrid 颜色设置
一.cxGrid 根据列值变色(样式) 在使用cxGrid的过程中,某一个单元格经常需要根据其他单元格的值来做相应的变色,如: 在cxGridDBTableView中,选定要变样式(如背景色.字体属性 ...
- android 环境变量
1.新建一个环境变量和系统变量名称为ANDROID_HOME,变量值为当前安装SDK的目录 2.把%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools添 ...
- mui init 出现无法引入子页面问题
1. 检查项目中是否重复出现了 mui.init() 函数; mui.init({ subpages: [{ styles: { // top: "44px", top: &quo ...
- img标签在div里上下居中
方法一:图片尺寸未知,IE8-不支持 CSS部分: <style> .content{ width:500px; height:500px; border:1px solid black; ...
- linux 2.6.32文件系统 fd与file*之间的关系
给定如下一定情况: crash> files PID: TASK: ffff8817facd2100 CPU: COMMAND: "slabtop" ROOT: / CWD: ...
- mysql 授权命令
MySQL 数据库赋予用户权限操作表 MySQL清空数据库的操作:truncate table tablename; MySQL 赋予用户权限命令的简单格式可概括为:grant 权限 on 数据库 ...
- GIS案例学习笔记-多边形内部缓冲区地理模型
GIS案例学习笔记-多边形内部缓冲区地理模型 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 目的:对于多边形,建立内部缓冲区. 问题:ArcGIS缓冲工具不支持内部 ...
- spark dataframe操作集锦(提取前几行,合并,入库等)
https://blog.csdn.net/sparkexpert/article/details/51042970 spark dataframe派生于RDD类,但是提供了非常强大的数据操作功能.当 ...
- 历届试题 对局匹配-(dp)
问题描述 小明喜欢在一个围棋网站上找别人在线对弈.这个网站上所有注册用户都有一个积分,代表他的围棋水平. 小明发现网站的自动对局系统在匹配对手时,只会将积分差恰好是K的两名用户匹配在一起.如果两人分差 ...
- 用工厂模式和策略模式优化过多的if-else
多个if-else代码: @RunWith(SpringRunner.class) @SpringBootTest public class EducationalBackgroundTest { p ...