我的知识库

知识等于力量

« 什么是Annotation?XStream两分钟教程 »

Spring 中 C3p0 connection pooling 的配置

在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 URL
jdbc.url=jdbc:mysql://192.168.0.25"3306/db

# Database login information
jdbc.username=root
jdbc.password=

# Time to wait for an open connection before timing out
# (in milliseconds)
cpool.checkoutTimeout=5000

# Connection pool size
cpool.minPoolSize=5
cpool.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 timeout
cpool.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 reached
cpool.acquireIncrement=5

JavaBeans-style Properties
  具体每个属性的意义可以参考
http://www.mchange.com/projects/c3p0/index.html#configuration_properties

acquireIncrement
acquireRetryAttempts
acquireRetryDelay
autoCommitOnClose
automaticTestTable
breakAfterAcquireFailure
checkoutTimeout
connectionCustomizerClassName
connectionTesterClassName
debugUnreturnedConnectionStackTraces
factoryClassLocation
forceIgnoreUnresolvedTransactions
idleConnectionTestPeriod
initialPoolSize
maxAdministrativeTaskTime
maxConnectionAge
maxIdleTime
maxIdleTimeExcessConnections
maxPoolSize
maxStatements
maxStatementsPerConnection
minPoolSize
numHelperThreads
overrideDefaultUser
overrideDefaultPassword
password
preferredTestQuery
propertyCycle
testConnectionOnCheckin
testConnectionOnCheckout
unreturnedConnectionTimeout
user
usesTraditionalReflectiveProxies

Search

导航

热门文章

最新文章

Powered By duduwolf's wiki 1.0

Copyright 1999-2007 duduwolf.com Some Rights Reserved.