做为总公司IT部门,天然承担着各个分公司的运维技术支持工做,因为公司的性质,分公司常常负责维护这各家官老爷的服务器,同时这些服务器也做为和官老爷数据之间的链接。。。。。。此处省略一万字。sql
今天分公司就有个负责人发过来一段服务器的报错信息,大体以下“数据库
FireF|y゛ 2016/5/23 15:36:19
日志名称: Application
来源: XXXXX windows
日期: 2016/5/23 11:47:30
事件 ID: 0
任务类别: 无
级别: 错误
关键字: 经典
用户: 暂缺
计算机: WIN-H48V8MB5TAA
说明:
Timestamp: 2016/5/23 3:47:30
Message: 从MQ:.\private$\dsddataexport 中获取报文写入 SQLSERVER 数据库:XXXXX 时出现异常 ,具体的异常信息为:在向服务器发送请求时发生传输级错误。 (provider: TCP 提供程序, error: 0 - 远程主机强迫关闭了一个现有的链接。)该服务线程已经中止! 配置信息为:<?xml version="1.0"?><Rule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="
http://www.w3.org/2001/XMLSchema"><MQPath>.\private$\dsddataexport</MQPath><Enabled>true</Enabled><Model>UPDATE</Model><DBType>SQLSERVER</DBType><IP>
10.XX.XX.X </IP><UserName>PDC_USER</UserName><Password>PDC_USER</Password><DataBaseName>XXXXX </DataBaseName></Rule>
Category: General
Priority: 5
EventId: 0
Severity: Error
Title:
Machine: WIN-H48V
Application Domain: XXXXX .exe
Process Id: 21216
Process Name: E:\XXXXX \DSD\DSD\XXXXX \XXXXX .exe
Win32 Thread Id: 20052
Thread Name:
Extended Properties:
事件 Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="XXXXX " />
<EventID Qualifiers="0">0</EventID>
<Level>2</Level>
<Task>0</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2016-05-23T03:47:30.000Z" />
<EventRecordID>99</EventRecordID>
<Channel>Application</Channel>
<Computer>WIN-H48V</Computer>
<Security />
</System>
<EventData>
<Data>Timestamp: 2016/5/23 3:47:30
Message: 从MQ:.\private$\dsddataexport 中获取报文写入 SQLSERVER 数据库:XXXXX 时出现异常 ,具体的异常信息为:在向服务器发送请求时发生传输级错误。 (provider: TCP 提供程序, error: 0 - 远程主机强迫关闭了一个现有的链接。)该服务线程已经中止! 配置信息为:<?xml version="1.0"?><Rule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="
http://www.w3.org/2001/XMLSchema"><MQPath>.\private$\dsddataexport</MQPath><Enabled>true</Enabled><Model>UPDATE</Model><DBType>SQLSERVER</DBType><IP>
10.74.230.75</IP><UserName>PDC_USER</UserName><Password>PDC_USER</Password><DataBaseName>XXXXX </DataBaseName></Rule>
Category: General
Priority: 5
EventId: 0
Severity: Error
Title:
Machine: WIN-H48V
Application Domain: XXXXX .exe
Process Id: 21216
Process Name: E:\XXXXX \DSD\DSD\XXXXX \XXXXX .exe
Win32 Thread Id: 20052
Thread Name:
Extended Properties: </Data>
</EventData>
</Event>
服务器
”
网络
简单看了下报错信息,本觉得是传输的问题,可是检查了网络检查了消息队列,并未发现任何异常,以及任何错误信息,看来和传输应该没有关系,运维
再仔细看了下服务,该服务并非windows自带服务,而是公司为经过消息队列传输的数据写入到sql2005数据库里面,同时也检查了sql的相关信息,也未发现错误,仔细查看报错信息发现:“远程主机强迫关闭了一个现有的链接。)该服务线程已经中止! ”ide
这句话是重点所在,咱们也能够理解为,当在创建链接时,发现创建链接超过了,没法创建链接,那么应用程式主动关闭了一个链接,url
因为该服务由.net编写而成,仔细查阅了下.net数据链接池的概念,发现.net默认最大的链接数为100,且默认为ture状态,那么若是在编写代码的时候没有定义该链接池,长时间使用后链接池没有释放,就会产生该问题,spa
须要在代码中加入.net
pooling=false
or Max Pool Size的值,
接下来的事情就是让分公司人员去找对应的开发人员,修改其代码进行定义,OK!