C3P0属性说明

来源:互联网 发布:电脑磁盘清理软件 编辑:程序博客网 时间:2024/06/07 02:36

C3P0属性说明

 

 
 
acquireIncrement默认值为3,表示当C3P0数据源中的连接池耗尽时,一次同时获取的连接数。acquireRetryAttempts默认值为30,表示从数据库中获取新连接失败后,重复尝试的次数。如果将其设置为0或者小于0的数值,则C3P0将一直进行尝试获取连接。acquireRetryDelay默认值为1000,单位为毫秒,表示C3P0相邻两次获取连接的时间间隔。autoCommitOnClose默认为false,表示在连接关闭时,将所有未提交的操作回滚。设置为true,则在连接关闭时,会将操作进行提交。automaticTestTable

默认为null,设置该属性后,C3P0会自动创建一张名为该属性值的空表,专门是C3P0用来测试使用者所获取的数据库连接,使用者是没法对该表进行操作的。同时该属性设置后,则忽略preferredTestQuery 属性。

preferredTestQuery默认为null,表示所有连接测试都要执行的测试语句,这一属性的设置能够显著地提高测试速度。注意:该测试语句里的表必须在数据源初始化的时候就已经存在了。breakAfterAcquireFailure

默认为false,表示在获取数据库连接失败时,会引起所有等待连接池获取连接的线程抛出异常,但是数据源仍然保持有效,并且在下次调用getConnection时继续尝试获取连接。设置为true,表示在获取数据库连接失败时,重复尝试acquireRetryAttempts指定的次数,此时再失败,则声明数据源已经断开并且永久关闭。

driverClass默认为null,值为全类名,该类是提供数据库连接的JDBC驱动类。默认C3P0会去检测其是否为JDBC驱动程序的实例,如果想跳过这步验证,可设置forceUseNamedDriverClass属性。forceUseNamedDriverClass默认为false,设置为true,表示强制指定driverClass属性指定的类为JDBC驱动程序的实例,而让C3P0不再做这一步检测。dataSourceName默认为C3P0指定的标识符,表示数据源的名称,便于我们追踪和查找数据源。jdbcUrl默认为null,表示数据库的JDBC URL,用来获取数据库连接。user默认为null,表示使用数据源时需要的用户名。password默认为null,表示使用数据源时需要的密码。minPoolSize默认为3,表示连接池中任何时候可以存放的连接最小数量。maxPoolSize默认为15,表示连接池中任何时候可以存放的连接最大数量。initialPoolSize默认为3,表示初始化连接池时获取的连接个数。该数值在miniPoolSize和maxPoolSize之间。testConnectionOnCheckin默认为false,设置为true,表示向连接池中放入连接时测试连接的有效性。testConnectionOnCheckout默认为false,设置为true,表示从连接池中取出连接时测试连接的有效性,因为此操作会降低性能,建议使用idleConnectionTestPeriod或者automaticTestTable来提升连接测试的性能。checkoutTimeout默认为0,单位为毫秒,表示当连接池中连接用完时,客户端调用getConnection获取连接等待的时间,如果超时,则抛出SQLException异常。特殊值0表示无限期等待。connectionCustomizerClassName默认为null,值为全类名,该类必须实现ConnectionCustomizer接口,用来管理Connection的生命周期,例如获取连接时设置Connection的隔离级别,Connection丢弃的时候进行资源关闭等等。一般不配置该属性。connectionTesterClassName默认为com.mchange.v2.c3p0.impl.DefaultConnectionTester,值为全类名,该类必须实现ConnectionTester或者QueryConnectionTester,用来测试数据库的连接。debugUnreturnedConnectionStackTraces默认为false,只可在debug下设置该属性为true,因为该设置会降低从连接池中获取连接的性能。设置为true,并且UnreturnedConnectionTimeOut设置为非0自然数,则C3P0会追踪所有从连接池中取出的连接,对于超时未归还的,会打印追踪信息。该设置就是为了测试应用对数据库的连接是否忘记归还,从而导致从C3P0连接池中取出的连接越来越多,最终池中连接被耗尽。extensions默认为空的Map,用来为C3P0设置自己的配置信息,一般是用来管理Connection生命周期(ConnectionCustomizer)的时候使用。factoryClassLocation默认为null,指定C3P0 libraries的路径,如果本地可以获取,则该值设置为null。forceIgnoreUnresolvedTransactions默认为false,强烈不推荐,设置为true,将导致出现奇怪的bug出现。idleConnectionTestPeriod默认为0,单位为秒,设置为非0自然数,表示每隔指定秒去检测一次连接池中的空闲连接。maxConnectionAge默认为0,单位为秒,表示连接超过该属性指定的时间,则被销毁掉,并且从连接池中移除,0则表示没有时间限制。maxIdleTime默认为0,单位为秒,表示在连接池中未被使用的连接最长存活多久不被移除。maxIdleTimeExcessConnections默认为0,单位为秒,表示在连接池中未被使用的、超出miniPoolSize的那些连接最长存活多久不被移除。maxStatements默认为0,表示JDBC的标准参数,控制数据源内缓存的PreparedStatements数量。和maxStatementsPerConnection配合使用,如果二者都为0,则statement不进行缓存。如果该参数为0,而maxStatementsPerConnection为非零自然数,则表示每一个连接缓存的PreparedStatements数量。maxStatementsPerConnection默认为0,表示每一个连接缓存的PreparedStatements数量。

详细介绍请查看C3P0官网说明:http://www.mchange.com/projects/c3p0/#maxPoolSize

原创粉丝点击