2011-01-10 54 views
7

我使用Jersey 1.4,ApacheHttpClient和Apache MultiThreadedHttpConnectionManager類來管理連接。對於HttpConnectionManager,我將staleCheckingEnabled設置爲true,將maxConnectionsPerHost設置爲1000,將maxTotalConnections設置爲1000.其他設置均爲默認設置。我們在Tomcat中運行,並使用Jersey客戶端連接到多個外部主機。來自Jersey Client的CLOSE_WAIT中的套接字

我注意到,經過一段時間後,我將開始看到與Tomcat進程關聯的CLOSE_WAIT狀態的套接字。使用tcpdump進行一些監控顯示,外部主機似乎在一段時間後關閉了連接,但在我們的結尾沒有關閉。通常在套接字讀取隊列中有一些數據,通常是24個字節。連接使用https和數據似乎被加密,所以我不知道它是什麼。

我已檢查以確保已創建的ClientRequest對象已關閉。 CLOSE_WAIT中的套接字看起來似乎已經被回收,至少在這個時候我們沒有用完任何資源。我不確定外部服務器上發生了什麼。

我的問題是,這是正常的,我應該擔心嗎?

謝謝,

約翰

+0

我可以看到一些代碼嗎?我剛剛聽說過這個,並希望看到你如何配置MultiThreadedHttpConnectionManager到澤西... – markthegrea 2013-10-29 16:00:45

回答

1

這很可能是一個設備的防火牆或遠程服務器超時TCP會話如。您可以使用分析Wireshark的HTTPS的數據包捕獲他們的SSL頁面上描述:

http://wiki.wireshark.org/SSL

的staleCheckingEnabled標誌,只有當你去實際使用的連接,所以你沒有使用網絡資源問題的檢查(TCP會議),當他們不需要時。

相關問題