我在 tomcat7-stderr.{date}.log
文件中发现以下警告。我的日志文件中充满了此日志。
Mon Jun 30 12:27:47 GMT+05:30 2014 WARN: Caught while disconnecting...
** BEGIN NESTED EXCEPTION **
java.net.SocketException
MESSAGE: Socket is not connected
STACKTRACE:
java.net.SocketException: Socket is not connected
at java.net.Socket.shutdownInput(Unknown Source)
at com.mysql.jdbc.MysqlIO.quit(MysqlIO.java:2261)
at com.mysql.jdbc.ConnectionImpl.realClose(ConnectionImpl.java:4697)
at com.mysql.jdbc.ConnectionImpl.close(ConnectionImpl.java:1630)
at com.mchange.v2.c3p0.impl.NewPooledConnection.close(NewPooledConnection.java:617)
at com.mchange.v2.c3p0.impl.NewPooledConnection.closeMaybeCheckedOut(NewPooledConnection.java:247)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.destroyResource(C3P0PooledConnectionPool.java:607)
at com.mchange.v2.resourcepool.BasicResourcePool$1DestroyResourceTask.run(BasicResourcePool.java:1012)
at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:636)
** END NESTED EXCEPTION **
我在网上搜索了很多,但没有成功。好像是关于c3p0连接池的。为什么会记录此异常/警告?怎么解决?
一些额外信息
- 我使用 c3p0 进行连接池。
- 我正在使用命名的 PIPE 连接到 MySQL 服务器。
这是我的 c3p0 配置。
MINPOOLSIZE=10
ACQUIREINCREMENT=1
MAXPOOLSIZE=500
INITIALPOOLSIZE=10
NUMBERHELPERTHREAD=100
MAXIDLETIME=10
MAXSTATEMENT=20
MAXSTATEMENTPERCONNECTION=5
IDLECONNECTIONTESTPERIOD=120
ACQUIRERETRYATTEMPT=10
ACQUIRERETRYDELAY=100
AUTOCOMMITONCLOSE=false
BREAKAFTERACQUIREFAILURE=false
TESTCONNECTIONONCHECKOUT=true
TESTCONNECTIONONCHECKIN=true
最佳答案
Mysql 论坛已判定此 bug 为 JVM bug。因此,ConnectJ 不会提供任何修复。请查看here了解更多详情。我相信,你这边没什么可做的。
关于java - tomcat7错误日志中的SocketException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24487033/