lqxue

          常用鏈接

          統(tǒng)計(jì)

          book

          tools

          最新評(píng)論

          [收藏]Spring 中 C3p0 connection pooling 的配置

          Spring 的 DataSource bean 定義如下, 把可變的變量抽出放在db.properties file中, 方便修改 db.properties file只要放在當(dāng)前項(xiàng)目的classes路徑下,或放在Tomcat 的Shared/classes下, Spring 就可以找到
          <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
                  <property name="driverClass">
                      <value>${jdbc.driver}</value>
                  </property>
                  <property name="jdbcUrl">
                      <value>${jdbc.url}</value>
                  </property>
           
                  <property name="acquireIncrement"><value>${hibernate.c3p0.acquire_increment}</value></property>
                  <property name="idleConnectionTestPeriod"><value>${hibernate.c3p0.idle_test_period}</value></property>
                  <property name="checkoutTimeout"><value>${hibernate.c3p0.timeout}</value></property>
                  <property name="maxPoolSize"><value>${hibernate.c3p0.max_size}</value></property>
                  <property name="minPoolSize"><value>${hibernate.c3p0.min_size}</value></property>
                  <property name="maxStatements"><value>${hibernate.c3p0.max_statements}</value></property>
                  <property name="initialPoolSize"><value>${hibernate.c3p0.min_size}</value></property>
                  <property name="user"><value>${jdbc.username}</value></property>
                  <property name="password"><value>${jdbc.password}</value></property>
              </bean>

          db.properties 如下
           jdbc.driver=com.mysql.jdbc.Driver
          jdbc.url=jdbc:mysql://localhost:3306/zyw?useUnicode=true&characterEncoding=GBK
          jdbc.username=root
          jdbc.password=root
          hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
          hibernate.show_sql=true
          hibernate.format_sql=false
          hibernate.c3p0.min_size=80
          hibernate.c3p0.max_size=80
          hibernate.c3p0.timeout=3000
          hibernate.c3p0.max_statements=6000
          hibernate.c3p0.idle_test_period=3000
          hibernate.c3p0.acquire_increment=5


          下面是一些可供使用的項(xiàng):
          maxIdleTime:<!--最大空閑時(shí)間,60秒內(nèi)未使用則連接被丟棄。若為0則永不丟棄。Default: 0 -->
          acquireIncrement:<!--當(dāng)連接池中的連接耗盡的時(shí)候c3p0一次同時(shí)獲取的連接數(shù)。Default: 3 -->
           maxStatements:<!--JDBC的標(biāo)準(zhǔn)參數(shù),用以控制數(shù)據(jù)源內(nèi)加載的PreparedStatements數(shù)量。但由于預(yù)緩存的statements
                                       屬于單個(gè)connection而不是整個(gè)連接池。所以設(shè)置這個(gè)參數(shù)需要考慮到多方面的因素。
                                       如果maxStatements與maxStatementsPerConnection均為0,則緩存被關(guān)閉。Default: 0-->
          idleConnectionTestPeriod:<!--每60秒檢查所有連接池中的空閑連接。Default: 0 -->
          acquireRetryAttempts: <!--定義在從數(shù)據(jù)庫(kù)獲取新連接失敗后重復(fù)嘗試的次數(shù)。Default: 30 -->
          breakAfterAcquireFailure: <!--獲取連接失敗將會(huì)引起所有等待連接池來(lái)獲取連接的線程拋出異常。但是數(shù)據(jù)源仍有效
                                                      保留,并在下次調(diào)用getConnection()的時(shí)候繼續(xù)嘗試獲取連接。如果設(shè)為true,那么在嘗試
                                                       獲取連接失敗后該數(shù)據(jù)源將申明已斷開(kāi)并永久關(guān)閉。Default: false-->
           testConnectionOnCheckout:<!--因性能消耗大請(qǐng)只在需要的時(shí)候使用它。如果設(shè)為true那么在每個(gè)connection提交的
            時(shí)候都將校驗(yàn)其有效性。建議使用idleConnectionTestPeriod或automaticTestTable
            等方法來(lái)提升連接測(cè)試的性能。Default: false -->

          posted on 2007-07-03 21:24 lqx 閱讀(1286) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): database

          主站蜘蛛池模板: 渝北区| 土默特右旗| 肥东县| 鲁山县| 肃北| 京山县| 建水县| 汝阳县| 琼海市| 阿克陶县| 大新县| 桑植县| 凤台县| 梨树县| 象州县| 黎川县| 沾益县| 鸡西市| 灵台县| 建平县| 泸州市| 布尔津县| 鄂州市| 时尚| 响水县| 扎赉特旗| 崇阳县| 彭山县| 潢川县| 称多县| 镇坪县| 天全县| 肥乡县| 河津市| 蓝田县| 金堂县| 嵊泗县| 霍城县| 三穗县| 鄱阳县| 左贡县|