zoukankan      html  css  js  c++  java
  • 连接池配置

    一般而言,常用的数据库连接池有DBCP,C3P0, proxool,另外还有一个出道迟一些但是性能比前面这3个又好许多的连接池BoneCp。

    DBCP是apache组织的一个开源的连接池项目,不过现在好像已经停止维护了,据说问题比较多,连接死锁问题比较严重。

    C3P0是hibernate官方指定的数据库连接池工具,性能稳定,不过占用资源相对较多。

    Proxool据说性能比从C3P0好一些,消耗资源也少。

    BoneCp连接池 网上有测试数据显示其运行效率可以达到C3P0、Proxool的25倍,并且稳定性也不错,所以被许多开发者推崇!但是要求jdk1.5+。

    只可惜我的开发环境是基于jdk1.4的,所以对BoneCp无法测试了。

    Proxool也没有测试,因为现在基本都是新的基于jdk1.5+的版本。

    DBCP连接池配置:

    1.  <bean id="dataSource"  
    2.           class="org.apache.commons.dbcp.BasicDataSource"  
    3.           destroy-method="close">  
    4.         <property name="driverClassName" value="com.mysql.jdbc.Driver"/>  
    5.         <property name="url" value="jdbc:mysql://192.168.0.109:3306/test?useUnicode=true&characterEncoding=UTF-8"/>  
    6.         <property name="username" value="root"/>  
    7.         <property name="password" value="root"/>  
    8.         <!--maxActive: 最大连接数量-->    
    9.         <property name="maxActive" value="150"/>  
    10.         <!--minIdle: 最小空闲连接-->    
    11.         <property name="minIdle" value="5"/>  
    12.         <!--maxIdle: 最大空闲连接-->    
    13.         <property name="maxIdle" value="20"/>  
    14.         <!--initialSize: 初始化连接-->    
    15.         <property name="initialSize" value="30"/>  
    16.         <!-- 连接被泄露时是否打印 -->  
    17.         <property name="logAbandoned" value="true"/>  
    18.         <!--removeAbandoned: 是否自动回收超时连接-->    
    19.         <property name="removeAbandoned"  value="true"/>  
    20.         <!--removeAbandonedTimeout: 超时时间(以秒数为单位)-->    
    21.         <property name="removeAbandonedTimeout" value="10"/>  
    22.         <!--maxWait: 超时等待时间以毫秒为单位 1000等于60秒-->  
    23.         <property name="maxWait" value="1000"/>  
    24.         <!-- 在空闲连接回收器线程运行期间休眠的时间值,以毫秒为单位. -->  
    25.         <property name="timeBetweenEvictionRunsMillis" value="10000"/>  
    26.         <!--  在每次空闲连接回收器线程(如果有)运行时检查的连接数量 -->  
    27.         <property name="numTestsPerEvictionRun" value="10"/>  
    28.         <!-- 1000 * 60 * 30  连接在池中保持空闲而不被空闲连接回收器线程-->  
    29.         <property name="minEvictableIdleTimeMillis" value="10000"/>  
    30.     <property name="validationQuery" value="SELECT NOW() FROM DUAL"/>  
    31.     </bean>  

    C3P0连接池配置:

    <beanid="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"destroy-method="close">

            <propertyname="driverClass"  value="oracle.jdbc.OracleDriver"/> 

            <propertyname="jdbcUrl"      value="jdbc:oracle:thin:@168.9.202.49:1521:TEST"/> 

            <propertyname="user"         value="TEST" /> 

            <propertyname="password"     value="TEST" /> 

          <propertyname="acquireIncrement"       value="5" /> 

            <propertyname="acquireRetryAttempts"      value="10" /> 

            <propertyname="acquireRetryDelay"         value="3000" /> 

            <propertyname="autoCommitOnClose"         value="true" /> 

            <propertyname="breakAfterAcquireFailure"  value="false"/> 

            <propertyname="checkoutTimeout"value="10000" />

            <propertyname="initialPoolSize"value="6" /> 

            <propertyname="maxIdleTime"     value="10000" /> 

            <propertyname="maxPoolSize"     value="10" />

          <propertyname="minPoolSize"     value="1" />  

            <propertyname="maxStatements"   value="0" /> 

            <propertyname="numHelperThreads"value="3" /> 

            <propertyname="propertyCycle"   value="600" /> 

          <propertyname="maxStatementsPerConnection"   value="0" />

    </bean>

    Proxool连接池配置:

     

    <bean id="dataSource"class="org.logicalcobwebs.proxool.ProxoolDataSource"destroy-method="close">

          <propertyname="driver" value="oracle.jdbc.driver.OracleDriver"></property>

          <propertyname="driverUrl"    value="jdbc:oracle:thin:@168.9.202.49:1521:TEST"></property>

          <propertyname="user"       value="TEST"></property>

          <propertyname="password"   value="TEST"></property>

          <propertyname="alias"      value="proxool4JMJL"></property>

          <propertyname="jmx"     value="false"></property>

          <propertyname="trace"      value="true"></property>

          <propertyname="verbose"    value="false"></property>

          <propertyname="houseKeepingSleepTime" value="30000"></property>

          <propertyname="houseKeepingTestSql" value="SELECTCURRENT_DATE FROM DUAL"></property>

          <propertyname="testBeforeUse"        value="true"></property>

          <propertyname="testAfterUse"         value="true"></property>

          <propertyname="prototypeCount"       value="5"></property>

          <propertyname="maximumConnectionCount"value="400"></property>

          <propertyname="minimumConnectionCount"value="10"></property>

          <propertyname="statistics"       value="1m,15m,1d"></property>

          <propertyname="statisticsLogLevel"   value="ERROR"></property>

          <propertyname="maximumActiveTime"       value="600000"></property>

          <propertyname="simultaneousBuildThrottle" value="1600"></property>

       </bean>

    Bonecp连接池配置:

    <bean id="bonecpDataSource"class="com.jolbox.bonecp.BoneCPDataSource"destroy-method="close">

          <propertyname="driverClass" value=" oracle.jdbc.driver.OracleDriver " />

          <propertyname="jdbcUrl" value=" jdbc:oracle:thin:@168.9.202.49:1521:TEST" />

          <propertyname="username"    value="TEST"/>

          <propertyname="password"    value="TEST"/>

          <propertyname="idleConnectionTestPeriod"    value="60"/>

          <propertyname="idleMaxAge" value="240"/>

          <propertyname="maxConnectionsPerPartition" value="30"/>

          <propertyname="minConnectionsPerPartition" value="10"/>

          <propertyname="partitionCount"       value="3"/>

          <propertyname="acquireIncrement" value="5"/>

          <propertyname="statementsCacheSize" value="100"/>

          <propertyname="releaseHelperThreads" value="3"/>

       </bean>

    在实际项目开发中一般喜欢把参数都放在配置文件中,便于修改和操作。

  • 相关阅读:
    LeetCode Array Easy 414. Third Maximum Number
    LeetCode Linked List Medium 2. Add Two Numbers
    LeetCode Array Easy 283. Move Zeroes
    LeetCode Array Easy 268. Missing Number
    LeetCode Array Easy 219. Contains Duplicate II
    LeetCode Array Easy 217. Contains Duplicate
    LeetCode Array Easy 189. Rotate Array
    LeetCode Array Easy169. Majority Element
    LeetCode Array Medium 11. Container With Most Water
    LeetCode Array Easy 167. Two Sum II
  • 原文地址:https://www.cnblogs.com/chenrenshui/p/7673716.html
Copyright © 2011-2022 走看看