Configuring Statement Pooling
C3P0实现了透明的PreparedStatement池,它是根据JDBC规范定义的。在一些环境下,statement池能很大地提升应用的性能。在另一些环境下,statement池的花销也会轻微损害性能。当statement被准备时,statement池是否以及怎样提高性能,取决于怎样解析,计划,和数据库查询的优化。数据库以及JDBC驱动差异巨大。基于你的应用使用和不用statement池,取决于是否能提升性能。
maxStatements是控制statement池的JDBC标准参数。maxStatement定义了数据源缓冲的PreparedStatements总数。当它达到这个限制时,池将会销毁最近最少使用的PreparedStatement。这听起来简单,但是确切地是一个陌生的方法,因为缓冲的statement概念上属于不同的连接;他们不是全局的资源。理解maxStatements的大小,对于maxStatements,它没有搅动缓冲的statement,你需要考虑你应用中频繁使用的PreparedStatements数量。maxStatementsPerConnection是非标准的配置参数。它定义了每个被缓冲的连接中多少statement是被允许使用的。你能设置它比你频繁使用的PreparedStatements数目多,避免搅动。
如果这些参数都大于0,statement池将会被启动。如果两个参数都大于0,限制将会是被启用。如果仅有一个大于0,statement池将会是被启用,但是仅仅一个限制被启用。
Configuring Recovery From Database Outages
C3P0数据源是被设计(并且默认被配置)来从临时数据库损坏中恢复,例如发生在数据库重启或者网络连接的短期损失。
当C3P0数据源试图取得连接并且失败时,它将会重试直到acquireRetryAttempts设定的次数;并且每次的重试的间隔是acquireRetryDelay。如果所有的重试都失败,任一等待数据库连接的客户端都会看到异常,说明不可以取得连接。注意在一轮重试都失败之前客户端不会看到任意的异常。如果acquireRetryAttempts设置为0,C3P0将会无限期地试图取得新的连接,并且调用getConnection()也许会无限期地阻塞,等待一个成功的确认。
一旦一轮都重试失败,有两种可能的策略。默认情况下,C3P0数据源将仍会是活跃的,并且将会重试取得连接。如果你设置breakAfterAcquireFailure为true,在一轮的连接失败后,数据源将会考虑自身被破坏,将来的请求将会立即失败。
注意如果数据库发生重启,池也许包含了先前取得的胆识现在陈旧的连接。默认请款下,这些陈旧的连接将被侦测到并且延迟清除,当应用试图使用它们,并且会看到异常。设置maxIdleTime或者maxConnectionAge能帮助加速被破坏连接的替换。如果你希望避免整体应用异常,你必须采用连接测试策略,该策略可能先于它们传送给客户端之前侦测到陈旧的连接。即使使用活跃的连接测试(testConnectionsOnCheckout被设置为true,或者testConnectionsOnCheckin以及一个简短的idleConnectionTestPeriod),在数据库重启的时候,你的应用也许会看到偶然的异常。例如,在数据库连接被check out之后,如果数据库被重启。
分享到:
相关推荐
c3p0连接池参数配置
c3p0jar包和源码以及参数配置c3p0jar包和源码以及参数配置c3p0jar包和源码以及参数配置c3p0jar包和源码以及参数配置
C3P0连接池参数配置.doc
C3P0连接池参数配置
SSH地核心C3P0详细参数说明,需要地兄弟不要吝啬分数来下吧
c3p0各种框架配置参数使用方法以及注释 C3P0是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate一起发布,包括了实现jdbc3和 jdbc2扩展规范说明的Connection 和Statement 池的DataSources 对象。
DBCP和C3P0连接池常用配置参数一览表DBCP和C3P0连接池常用配置参数一览表DBCP和C3P0连接池常用配置参数一览表
C3P0 在tomcat中如何配置C3P0 在tomcat中如何配置C3P0 在tomcat中如何配置C3P0 在tomcat中如何配置
c3p0详细配置,具体讲述从从c3p0的配置参数
java 数据库连接池 c3p0 使用及参数详解,支持重连 标签:c3p0 支持重连 参数详解 it 分类:java技术文章 //数据库连接池 单例模式 import java.sql.Connection; import java.sql.SQLException; import ...
hibernate c3p0 数据库 连接池 参数 详解
C3P0连接池参数属性配置中的所有属性以及属性值,初学者值得考虑,高手也可以看看,说不定有你不知道的配置属性~~
C3P0是一个用于管理JDBC连接池的Java库。...配置C3P0连接池:在应用程序的配置文件中,你需要配置C3P0连接池的参数。这通常包括数据库的连接URL、用户名、密码,以及连接池的一些设置,如最小连接数、最大连接数等。
NULL 博文链接:https://wang-jia-sina-com.iteye.com/blog/1893639
三大连接池参数说明,是本人在网上查找后放在网上备份,希望也对你有用
Druid、DBCP、C3P0、JBoss、Weblogic、Proxool 文档中包括 以上各个数据源配置参数中文含义,并不包括配置实例,请注意。
本文将包含以下内容(因为篇幅范围,可根据需要选择阅读): c3p0的使用方法(入门案例, JDNI使用) c3p0的配置参数详解c3p0主要源码分析使用示例-入门需求使用C3P0连接池获取连接对象,对用户数据进行简单的增删改...