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 閱讀(1289) 評(píng)論(0)  編輯  收藏 所屬分類: database

          主站蜘蛛池模板: 闵行区| 汨罗市| 灵山县| 柞水县| 新邵县| 白银市| 东莞市| 岳普湖县| 毕节市| 临江市| 阆中市| 霍城县| 阜新市| 谢通门县| 沙田区| 大兴区| 巴彦淖尔市| 黎平县| 潜山县| 海城市| 廊坊市| 泾源县| 防城港市| 达日县| 中江县| 巴林右旗| 永登县| 漳州市| 沙河市| 巨野县| 同心县| 洪泽县| 札达县| 大洼县| 辉县市| 永顺县| 永仁县| 轮台县| 图木舒克市| 牡丹江市| 徐州市|