网上对三种连接池的评价如下:
C3P0比较耗费资源,效率方面可能要低一点。
DBCP在实践中存在BUG,在某些种情会产生很多空连接不能释放,Hibernate3.0已经放弃了对其的支持。
Proxool的负面评价较少,现在比较推荐它,而且它还提供即时监控连接池状态的功能,便于发现连接泄漏的情况。
<bean id="proxool_dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource">
<property name="driver-class" value="oracle.jdbc.driver.OracleDriver"/>
<property name="driver-url" value="jdbc:oracle:thin:@localhost:1521/ssid"/>
<property name="user" value="user"/>
<property name="password" value="password"/>
<!-- 测试的SQL执行语句 -->
<property name="houseKeepingTestSql" value="select CURRENT_DATE"/>
<!-- 最少保持的空闲连接数(默认2个) -->
<property name="prototypeCount" value="2"/>
<!-- proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁默认30秒) -->
<property name="houseKeepingSleepTime" value="30"/>
<!-- 最大活动时间(超过此时间线程将被kill,默认为5分钟) -->
<property name="maximumActiveTime" value="300"/>
<!-- 连接最长时间(默认为4个小时) -->
<property name="maximumConnectionLifetime" value="30"/>
<!-- 最小连接数(默认2个) -->
<property name="minimumConnectionCount" value="10"/>
<!-- 最大连接数(默认5个) -->
<property name="maximumConnectionCount" value="30"/>
<!-- 同时最大连接数 -->
<property name="simultaneousBuildThrottle" value="10"/>
</bean>