spring c3p0

C3P0在spring中的配置
2007-01-30 11:29
今天需要将c3p0 再 spring 配置,来解决mysql 8个小时以后断开连接的问题。 找了一些资料。发现都不是很正确。   没有从根本上解决这个问题。 今天转一个老哥的文章。 希望对大家有用处。 我正在测试8小时以后会不会断开连接 。我先把文章写出来。稍后再告诉大家结果。

-------------------------------------------------------以下是转的内容-------------------------------------------------


经过N多试验,终于自己把这个问题搞定了。

网上关于C3P0在spring中的配置,几乎没有完全正确的(至少我还没发现)。查了c3p0的文档,又试验过N次。得出如下配置是正确的:


<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"    destroy-method="close">
          <property name="driverClass"><value>${jdbc.driverClassName}</value></property>
          <property name="jdbcUrl"><value>${jdbc.url}</value></property>              
          <property name="user"><value>${jdbc.username}</value></property>
          <property name="password"><value>${jdbc.password}</value></property>
         
          <property name="minPoolSize"><value>1</value></property>
          <property name="maxPoolSize"><value>20</value></property>
          <property name="maxIdleTime"><value>1800</value></property>
          <property name="acquireIncrement"><value>2</value></property>
          <property name="maxStatements"><value>0</value></property>
          <property name="initialPoolSize"><value>2</value></property>
          <property name="idleConnectionTestPeriod"><value>1800</value></property>
          <property name="acquireRetryAttempts"><value>30</value></property>
          <property name="breakAfterAcquireFailure"><value>true</value></property>
          <property name="testConnectionOnCheckout"><value>false</value></property>
        
          <!--
             <property name="properties">
           <props>             
               <prop key="c3p0.minPoolSize">1</prop>
               <prop key="c3p0.maxPoolSize">10</prop>
               <prop key="c3p0.maxIdleTime">1800</prop>             
               <prop key="c3p0.acquireIncrement">2</prop>
               <prop key="c3p0.maxStatements">0</prop>
                     <prop key="c3p0.initialPoolSize">2</prop>
               <prop key="c3p0.idleConnectionTestPeriod">1800</prop>
               <prop key="c3p0.acquireRetryAttempts">30</prop>
               <prop key="c3p0.breakAfterAcquireFailure">true</prop>
               <prop key="c3p0.testConnectionOnCheckout">true</prop>
               <prop key="user">root</prop>
               <prop key="password">999999</prop>
             
           </props>
          </property>
         -->     
</bean>

<!-- Hibernate SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
   <property name="dataSource" ref="dataSource"/>
   <property name="mappingDirectoryLocations">
       <list>
    <value>classpath:/com/licaionline/domain/</value>
       </list>
   </property>
   <property name="hibernateProperties">
    <props>
     <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
      <prop key="hibernate.show_sql">true</prop>
     <prop key="hibernate.generate_statistics">true</prop>
                 <prop key="hibernate.connection.release_mode">auto</prop>                     
                 <prop key="hibernate.autoReconnect">true</prop>
                 <prop key="hibernate.cglib.use_reflection_optimizer">true</prop>
                 <!--
     <prop key="hibernate.useUnicode"></prop>
     <prop key="hibernate.characterEncoding"></prop>
     <prop key="hibernate.default-lazy-init"></prop>
                 <prop key="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</prop>    
     -->
                               
                 <!--
                 <prop key="hibernate.c3p0.acquire_increment">2</prop>
                 <prop key="hibernate.c3p0.idle_test_period">1800</prop>
                 <prop key="hibernate.c3p0.timeout">1800</prop>
                 <prop key="hibernate.c3p0.max_size">30</prop>
                 <prop key="hibernate.c3p0.min_size">2</prop>
                 <prop key="hibernate.c3p0.max_statements">50</prop>
     -->        
    </props>
   </property>
</bean>



注意:注释掉的那些,都是错误的。网上流行的,基本上跟注释掉的那些差不多。配错了,并无异常,还是能正常使用。但是所作的配置不起作用。

猜你喜欢

转载自guobin6125.iteye.com/blog/1110312