您的位置:首页 > 产品设计 > UI/UE

com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:

2010-05-02 21:40 806 查看
系统长时间无操作,再次访问出现如下异常

com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:

** BEGIN NESTED EXCEPTION **

java.net.SocketException

MESSAGE: Software caused connection abort: socket write error

STACKTRACE:

java.net.SocketException: Software caused connection abort: socket write error

at java.net.SocketOutputStream.socketWrite0(Native Method)

at java.net.SocketOutputStream.socketWrite(Unknown Source)

at java.net.SocketOutputStream.write(Unknown Source)

at java.io.BufferedOutputStream.flushBuffer(Unknown Source)

at java.io.BufferedOutputStream.flush(Unknown Source)

at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2744)

at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1612)

at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)

at com.mysql.jdbc.Connection.execSQL(Connection.java:3250)

at com.mysql.jdbc.Connection.setAutoCommit(Connection.java:5395)

at com.mchange.v2.c3p0.impl.NewProxyConnection.setAutoCommit(NewProxyConnection.java:881)

at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:91)

at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1353)

at org.hibernate.ejb.TransactionImpl.begin(TransactionImpl.java:38)

原因如下:

mysql配置中的wait_timeout值一定要大于等于连接池种的idel_timeout值。否则mysql会在wait_timeout的时间
后关闭连接,然而连接池还认为该连接可用,这样就会产生SocketException。

所以wait_timeout>=idel_timeout,即可解决问题!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐