org.apache.jasper.JasperException: javax.servlet.ServletException: org.hibernate.exception.JDBCConnectionException: could not execute queryLast packet sent to the server was 1 ms ago.STACKTRACE:com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: ** BEGIN NESTED EXCEPTION ** java.net.SocketException
MESSAGE: Broken pipeSTACKTRACE:java.net.SocketException: Broken pipe在项目运行一段时间后出现以上错误,到底是怎么回事?当我重启tomcat时,访问正常~

解决方案 »

  1.   

    这个问题很明显你的mysql ,把你的数据库联接给断掉了
    这个问题很明显,所有的数据库都会有连接超时的判断,一段时间没用就会把连接断掉,
    解决办法:用可以自动重连的方式来连接数据库;还有用可以发心跳包的方式来连接数据库。jndi也可以做 
      

  2.   

    Mysql服务器默认的“wait_timeout”是8小时,也就是说一个connection空闲超过8个小时,Mysql将自动断开该connection。看你连接池是哪用了?解决的方法有3种:增加wait_timeout的时间。 
    减少Connection pools中connection的lifetime。 
    测试Connection pools中connection的有效性。
      

  3.   

    我也了解过一些,但是主要是因为数据库的连接池的问题吧,谁可以给一个c3p0连接池的配置。我陪着的出错了,好像是没有起作用!还有就是如果有proxool 配置 。如果有就更好了!
      

  4.   

    看我的 配置:[原创]Hibernate 使用proxool连接池连接MySQL数据库http://www.javawind.net/5b016f381b3555ad011b37755fc3003d.jhtml