Hibernate连接数据库超时设置autoReconnect=true(Mysql)

来源:互联网 发布:网络诈骗的表现形式有 编辑:程序博客网 时间:2024/05/18 12:30

错误信息

ERROR org.hibernate.transaction.JDBCTransaction - JDBC begin failed
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was36313 milliseconds ago.The last packet sent successfully to the server was 36313 milliseconds ago, which  is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts,
or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.

原因:如果连接闲置8小时 (8小时内没有进行数据库操作), mysql就会自动断开连接, 要重启tomcat;

          或配置hibernate自动重连'autoReconnect=true' 

解决方法:下面是我的配置(mysql数据库,spring+hiberante)

applicationContext.xml

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
  destroy-method="close">
  <property name="driverClassName" value="com.mysql.jdbc.Driver" />
  <property name="url" value="jdbc:mysql://localhost/db?autoReconnect=true&amp;autoReconnectForPools=true"/>
  <property name="username" value="root"/>
  <property name="password" value="123"/>
  <property name="validationQuery" value="SELECT 1"/>     
   <property name="testOnBorrow" value="true"/>
         
 </bean>


 

原创粉丝点击