日期:2014-05-16  浏览次数:20481 次

c3p0配置以及连接MySQL数据库timeout的问题
一、
经过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