用hibernate之后,网站运行一段时间之后,或者并发量大时,网站很慢的解决办法

本文详细介绍了Hibernate配置项hibernate.connection.release_mode的作用及其三个选项:after_statement、after_transaction 和 on_close 的区别。强调了正确配置该选项的重要性,特别是在使用连接池的情况下。
摘要由CSDN通过智能技术生成

使用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.javaeye.com/blog/88289

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值