Windows

TCP:地址已在使用異常 - 客戶端埠的可能原因?無埠耗盡

  • April 22, 2010

愚蠢的問題。我從連接到伺服器的客戶端獲取那些。可悲的是,設置很複雜,調試也很複雜——而且我們沒有選擇餘地。

環境:客戶端/伺服器系統,都在同一台機器上執行。客戶端實際上是在特定時間進行一些數據庫操作的服務。 連接來自 C#,通過 OleDb 到 EasySoft JDBC 驅動程序到自定義編寫的 JDBC 伺服器,然後在 C++ 中託管邏輯。是的,compelx - 但是第三方供應商決定通過 JDBC 介面公開其伺服器的擴展機制。這裡不能做很多事情;)

症狀:在(ir)定期的時間間隔,我們從 JDBC 驅動程序中得到一個“地址已在使用中:連接”。它們似乎來自我們執行的一項特定服務。

現在,我確實閱讀了有關埠耗盡的所有內容。這就是為什麼我們現在執行一個小工具,它每分鐘計算埠及其狀態。上次發生這種情況時,我們使用了驚人的 370 個埠,錯誤發生後計數上升到大約 900 個。我們已經修補了系統資料庫(它是一台 Windows 機器)以允許超過 5000 個客戶端埠標準,但即便如此,我們離這個限制還很遠。

這就是我在這裡問的原因。Ayneone 知道 ELSE 會導致這種情況嗎?

它是一台 Windows 2003 Server 機器,64 位。我能看到的唯一可能導致它(但此功能被禁用)的是安裝在伺服器上的 Symantec Endpoint Protection - 並且能夠充當防火牆,它可能會攔截網路流量。我不想通過過早地指向賽門鐵克來打開一罐蠕蟲(如果指向賽門鐵克可以被視為這樣的話)。那麼,有人知道還有什麼可能是原因嗎?

謝謝

突出三點:

到自定義編寫的 JDBC 伺服器

賽門鐵克端點保護

客戶端/伺服器系統,都在同一台機器上執行

**問題一:**伺服器如何選擇埠?客戶端和伺服器(在同一台機器上)是否可以不定期同步並選擇相同的埠?

**問題 2:**您是否嘗試過關閉 SEP?如果不關閉它,看看會發生什麼。您需要消除它干擾的可能性。

問題 3:netstat出現錯誤時說了什麼?

引用自:https://serverfault.com/questions/120254