代碼訪問 SQL Server數據庫時的錯誤: 由於系統緩衝區空間不足或隊列已滿,不能執行套接字上的操作

     有一臺服務器,運行sqlserver數據庫,有兩個網站模塊的數據庫在上面,負載壓力不大,平時沒出現過問題。後來另外一個L部門放了一個網站上去,數據庫也在同一臺機器上,突然有天L部門反應網站訪問不了了,FTP也連不上了。但數據庫能夠遠程連接上。

      遠程到服務器上,FTP服務重啓,無效;網站重啓,無效,查看系統日誌,發現有如下錯誤:

 xxx在與 SQL Server 建立連接時出現與網絡相關的或特定於實例的錯誤。未找到或無法訪問服務器。請驗證實例名稱是否正確並且 SQL Server 已配置爲允許遠程連接。 (provider: TCP Provider, error: 0 - 由於系統緩衝區空間不足或隊列已滿,不能執行套接字上的操作。)。

沒碰到過這種情況,爲了恢復服務,索性把服務器重啓了,一切都好了。過了兩天,又有這種情況出現。google一下,知道大概原因是端口用完了,猜測是不是L部門網站代碼有問題,數據庫連接泄露沒關閉完?沒有使用連接池?看了代碼,都沒問題。只好查看系統端口的使用情況:

1 命令行下輸入 netstat -ano >>D://net.txt ,列出目前端口使用情況,如下大概有三千多條 ,注意紅色端口的使用

  TCP    222.122.222.222:2756    52.122.120.88:80       CLOSE_WAIT      2144
  TCP    222.122.222.222:2766    52.122.120.88:80       CLOSE_WAIT      2144
  TCP    222.122.222.222:2776    52.122.120.88:80       CLOSE_WAIT      2144
  TCP    222.122.222.222:2786   52.122.120.88:80       CLOSE_WAIT      2144
  TCP    222.122.222.222:2796    52.122.120.88:80       CLOSE_WAIT      2144
  TCP    222.122.222.222:2806    52.122.120.88:80       CLOSE_WAIT      2144
  TCP    222.122.222.222:2816    52.122.120.88:80       CLOSE_WAIT      2144
  TCP    222.122.222.222:2828    52.122.120.88:80       CLOSE_WAIT      2144
  TCP    222.122.222.222:2838    52.122.120.88:80       CLOSE_WAIT      2144
  TCP    222.122.222.222:2851    52.122.120.88:80       CLOSE_WAIT      2144
  TCP    222.122.222.222:2860    52.122.120.88:80       CLOSE_WAIT      2144
  TCP    222.122.222.222:2870    52.122.120.88:80       CLOSE_WAIT      2144
 .......

發現本地在訪問一個外網地址的80端口,對應PID是2144

2.命令行下輸入 tasklist|findstr "2144"  查看 PID對應的進程 

w3wp.exe    2144  services

看起來是一個網站,這時突然想起來,不久前發佈了一個webservice,主要功能是用httpwebrequest分析提取某個網站的部分內容,返回給調用方

3.命令行下輸入 C:\Windows\System32\inetsrv>appcmd list wp

WP "5648" (applicationPool:testmozhou)
WP "5664" (applicationPool:tqh.xxx.cn)
WP "1544" (applicationPool:www.lxxxg.com)
WP "2144" (applicationPool:data.tt.com)

確認問題來源,webservice多線程下,每個httpwebrequest沒有及時釋放問題所致

參考文章:http://blog.zhaojie.me/2010/08/lack-of-dynamic-ports-when-frequently-open-and-close-socket.html

發佈了62 篇原創文章 · 獲贊 6 · 訪問量 49萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章