在向服務器發送請求時發生傳輸級錯誤。 (provider: TCP 提供程序, error: 0 -

  做爲總公司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="spacer.gifhttp://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="spacer.gifhttp://www.w3.org/2001/XMLSchema"><MQPath>.\private$\dsddataexport</MQPath><Enabled>true</Enabled><Model>UPDATE</Model><DBType>SQLSERVER</DBType><IP>spacer.gif10.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="spacer.gifhttp://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 - 遠程主機強迫關閉了一個現有的鏈接。)該服務線程已經中止! 配置信息爲:&lt;?xml version="1.0"?&gt;&lt;Rule xmlns:xsi="spacer.gifhttp://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="spacer.gifhttp://www.w3.org/2001/XMLSchema"&gt;&lt;MQPath&gt;.\private$\dsddataexport&lt;/MQPath&gt;&lt;Enabled&gt;true&lt;/Enabled&gt;&lt;Model&gt;UPDATE&lt;/Model&gt;&lt;DBType&gt;SQLSERVER&lt;/DBType&gt;&lt;IP&gt;spacer.gif10.74.230.75&lt;/IP&gt;&lt;UserName&gt;PDC_USER&lt;/UserName&gt;&lt;Password&gt;PDC_USER&lt;/Password&gt;&lt;DataBaseName&gt;XXXXX &lt;/DataBaseName&gt;&lt;/Rule&gt;
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!

相關文章
相關標籤/搜索