本文共 852 字,大约阅读时间需要 2 分钟。
第一次用c3p0,小白了。 现象: 不定期出现以下异常: org.springframework.dao.DataAccessResourceFailureException: could not execute query ... ... ... ** BEGIN NESTED EXCEPTION ** com.mysql.jdbc.CommunicationsException MESSAGE: Communications link failure due to underlying exception: ** BEGIN NESTED EXCEPTION ** java.net.SocketException MESSAGE: Connection reset by peer: socket write error STACKTRACE: java.net.SocketException: Connection reset by peer: socket write error ... ... 直接原因: 直接原因不明,但是可以通过其他方法再现。 再现方法: 正常启动mysql和tomcat下的应用。然后重启mysql,访问应用,上述异常再现。 根本原因: 目前使用的dbcp连接池在丢失数据库连接后无法重新连接。 解决: 使用c3p0连接池。 实际上配置文件中已经配置了c3p0,但是并没有启动,即使配置了c3p0的日志文件,里面却没有内容。 找了很久,tmd终于找到原因了,加上下面的内容才能启动。 <property name="connection.provider_class"> org.hibernate.connection.C3P0ConnectionProvider </property> 顺便记下c3p0的日志输出方法: log4j.logger.com.mchange.v2.resourcepool.BasicResourcePool=DEBUG,A5转载地址:http://jugmi.baihongyu.com/