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


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

    解决的方法:

     

    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>

     

  • 相关阅读:
    [Cerc2013]Magical GCD
    UVA 1393 Highways
    UVA 10214 Trees in a Wood
    [SDOI2010]大陆争霸
    Oracle逻辑读详解
    DBA_2PC_PENDING (转)
    oracle autotrace使用
    升级oracle 9i到10g
    VMware 虚拟机中添加新硬盘的方法(转载)
    ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var mysql (转)
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10664241.html
  • Copyright © 2020-2023  润新知