连接池比较及配置

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

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

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

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

BoneCp连接池 网上有测试数据显示其运行效率可以达到C3P0Proxool25倍,并且稳定性也不错,所以被许多开发者推崇!但是要求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="dataSourceclass="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>

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值