Caused by: java.net.BindException: Address already in use: connect解決辦法

來源:互聯網
上載者:User

先說一下My Code的具體情況吧。My Code是每隔一小時就採集中國2400家企業的股價,然後把採集的結果一條一條地插入到資料庫中,每採集到一家公司就會直接插入表中,所以會產生很多串連,代碼是運行在TOMCAT下的,在本機測試時,每次插入表中四五百條記錄後就報錯Caused by: java.net.BindException: Address already in use: connect,如標題所示錯誤碼。當然了,My Code裡沒有特別地弄一個串連池,但我是把擷取資料庫連接對象寫在一個方法內的,如方法內這樣寫
conntection conn = null;
.
.
conn = DBUtil.getConntection();
所以,每次插入表時會把原建立的資料庫連接對象引用置空,然後建立一個資料庫連接對象,所以,我想在我這功能中應該是滿足需求了,但是沒想到的時才處理幾百條就報錯了,然後停了幾分鐘又自動跑了。

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------


由於平時串連MYSQL做資料插入時會出現Caused by: java.net.BindException: Address already in use: connect,經查很多時候並不是因為有其它程式佔用連接埠,而是因程式在短時間內建立串連資料過多,短時間內new socket操作過多而socket.close()操作並不能立即釋放綁定的連接埠而是把連接埠設定為TIME_WAIT狀態過段時間(預設240s)才釋放(用netstat -na可以看到)最後系統資源耗盡 (windows上是耗盡了pool of ephemeral ports 這段區間在1024-5000之間)。 所以,我們可以通過修改time-wait來增加串連數並可以解決問題。
如何修改TIME_WAIT逾時時間以增加串連數。本設定定義了關閉串連前保持TIME_WAIT狀態的時間長度。預設值為240,在一個繁忙的伺服器上會將最大串連數限制在大約200/秒。減少該值可以增加最大串連數的限制。


具體操作步驟如下:




開啟登錄編輯程式,找到如下表所示的項。
 
按照下表設定,建立或者修改已有的一個名稱為“TcpTimedWaitDelay”的DWORD值。
退出登錄編輯程式,重新啟動或者登出Windows以使改動生效。
設定:
項(系統): [HKEY_LOCAL_MACHINE/System/CurrectControlSet/Services/Tcpip/Parameters]
右邊空白處右鍵建立項名稱: TcpTimedWaitDelay
類型: REG_DWORD (DWORD 值)


值: 30-300 秒 (十進位) 


-----------------------------------------------------------------------------------------------------------------------------------------------------


經過本人按以上方法修改了註冊表,在本機上重新跑代碼,沒有再報錯了

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.