c3p0参数说明

今天,把一个系统迁移到另一个虚拟机上运行。发生一个奇怪的问题:网页请求control,逻辑层查询数据库,查出来一半的数据,返回到前端了。

后台报错:

[org.springframework.web.servlet.DispatcherServlet]DispatcherServlet with name 'springMvc' processing GET request for [/nstatsback/101admin/teaching/teaching.do]
[org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping]Mapping [/101admin/teaching/teaching.do] to HandlerExecutionChain with handler [com.chinaedu.nstats.controller.NStatsController@26074375] and 1 interceptor
[org.springframework.web.servlet.DispatcherServlet]Last-Modified value for [/nstatsback/101admin/teaching/teaching.do] is: -1
[org.springframework.web.bind.annotation.support.HandlerMethodInvoker]Invoking request handler method: public void com.chinaedu.nstats.controller.NStatsController.teaching(java.lang.String,java.lang.String,javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) throws java.io.IOException
[org.springframework.jdbc.datasource.DataSourceUtils]Fetching JDBC Connection from DataSource
[com.mchange.v2.resourcepool.BasicResourcePool]trace com.mchange.v2.resourcepool.BasicResourcePool@4d5fd23f [managed: 5, unused: 4, excluded: 0] (e.g. com.mchange.v2.c3p0.impl.NewPooledConnection@5747fc78)
[com.mchange.v2.resourcepool.BasicResourcePool]Refurbishing idle resources - Mon May 04 09:36:35 CST 2015 [com.mchange.v2.resourcepool.BasicResourcePool@4d5fd23f]
[com.mchange.v2.resourcepool.BasicResourcePool]trace com.mchange.v2.resourcepool.BasicResourcePool@4d5fd23f [managed: 5, unused: 4, excluded: 0] (e.g. com.mchange.v2.c3p0.impl.NewPooledConnection@5747fc78)
[com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool]Testing PooledConnection [com.mchange.v2.c3p0.impl.NewPooledConnection@1b5178cb] on IDLE CHECK.
[com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool]Testing PooledConnection [com.mchange.v2.c3p0.impl.NewPooledConnection@10a4e86c] on IDLE CHECK.
[com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool]Testing PooledConnection [com.mchange.v2.c3p0.impl.NewPooledConnection@4edb328a] on IDLE CHECK.
[com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool]Test of PooledConnection [com.mchange.v2.c3p0.impl.NewPooledConnection@10a4e86c] on IDLE CHECK has SUCCEEDED.
[com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool]Test of PooledConnection [com.mchange.v2.c3p0.impl.NewPooledConnection@4edb328a] on IDLE CHECK has SUCCEEDED.
[com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool]Testing PooledConnection [com.mchange.v2.c3p0.impl.NewPooledConnection@44e38556] on IDLE CHECK.
[com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool]Test of PooledConnection [com.mchange.v2.c3p0.impl.NewPooledConnection@44e38556] on IDLE CHECK has SUCCEEDED.
[com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool]Test of PooledConnection [com.mchange.v2.c3p0.impl.NewPooledConnection@1b5178cb] on IDLE CHECK has SUCCEEDED.
[org.springframework.jdbc.datasource.DataSourceUtils]Returning JDBC Connection to DataSource
[com.mchange.v2.resourcepool.BasicResourcePool]trace com.mchange.v2.resourcepool.BasicResourcePool@4d5fd23f [managed: 5, unused: 4, excluded: 0] (e.g. com.mchange.v2.c3p0.impl.NewPooledConnection@5747fc78)
[org.springframework.jdbc.datasource.DataSourceUtils]Fetching JDBC Connection from DataSource
[com.mchange.v2.resourcepool.BasicResourcePool]trace com.mchange.v2.resourcepool.BasicResourcePool@4d5fd23f [managed: 5, unused: 4, excluded: 0] (e.g. com.mchange.v2.c3p0.impl.NewPooledConnection@5747fc78)
[com.mchange.v2.resourcepool.BasicResourcePool]Checking for expired resources - Mon May 04 09:36:38 CST 2015 [com.mchange.v2.resourcepool.BasicResourcePool@4d5fd23f]
[com.mchange.v2.resourcepool.BasicResourcePool]BEGIN check for expired resources.  [com.mchange.v2.resourcepool.BasicResourcePool@4d5fd23f]
[com.mchange.v2.resourcepool.BasicResourcePool]FINISHED check for expired resources.  [com.mchange.v2.resourcepool.BasicResourcePool@4d5fd23f]
[org.springframework.jdbc.datasource.DataSourceUtils]Returning JDBC Connection to DataSource
[com.mchange.v2.resourcepool.BasicResourcePool]trace com.mchange.v2.resourcepool.BasicResourcePool@4d5fd23f [managed: 5, unused: 4, excluded: 0] (e.g. com.mchange.v2.c3p0.impl.NewPooledConnection@5747fc78)
[org.springframework.web.servlet.DispatcherServlet]Null ModelAndView returned to DispatcherServlet with name 'springMvc': assuming HandlerAdapter completed request handling
[org.springframework.web.servlet.DispatcherServlet]Successfully completed request

连接池闲置连接的检查,maxIdleTime太小的话,资源连接后,在执行数据库sql执行的时候,c3p0就会闲置资源超过指定时间,销毁连接。所以maxIdleTime设置为60秒

下面为详细说明:

jdbc.url=jdbc\:mysql\://127.0.0.1\:3306/test?characterEncoding\=utf-8
jdbc.username=xx
jdbc.password=xx
c3p0.acquireIncrement=5
c3p0.initialPoolSize=5
c3p0.minPoolSize=5
c3p0.maxPoolSize=20
c3p0.maxStatements=100
c3p0.numHelperThreads=10
c3p0.maxIdleTime=60

 acquireIncrement:当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3

 initialPoolSize:初始化时获取三个连接,取值应在minPoolSize与maxPoolSize之间。Default: 3

 minPoolSize:连接池中保留的最小连接数

 maxPoolSize:连接池中保留的最大连接数

 maxStatements:

 JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量。但由于预缓存的statements属于单  个 connection而不是整个连接池。所以设置这个参数需要考虑到多方面的因素。如果maxStatements与  maxStatementsPerConnection均为0,则缓存被关闭。Default: 0

 numHelperThreads:

 c3p0是异步操作的,缓慢的JDBC操作通过帮助进程完成。扩展这些操作可以有效的提升性能 通过多线程  实现多个操作同时被执行。Default: 3

 maxIdleTime:最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0

参考:http://www.open-open.com/lib/view/open1403403349127.html

  

猜你喜欢

转载自nicegege.iteye.com/blog/2208249