您好,登錄后才能下訂單哦!
本篇文章為大家展示了java.net.SocketException: Broken pipe報錯可能的原因是什么,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
線上跑的java應用中的stderr.log中偶爾會有這樣的日志出現,出現問題時系統負載并不高,并且系統可以自己恢復正常。google了很久,也困擾俺多日,今天對這個問題做一個了斷。
產生這個問題的原因可能有以下幾個: 1、mysql的驅動的問題,我的驅動是mysql-connector-java-3.1.11-bin.jar 如果有興趣測試話,可以使用其他新版本的mysql驅動來試試吧。
2、防火墻和網絡上的問題,或者服務器發生了crash(有意或無意導致) 同學們可以檢查產生"java.net.SocketException: Broken pipe" 錯誤的時候服務器、網絡是否有異常?
3、應用系統的數據庫連接池導致,最大的可能就是程序上寫的不嚴謹 吼吼! 新手在開發過程中都難避免的失誤:忘記數據庫連接的關閉(純jdbc的操作中常見,不過這個還好找啦,壓力測試中如果看到數據庫連接數多或者干脆掛掉可以找出原因的); 另外就是提交事物時,在對數據操作中沒有做明確的commit或者rollback,如果忘記了提交commit,在你嘗試使用類似的resultset去操作或者做其他的操作時就有可以能出現這樣的問題,這樣的懸掛著連接一直要等到超時mysql將其kill掉。仔細檢查你應用的事物中是否都做了明確的提交操作呢?或者干錯使用Hibernate,試試C3P0、Proxool這樣的連接池吧。
上述內容就是java.net.SocketException: Broken pipe報錯可能的原因是什么,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。