皕杰技术社区

 找回密码
 立即加入

扫一扫,访问微社区

QQ登录

只需一步,快速开始

楼主: bijetsupport02

[分享] tomcat-jdbc-pool

[复制链接]
 楼主| 发表于 2019-7-31 16:17:29 | 显示全部楼层
logAbandoned(boolean) 标记当Statement 或连接被泄露时是否打印程序的stack traces 日志。被泄露的Statements 和连接的日志添加在每个连接打开或者生成新的Statement, 因为需要生成stack trace 。FALSEFALSE

Tomcat jdbc-pool 新增属性
属性名描述默认值
validatorClassName(String)实现org.apache.tomcat.jdbc.pool.Validator接口的类名,必须存在默认或明确的无参构造方 法。将建立一个指定类的实例作为验证器,用来代替执行查询的连接验证。例如:com.mycompany.project.SimpleValidator。-
initSQL(String) 当连接第一次建立时执行的SQL-
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-31 16:19:27 | 显示全部楼层
jdbcInterceptors(String)(jdbc拦截器——jdbc-pool的高级扩展属 性)用分号分隔的、继承org.apache.tomcat.jdbc.pool.JdbcInterceptor的类名列表。这些拦截器将被插入到对 java.sql.Connection操作之前的拦截器链上。 预制的拦截器有:
org.apache.tomcat.jdbc.pool.interceptor.ConnectionState - 追踪自动提交、只读状态、catalog和事务隔离等级等状态。(keeps track of auto commit, read only, catalog and transaction isolation level.)org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer - 追踪打开的statement,当连接被归还时关闭它们。(keeps track of opened statements, and closes them when the connection is returned to the pool.)更多预制拦截器详细描述请参见JDBC拦截器部分
-
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-31 16:20:56 | 显示全部楼层
fairQueue(boolean) 如果被设为true ,getConnection 方法将被以先进先出的方式对待。此属性使用 org.apache.tomcat.jdbc.pool.FairBlockingQueue 实现闲置连接列表。
如果需要使用异步连接回收,这个标记是必须的。
这个标记确保线程取得连接的顺序和他们调用getConnection 方法的顺序是相同的。
在性能测试中,这个标记对锁和锁等待有非常大的影响。当fairQueue=true ,将有一个依赖于操作系统的线程作为决定线程。如果是Linux 系统( 系统属性os.name=Linux )可以在线程池的类加载之前设置系统属性 org.apache.tomcat.jdbc.pool.FairBlockingQueue.ignoreOS=true 关闭Linux 特定行为但仍然使用公平队列
TRUE
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-31 16:22:00 | 显示全部楼层
validationInterval(long) 避免过度验证,保证验证不超过这个频率——以毫秒为单位。如果一个连接应该被验证,但上次验证未达到指定间隔,将不再次验证。30000(30秒)
jmxEnabled(boolean) 是否将连接注册到JMXTRUE
abandonWhenPercentageFull(int)正在被使用的连接超过这个百分比以前被丢弃的连接不会被断开或报告。这个值应被设为0-100之间。默认值为0,意味着达到 removeAbandonedTimeout 时将被尽快关闭。0
maxAge(long)保持连接的最大毫秒数。当一个连接被归还时,连接池将检查是否满足:现在时间-连接时长>maxAge,如果条件满足,连接将被关闭而不是回到池中。默认值为0,标识禁用该功能。0
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-31 16:22:51 | 显示全部楼层
useEquals(boolean)如果希望ProxyConnection类使用String.equals方法对比方法名,设为true;否则将使用==判断。这个属性不会影响单独配置的拦截器。TRUE
suspectTimeout(int)以秒为单位的超时时间(怀疑超时)。类似 removeAbandonedTimeout,但不会将连接丢弃甚至关闭,如果logAbandoned为true,则 只是记录一个警告。如果这个值小于等于0,不会有怀疑超时检测被执行。怀疑检测只有当超时时间大于0并且连接未丢弃,或者丢弃检测被禁用的情况下才占用空间。如果一个连接被怀疑,将记录一条警告消息,并发送一个JMX通知。0
rollbackOnReturn(boolean)如果autoCommit==false,当连接被归还时,通过调用连接的rollback方法中断事务。FALSE
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-31 16:24:09 | 显示全部楼层
commitOnReturn(boolean)如果autoCommit==false,当连接被归还时,通过调用连接的commit方法完成事务。如果rollbackOnReturn==ture,这个属性将被忽略。FALSE
dataSourceJNDI(String)用来建立数据连接的JNDI名称。参考dataSource属性。-
useDisposableConnectionFacade(boolean)如果您希望在连接上建立一道屏障防止连接关闭之后被重新使用,设置这个属性为true。这个属性用来预防线程保持已关闭连接的引用,并在上面执行查询动作。TRUE
logValidationErrors(boolean)如果设置为true,将在验证相位时向日志文件写入错误。如果值为true,错误将被记录为SEVER。默认值是false以向后兼容。FALSE
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-31 16:25:33 | 显示全部楼层
alternateUsernameAllowed(boolean)为了提高性能,默认情况下,jdbc-pool将忽略 DataSource.getConnection(username,password)调用,直接返回一个以已有的全局配置的用户名和密码创建的连 接。连接池仍然可以用不同的用户名和密码,但已经通过旧的用户名和密码创建的连接将被关闭,然后重新以新的用户名和密码连接。这样连接池将以全局级别管理 连接数,而不是schema级别。设置这个属性为true来启用 DataSource.getConnection(username,password)方法描述的行为。这个属性为bug 50025 增加。FALSE
dataSource(javax.sql.DataSource)向连接池注入一个数据源,连接池将使用这个数据源索取连接,而不是通过java.sql.Driver接口建立。当您希望池化XA连接或者使用数据源而不是url时,这个属性非常有用。-
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-31 16:26:00 | 显示全部楼层
propagateInterruptState(boolean)设置这个属性为true,可以传播一个被中断的线程(还没有清除中断状态)的中断状态。默认值为false以向后兼容。FALSE
回复 支持 反对

使用道具 举报

发表于 2019-10-15 18:27:23 | 显示全部楼层

回帖奖励 +5 金钱

谢谢资源分享
回复 支持 反对

使用道具 举报

发表于 2019-10-17 10:51:22 | 显示全部楼层
谢谢资源分享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

本版积分规则

QQ|小黑屋|手机版|皕杰软件 ( 京ICP备14050931号 )

GMT+8, 2024-12-28 16:08 , Processed in 1.083180 second(s), 13 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表