java.net.SocketException: 断开的管道 (Write failed) 错误,数据库隔一段时间就断开的问题...
生活随笔
收集整理的這篇文章主要介紹了
java.net.SocketException: 断开的管道 (Write failed) 错误,数据库隔一段时间就断开的问题...
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一個(gè)項(xiàng)目使用了druid作為數(shù)據(jù)源,每過幾十分鐘刷新頁面就會出現(xiàn)?java.net.SocketException: 斷開的管道 (Write failed) 錯(cuò)誤。
后來給連接池配置部分加上了?
<property name="validationQuery" value="select 1"/><property name="testOnBorrow" value="true"/>問題得到了解決,應(yīng)該是長時(shí)間沒有刷新頁面導(dǎo)致數(shù)據(jù)庫連接斷開了,再次訪問的時(shí)候使用了斷開的數(shù)據(jù)庫連接,所以出現(xiàn)報(bào)錯(cuò),加入了
testOnBorrow 屬性對數(shù)據(jù)庫連接的有效性進(jìn)行了驗(yàn)證,集群某實(shí)例宕掉時(shí),如果連接剛好不處于通信階段,tcp連接正處于CLOSE_WAIT狀態(tài)或已關(guān)閉,當(dāng)應(yīng)用通過連接池getConnection時(shí),在borrow時(shí)會檢測連接,由于連接已關(guān)閉,于是報(bào)了如下報(bào)錯(cuò),并重新建立新連接,此時(shí)的新連接到集群的其他實(shí)例上了。后面能正常通信。 com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failureThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) Caused by: java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:3143)at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:597)... 21 more
?
轉(zhuǎn)載于:https://www.cnblogs.com/wolf-zt/p/6522219.html
總結(jié)
以上是生活随笔為你收集整理的java.net.SocketException: 断开的管道 (Write failed) 错误,数据库隔一段时间就断开的问题...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《Linux调优工具oprofile的演
- 下一篇: mysql重复数据查询