读书人

Hibernate易忘掉配置release_mode

发布时间: 2012-07-15 20:20:05 作者: rapoo

Hibernate易忘记配置release_mode

一个项目,启动tomcat服务器后,页面刷新第三次就出现等待服务器状态,并且一直等待下去(不报错)


?????? 使用Hibernate时,大家一般都记住了配置基本的那些选项,比如方言,缓存等,但是有一项配置很容易忘掉,这就是连接释放模式:hibernate.connection.release_mode

?????? 可有三个选择:after_statement/after_transaction/on_close,javadoc中可以看出它们的用处,注意的一点是,如果不配置,默认是on_close,那么如果有显示的去调用session.close或其它关闭连接的方法的话,这个连接时不会被关闭的!在用到连接池的候,就更会出现问题了,池中的连接会一直存在着而不会被关闭和回收!


  从log4j打印出来的日志也可以看出,如果是on_close模式,从:


????? transaction completed on session with on_close connection release mode; be sure to close the session to release JDBC resources!


  具体的一些细节可以看看hibernate的源代码,涉及到的两个行为:


  org.hibernate.ConnectionReleaseMode
  org.hibernate.jdbc.ConnectionManager


  最后,配置的代码为:
  <prop key="hibernate.connection.release_mode">after_transaction</prop>


转自:http://lin5061.iteye.com/blog/88289

读书人网 >行业软件

热点推荐