码迷,mamicode.com
首页 > 数据库 > 详细

SSH 占用数据库连接不释放问题

时间:2014-07-04 07:19:35      阅读:290      评论:0      收藏:0      [点我收藏+]

标签:ssh

SSH框架的项目在访问数据库的时候,访问完成后一直占用链接,不释放,导致过了一段时间后,服务器没挂,就是有访问数据库的连接是时候,一直卡住

解决办法:

 

1.配置spring对应的hibernate文件:

           <prop key="hibernate.connection.release_mode">after_statement</prop> 事务提交后自动释放连接

2配置事务

    

<!--spring 声明式事务管理器 -->
 <bean id="transactionManager"
  class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  <property name="sessionFactory" ref="sessionFactory" />
 </bean>

 <!--Spring事务拦截器 -->
 <bean id="transactionInterceptor"
  class="org.springframework.transaction.interceptor.TransactionInterceptor">
  <property name="transactionManager" ref="transactionManager" />
  <property name="transactionAttributes">
   <props>
    <!-- 以browse、list、load、get及is开头的所有方法采用只读型事务控制类型 -->
    <prop key="browse*">PROPAGATION_REQUIRED,readOnly</prop>
    <prop key="list*">PROPAGATION_REQUIRED,readOnly</prop>
    <prop key="load*">PROPAGATION_REQUIRED,readOnly</prop>
    <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
    <prop key="is*">PROPAGATION_REQUIRED,readOnly</prop>
    <!-- 所有方法均进行事务控制,如果当前没有事务,则新建一个事务 -->
    <prop key="*">PROPAGATION_REQUIRED</prop>
   </props>
  </property>
 </bean>

 <!-- 自动代理类 -->
 <bean
  class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
  <property name="beanNames">
   <list>
    <value>*Impl</value>
   </list>
  </property>

  <!-- 这个属性为true时,表示被代理的是目标类本身而不是目标类的接口 -->
  <property name="proxyTargetClass">
   <value>true</value>
  </property>

  <!-- 依赖注入上面定义的事务拦截器transactionInterceptor -->
  <property name="interceptorNames">
   <list>
    <value>transactionInterceptor</value>
   </list>
  </property>
 </bean>

 

SSH 占用数据库连接不释放问题,布布扣,bubuko.com

SSH 占用数据库连接不释放问题

标签:ssh

原文地址:http://blog.csdn.net/daixinmei/article/details/36673805

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!