« | September 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | | | | |
| 公告 |
戒除浮躁,读好书,交益友 |
Blog信息 |
blog名称:邢红瑞的blog 日志总数:523 评论数量:1142 留言数量:0 访问次数:9702218 建立时间:2004年12月20日 |

| |
[j2ee]Spring 中 C3p0 connection pooling 的配置 文章收藏
邢红瑞 发表于 2006/5/11 18:21:24 |
在Spring 项目中使用 C3p0 - JDBC3 Connection and Statement Pooling
C3p0 Document 在http://www.mchange.com/projects/c3p0/index.html
Spring 的 DataSource bean 定义如下, 把可变的变量抽出放在jdbc.properties file中, 方便修改 jdbc.properties file只要放在当前项目的classes路径下,或放在Tomcat 的Shared/classes下, Spring 就可以找到<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location"> <value>classpath:jdbc.properties</value> </property> </bean>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="com.mysql.jdbc.Driver" /> <property name="jdbcUrl" value="${jdbc.url}" /> <property name="user" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> <property name="autoCommitOnClose" value="true"/> <property name="checkoutTimeout" value="${cpool.checkoutTimeout}"/> <property name="initialPoolSize" value="${cpool.minPoolSize}"/> <property name="minPoolSize" value="${cpool.minPoolSize}"/> <property name="maxPoolSize" value="${cpool.maxPoolSize}"/> <property name="maxIdleTime" value="${cpool.maxIdleTime}"/> <property name="acquireIncrement" value="${cpool.acquireIncrement}"/> <property name="maxIdleTimeExcessConnections" value="${cpool.maxIdleTimeExcessConnections}"/> </bean>
jdbc.properties# Database URLjdbc.url=jdbc:mysql://192.168.0.25"3306/db
# Database login informationjdbc.username=rootjdbc.password=
# Time to wait for an open connection before timing out# (in milliseconds)cpool.checkoutTimeout=5000
# Connection pool sizecpool.minPoolSize=5cpool.maxPoolSize=40
# How long to keep unused connections around(in seconds)# Note: MySQL times out idle connections after 8 hours(28,800 seconds)# so ensure this value is below MySQL idle timeoutcpool.maxIdleTime=25200
# How long to hang on to excess unused connections after traffic spike# (in seconds)cpool.maxIdleTimeExcessConnections=1800
# Acquiring new connections is slow, so eagerly retrieve extra connections# when current pool size is reachedcpool.acquireIncrement=5 |
|
|