Hibernate默认连接池使用问题
来源:互联网 发布:java语言绝对值 编辑:程序博客网 时间:2024/06/07 08:25
转载地址:http://blog.163.com/yf_198407/blog/static/513854112011102034713409/
hibernate默认连接池有一个问题,不会自动检测数据库连接是否断开,MYSQL数据库一段时间(大约8小 时)没有访问就会断开连接,连接池里的连接却还是存在,下次访问hibernate会继续使用这个连接,导致数据库连接异常。由于该问题需要在服务器长时 间运行时才会出现,所以在平时测试很难发现。
解决方法:
1.在连接参数中使用autoReconnect以后,第一次执行失败后会自动重新连接。
2.通过把服务器上Mysql的"wait_timeout"属性设置的高点。
3.不使用Hibernate内置的连接池,改用C3P0连接池,这个连接池会自动处理数据库连接被关闭的情 况。要使用C3P0很简单,先从Hibernate里把c3p0-0.8.3.jar复制到项目的lib目录中,再在 hibernate.properties里去掉hibernate.c3p0开头的那些属性的注释(使用缺省值或自己需要的数值),这样 Hibernate就会自动使用C3P0代替内置的连接池了。c3p0为open source的JDBC连接池,随hibernate一起发布。c3p0连接池的配置非常简单,只需要在hibernate.cfg.xml里增加:
<property name="c3p0.acquire_increment">1</property>
<property name="c3p0.idle_test_period">100</property> <!-- seconds -->
<property name="c3p0.max_size">5</property>
<property name="c3p0.max_statements">0</property>
<property name="c3p0.min_size">2</property>
<property name="c3p0.timeout">90</property> <!-- seconds -->
另外,还需要在CLASS_PATH里加上c3p0-x.x.x.jar文件(x.x.x为版本号),c3p0-x.x.x.jar文件随hibernate一起发布,你可以在其lib目录下找到该文件。
配置好之后,hibernate便会自动使用c3p0的连接池:C3P0ConnectionProvider
- Hibernate默认连接池使用问题
- Hibernate默认连接池 C3P0 proxool JNDI
- hibernate 默认连接池转c3p0
- hibernate使用连接池
- hibernate DBCP 连接池使用的几点问题
- hibernate使用tomcate连接池
- hibernate使用c3p0连接池
- Hibernate使用c3p0连接池
- Hibernate使用Tomcat连接池连接数据库
- 解决Mysql连接池被关闭 ,hibernate尝试连接不能连接的问题。 (默认mysql连接池可以访问的时间为8小时,如果超过8小时没有连接,mysql会自动关闭连接池。
- 关于hibernate的连接池问题
- hibernate 连接问题
- 使用4.3.11版本的hibernate结合druid连接池遇到的问题
- 使用Hibernate框架连接数据库时出现乱码问题
- 使用hibernate连接mysql遇到的编码问题
- 关于hibernate配置c3p0连接池连接mysql问题
- hibernate使用tomcat5.5.9连接池
- 配置Hibernate使用Proxool连接池
- Eclipse cdt安装与使用 (C/C++插件安装)
- HDU4697 Convex hull
- 查找首个非重复字符
- HDU 4704 Sum 费马小定理+快速幂
- Spring中使用getSession()与通过HibernateTemplate进行数据操作的差别
- Hibernate默认连接池使用问题
- HP DL360 G7通过iLO部署系统
- 如何提高网站访问速度
- ubuntu常用配置
- 如何在没有管理员权限的win7上设置环境变量
- 字符串转换器2013.08.23
- Win7下在IIS7中配置PHP的FastCGI支持_笔记
- PHP获取时间日期
- WampServer2.0i 下配置多用户PhpAdmin