连接沲配置如下: 放在: src/config/database下
jdbc.DriverClassName=com.ibm.db2.jcc.DB2Driver
jdbc.URL=jdbc\:db2\://192.168.1.2\:50000/HUIDE
jdbc.UserName=db2
jdbc.UserPWD=dd2003
jdbc.MaxActive=2
jdbc.InitialSize=1
Spring 配置文件如下:
 <!-- 读取数据库配置文件 -->
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath*:config/database/database.properties</value>
</list>
</property>
</bean>

<!-- DB数据源配置 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.DriverClassName}">
</property>
<property name="url" value="${jdbc.URL}"></property>
<property name="username" value="${jdbc.UserName}"></property>
<property name="password" value="${jdbc.UserPWD}"></property>
<property name="initialSize" value="${jdbc.InitialSize}"></property>
<property name="maxActive" value="${jdbc.MaxActive}"></property>
</bean>
我发布出来的项目,执行与DB操作时第一次与第二次都没有问题,很正常,操作第三次时就无数据返回。直接是在等待处理的过程。这个操作次数与我上面的连接沲配置jdbc.MaxActive=2 有关。我改大一点,操作的次数可以多一点.
我用的环境是Spring2.5 + Hibernate3.2 + Struts1.0 + IBM DB2 + tomcat6.026
请问有没有那位知道解决释放连接沲活动数的?

解决方案 »

  1.   

    对于连接沲还真没有用过释放不知道怎么释放对了Session Spring已经自己会做的呀,我们不用考虑的吧?
      

  2.   

    敢问这位仁兄 你在你的bp层里面 开启事务了吗?
    还有 就是 你要是 在你的dal层用jdbc了 你确定你的 连接自己 手动关闭了吗?根据你说的 
    就是你的连接用完 没有自动关闭!
    请检查你的 spring 配置文件
    还有 你用的jdbc的地方 看看是否关闭连接
      

  3.   

    连接池不用释放,楼主的代码里面应该是transaction没有正常结束。请记住
    begin transation
    commit/roll back;
      

  4.   

    <!-- 事务配置 -->
    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>

    <!--定义事务的传播特性-->  
    <tx:advice id="txAdvice" transaction-manager="transactionManager">  
      <tx:attributes>  
        <tx:method name="add*" propagation="REQUIRED" /><!--表示方法名是add开头的使用事务-->  <!-- rollback-for="exception" -->
        <tx:method name="delete*" propagation="REQUIRED" /><!--表示方法名是delete开头的使用事务-->  
        <tx:method name="modify*" propagation="REQUIRED" /><!--表示方法名是modify开头的使用事务-->
        <tx:method name="save*" propagation="REQUIRED" /><!--表示方法名是modify开头的使用事务-->
        <tx:method name="*" read-only="true" propagation="SUPPORTS"/><!--表示除了上面的那些开头的都是只读的-->
      </tx:attributes>  
    </tx:advice>

    <!--AOP的配置-->  
    <aop:config>  
      <aop:pointcut id="managersMethod" expression="execution(* com.huide.serviceimpl.*.*.*(..))"/>  
      <aop:advisor advice-ref="txAdvice" pointcut-ref="managersMethod"/>  
    </aop:config> 
    对了事务我做了声明
      

  5.   

    <!-- 事务配置 -->
    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>

    <!--定义事务的传播特性-->  
    <tx:advice id="txAdvice" transaction-manager="transactionManager">  
      <tx:attributes>  
        <tx:method name="add*" propagation="REQUIRED" /><!--表示方法名是add开头的使用事务-->  <!-- rollback-for="exception" -->
        <tx:method name="delete*" propagation="REQUIRED" /><!--表示方法名是delete开头的使用事务-->  
        <tx:method name="modify*" propagation="REQUIRED" /><!--表示方法名是modify开头的使用事务-->
        <tx:method name="save*" propagation="REQUIRED" /><!--表示方法名是modify开头的使用事务-->
        <tx:method name="*" read-only="true" propagation="SUPPORTS"/><!--表示除了上面的那些开头的都是只读的-->
      </tx:attributes>  
    </tx:advice>

    <!--AOP的配置-->  
    <aop:config>  
      <aop:pointcut id="managersMethod" expression="execution(* com.huide.serviceimpl.*.*.*(..))"/>  
      <aop:advisor advice-ref="txAdvice" pointcut-ref="managersMethod"/>  
    </aop:config> 
    对了事务我做了声明
      

  6.   

    <!-- 事务配置 -->
    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>

    <!--定义事务的传播特性-->  
    <tx:advice id="txAdvice" transaction-manager="transactionManager">  
      <tx:attributes>  
        <tx:method name="add*" propagation="REQUIRED" /><!--表示方法名是add开头的使用事务-->  <!-- rollback-for="exception" -->
        <tx:method name="delete*" propagation="REQUIRED" /><!--表示方法名是delete开头的使用事务-->  
        <tx:method name="modify*" propagation="REQUIRED" /><!--表示方法名是modify开头的使用事务-->
        <tx:method name="save*" propagation="REQUIRED" /><!--表示方法名是modify开头的使用事务-->
        <tx:method name="*" read-only="true" propagation="SUPPORTS"/><!--表示除了上面的那些开头的都是只读的-->
      </tx:attributes>  
    </tx:advice>

    <!--AOP的配置-->  
    <aop:config>  
      <aop:pointcut id="managersMethod" expression="execution(* com.huide.serviceimpl.*.*.*(..))"/>  
      <aop:advisor advice-ref="txAdvice" pointcut-ref="managersMethod"/>  
    </aop:config> 
    对了事务我做了声明
      

  7.   

    建议使用 apache DBCP 或 c3p0 链接池...