Managing Connection Lifecycles with Connection Customizer
在连接取得后,应用逐渐希望使用标准的可复用的方法立即创建连接。例如,这包括了字符编码,或者日期和时间相关的行为,使用供应商指定的API或者非标准的SQL statement执行。偶然地,重载标准连接的默认值是有用的,例如transactionIsolation,holdability或者readOnly。C3P0提供了你可以实现“钩子”接口,它给你机会在连接从数据库check out之后调整或者跟踪连接。
安装ConnectionCustomizer,仅仅需要实现接口,使你的类可以访问C3P0的类加载器。
ConnectionCustomizers是被要求为不可变的类,使用public修饰的无参数构造函数。它们不应该存储任何状态。对于很少的应用,它们希望去追踪不同数据库的行为,lifecycle方法接收指定数据源的“identityToken”,它对于PoolDataSource是唯一的。
Configuring Unresolved Transaction Handling
进入池的连接不能有任何未处理的事务工作与它们相关。如果用户已经设置了autoCommit为false,并且C3P0不能保证没有等待事务在工作,C3P0必须是提交或者回滚。默认情况下当用户调用close()时C3P0回滚未解决的事务。
如果你希望C3P0允许未解决的事务提交,设置autoCommitOnClose到true。如果你希望C3P0留下事务管理给你,并且既不回滚也不提交,你也许设置forceIgnoreUnresolvedTransactions为true。设置forceIgnoreUnresolvedTransactions这个行为并不被鼓励,因为如果客户端不关注先于close()提交或者回滚自身,或者一直不设置连接的自动提交,奇异的不重复行为以及数据库查找能发生。
Configuring to Debug and Workaround Broken Client Applications
有时客户端应用是松散的,关于关闭它们取出的所有的连接。最后,连接池增长到maxPoolSize,然后耗光所有的连接,由于这些坏的客户端。
解决问题正确的方式是修复客户端应用。C3P0能帮助你调试,通过让你知道连接是在哪儿检出的,偶然地没有检出。在很少的、不幸的情况下,客户端应用的开发是闭合的,并且尽管它是有Bug的,但是你不能修复它。C3P0能帮助你解决被破坏的应用,阻止它耗尽连接池。
unreturnedConnectionTimeout 对连接是被检出的时间定义了限制(秒级)。如果设置为非零值,不返回的,检出的连接超出了这个限制的话将会被销毁,然后在连接池中被替换。
明显的,你必须将这个参数设置为足够大的值让操作有时间去完成。你很少能使用这个参数解决不可靠的客户端应用,这些应用关闭连接失败。
除了设置unreturnedConnectionTimeout,你设置debugUnreturnedConnectionStackTraces为true,然后stack trace将会被捕获在每次连接是被check-out时。无论何时未返回的连接超时,stack trace将会是被打印。debugUnreturnedConnectionStackTraces是被紧紧用来调试,捕获stack trace能减慢连接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中如何配置
java 数据库连接池 c3p0 使用及参数详解,支持重连 标签:c3p0 支持重连 参数详解 it 分类:java技术文章 //数据库连接池 单例模式 import java.sql.Connection; import java.sql.SQLException; import ...
c3p0详细配置,具体讲述从从c3p0的配置参数
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连接池获取连接对象,对用户数据进行简单的增删改...