本站首页    管理页面    写新日志    退出


«September 2025»
123456
78910111213
14151617181920
21222324252627
282930


公告

戒除浮躁,读好书,交益友


我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:邢红瑞的blog
日志总数:523
评论数量:1142
留言数量:0
访问次数:9706266
建立时间:2004年12月20日




[j2ee]spring和hibernate的不释放连接的问题
原创空间,  软件技术

邢红瑞 发表于 2005/3/14 18:48:25

spring+hibernate使用c3p0的连接池,发现这样的一个问题,只要是hibernate访问的数据库,连接不会释放。很快连接被用光,pool is blocked。配置文件 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">    <property name="driverClass">      <value>${db.driver}</value>    </property>    <property name="jdbcUrl">      <value>${db.url}</value>    </property>    <property name="user">      <value>${db.username}</value>    </property>    <property name="password">      <value>${db.password}</value>    </property>    <property name="autoCommitOnClose">      <value>true</value>    </property>    <property name="checkoutTimeout">      <value>5000</value>    </property>  </bean>     <bean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean" destroy-method="close">            <property name="dataSource">                <ref bean="dataSource"/>            </property>            <property name="mappingResources">                <list>                    <value>Jobs.hbm.xml</value>                </list>            </property>            <property name="hibernateProperties">              <props>                 <prop key="hibernate.dialect">${hibernate.dialect}</prop>                 <prop key="hibernate.show_sql">true</prop>                 <prop key="hibernate.autocommit">true</prop>                 <prop key="hibernate.hbm2ddl.auto">${db.createupdate}</prop>                 <prop key="hibernate.cache.use_second_level_cache">true</prop>                 <prop key="hibernate.cache.use_query_cache">true</prop>                  <prop key="hibernate.c3p0.min_size">${db.pool.minsize}</prop>                 <prop key="hibernate.c3p0.max_size">${db.pool.maxsize}</prop>                 <prop key="hibernate.c3p0.timeout">${db.pool.timeout}</prop>                 <prop key="hibernate.c3p0.max_statements">${db.pool.maxstatements}</prop>                 <prop key="hibernate.connection.release_mode">auto</prop>                 <prop key="hibernate.transaction.auto_close_session">true</prop>             </props>            </property>        </bean>    <bean id="jobsDao" class="com.jicheng.dao.jdbc.FindJobsDaoJdbc">            <property name="sessionFactory">                <ref bean="sessionFactory"/>            </property>    </bean>    <bean id="findJobsManager"  class="com.jicheng.service.impl.FindJobsManagerImpl">         <property name="findJobsDao">             <ref bean="jobsDao"/>         </property>    </bean>代码public User getUserById(final int id) {    return (User) getHibernateTemplate().execute(      new HibernateCallback()      {        public Object doInHibernate(Session session) throws HibernateException        {          Connection conn = getSession().connection();          Statement stm = conn.createStatement();          ResultSet rs = stm.executeQuery(QueryStr);          while (rs.next()) {            // some processing          }          rs.close();          stm.close();          // it does not release even if conn.close() is called           return User;           } catch (Throwable t) {            throw new RuntimeException(t);          }        } // doInHibernate    });  } 看了看日志,连接确实没有被释放  ,如何查看日志看(http://blogger.org.cn/blog/more.asp?name=hongrui&id=11781),在找不到问题所在后,突然发现doInHibernate(Session session),既然传入session,就不能getSession()了。看来HibernateTemplate会确保Session正确的打开和关闭,并且会自动参与事务。 Template实例是线程安全的,可重用的,因此可以作为外部类的实例变量而被保持。   


阅读全文(4787) | 回复(0) | 编辑 | 精华
 


回复:spring和hibernate的不释放连接的问题
原创空间,  软件技术

hust(游客)发表评论于2009/1/16 16:28:17

我也碰到这个问题了,但是如何解决这个问题啊?你并没说啊email:hustlkq@126.com


个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.359 second(s), page refreshed 144765539 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号