hibernate重连

每天早上上班,发现公司的测试服务器都会报如下错误,百思不得骑姐。

[00:31:55|ERROR|(org.hibernate.transaction.JDBCTransaction)]=[JDBC begin failed]

com.mysql.jdbc.CommunicationsException: Communications link failure due to under
lying 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(SocketOutputStream.java:92)
at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65
)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2637)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1554)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3118)
at com.mysql.jdbc.Connection.setAutoCommit(Connection.java:5215)
at org.apache.commons.dbcp.DelegatingConnection.setAutoCommit(Delegating
Connection.java:331)
at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.
setAutoCommit(PoolingDataSource.java:317)
at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:
91)
at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1354
)
at com.concerners.dao.ConcernersDAOImp.getDConcernerCount(ConcernersDAOI
mp.java:58)
at com.concerners.service.imp.ConcernersServiceImp.getDConcernerCount(Co
ncernersServiceImp.java:53)
at com.mobile.serverceInf.imp.MobileServletInterface.doGet(MobileServlet
Interface.java:1312)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
a:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:861)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
ss(Http11Protocol.java:620)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:48
9)
at java.lang.Thread.run(Thread.java:662)

** END NESTED EXCEPTION **

Last packet sent to the server was 1 ms ago.
at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2652)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1554)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3118)
at com.mysql.jdbc.Connection.setAutoCommit(Connection.java:5215)
at org.apache.commons.dbcp.DelegatingConnection.setAutoCommit(Delegating
Connection.java:331)
at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.
setAutoCommit(PoolingDataSource.java:317)
at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:
91)
at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1354
)
at com.concerners.dao.ConcernersDAOImp.getDConcernerCount(ConcernersDAOI
mp.java:58)
at com.concerners.service.imp.ConcernersServiceImp.getDConcernerCount(Co
ncernersServiceImp.java:53)
at com.mobile.serverceInf.imp.MobileServletInterface.doGet(MobileServlet
Interface.java:1312)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
a:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:861)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
ss(Http11Protocol.java:620)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:48
9)
at java.lang.Thread.run(Thread.java:662)

后来修改了配置文件解决了此问题。

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>

其实我只加

<property name="validationQuery" value="SELECT 1"/>     
   <property name="testOnBorrow" value="true"/>

就能实现自动重连,测试为mysql 。

时间: 2024-10-06 04:50:28

hibernate重连的相关文章

Hibernate中的事务隔离问题(脏读、不可重复读、幻读)

Hibernate中的事务隔离问题(脏读.不可重复读.幻读) 1.事务的特性 事务的四个特性: 1)原子性:事务是进行数据库操作的最小单位,所以组成事务的各种操作是不可分割的 2)一致性:组成事务的各种操作,要么全部成功,要么全部失败.其中有一个失败,事务无法完成 3)隔离性:在并发中,每个事务都是独立的 4)持久性:这是结果,表示在事务提交之后,数据将持久的保存到数据库 2.事务的隔离问题 事务的三个隔离问题: 1)脏读:一个事务读到了另一个事务还没提交的数据 如:A事务正在读一个数据a,但是

hibernate连接mysql自动重连

版权声明:本文为博主原创文章,未经博主允许不得转载.

Hibernate学习随笔

一.Hibernate的基本使用 首先需要配置相应的配置文件 Hibernate基本使用步骤 1.创建org.hibernate.cfg.Configuration对象 2.调用configure方法将配置文件放入其中 3.调用buildSessionFactory()方法创建SessionFactory对象(该方法需要加载配置文件.创建表等等,及其耗费资源,所以一般一个项目只需要一个就足够,可以利用工具类和静态代码块使该项目中共用一个SessionFactory对象) 4.利用SessionF

[原创]java WEB学习笔记93:Hibernate学习之路---Hibernate 缓存介绍,缓存级别,使用二级缓存的情况,二级缓存的架构集合缓存,二级缓存的并发策略,实现步骤,集合缓存,查询缓存,时间戳缓存

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

关于hibernate中提示can not create table ******

最近这两天,一直在搞hibernate,被 其中一个问题困扰了好久.在网上找了好久,一直都没有找到可行的方法,把jdk,jre,tomcat,装了拆,拆了装,可就是搞不好.实在是没有办法,又重新建了一个项目来测试,,从一点一滴开始试.所有的代码全部都手写,,,,可是问题依旧还在. 之所以一直没有找到解决办法,其实是自己的思维一直局限在一处,,,一直在想着hibernate只要把配置文件配置好,它就可以自己在数据库创建表结构,自己增删改查,相当的方便,可是自己 当时成功了,为什么这次却一而再再而三

hibernate从零开始到各种映射

ORM(对象/关系数据库映射) 对象关系映射(Object Relational Mapping,简称ORM)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术.它完成了面向对象的编程语言到关系型数据库的映射㈣.ORM框架可以看成应用程序和数据库之间的桥梁,通过它,我们可以以面向对象的方式建模.操作,易用.易理解,同时也可以利用关系型数据库系统对数据库访问操作的一些优势.以面向对象的方式操作持久化对象,而ORM框架负责转换成对应的SQL(结构化查询语言)操作. Hibernate概述

[转] Hibernate一级缓存、二级缓存

缓存是介于应用程序和物理数据源之间,其作用是为了降低应用程序对物理数据源访问的频次,从而提高了应用的运行性能.缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据. 缓存的介质一般是内存,所以读写速度很快.但如果缓存中存放的数据量非常大时,也会用硬盘作为缓存介质.缓存的实现不仅仅要考虑存储的介质,还要考虑到管理缓存的并发访问和缓存数据的生命周期. hibernate的缓存包括Session的缓存和SessionFactory的缓

Hibernate知识点整理

一, Hibernate 介绍: Hibernate 只是一个将持久化类与数据库表相映射的工具,每个持久化类实例均对应于数据库表中的一个数据行而已.用户只需直接使用面向对象的方法操作此持久化类实例,即可完成对数据库表数据的插入.删除.修改.读取等操作. 当然实际的 Hibernate 框架非常复杂,用分层的概念划分的话,它相当于在 业务逻辑处理层 和 数据库底层JDBC驱动之间的一层,即通常说的持久化层,而用户通过 XML 配置文件将具体的持久化类与数据库表映射起来.Hibernate 的实际过

hibernate初涉

好久都不曾写写总结一些东西了,惰性真的是令人难以克制!虽然和许多北漂族一样,艰苦而又迷茫,但是我总能找到一些方向,一点期盼,因为你就我的目标.我会坚持下去,重拾青春的热血,既然人生如戏,那我不当猪脚.我要当导演! Action! 在eclipse的market中安装hibernate tools插件   测试是否安装成功 这里我们采用的hibernate Jar包是hibernate-release-4.2.4.Final版本的(lib中有required必备包) 其他jar包如junit和my