本篇文章為大家展示了怎樣解決線程太多導致javasocket連接池出現的問題,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
線程太多導致socket連接池爆滿,進程啟動不了
問題:
某部機上跟其它機器的連接有問題,ping可以通,telnet端口不通,可以其它機器可以連接到該機器上的進程。
java應用啟動不起來,產生以下錯誤。
java.net.SocketException: No buffer space available (maximum connections reached?): listen failed at java.net.PlainSocketImpl.socketListen(Native Method) at java.net.PlainSocketImpl.listen(Unknown Source) at java.net.ServerSocket.bind(Unknown Source) at java.net.ServerSocket.<init>(Unknown Source) at java.net.ServerSocket.<init>(Unknown Source)
查找問題:
打開任務管理器,發現某個進程產生了上千的大量的線程。
解決方法:
殺死該進程后,java應用可以成功啟動。
icmp協議是IP層的附屬協議,不會用TCP連接,所以正常。而telnet則是HTTP請求報文,會使用TCP連接。
上述內容就是怎樣解決線程太多導致javasocket連接池出現的問題,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。