Spring下JDBC Tomca的连接属性(官方文档资料)

 

Attributes

 commons-dbcp 和tomcat-jdbc-pool的之间有些简单的转变,大部分的属性名一致并且有同样的意思。

 

通用属性

commons-dbcp和 tomcat-jdbc-pool相同的属性, 但是有些情况下默认值不一样。

Attribute

Description

defaultAutoCommit

boolean)连接池创建的连接的默认的auto-comit状态,未设置, 默认的是 JDBC driver default

defaultReadOnly

(boolean)连接池创建的连接的默认的read-only 状态。如果没有设置,setReadOnly方法不会被调用。(有些驱动不支持只读模式,例如:Informix

defaultTransactionIsolation

(String)连接池创建的连接的默认transactionisolation状态。下面列表当中的某一个: ( 参考javadoc) 

  • NONE
  • READ_COMMITTED
  • READ_UNCOMMITTED
  • REPEATABLE_READ
  • SERIALIZABLE

如果没有设置,该方法不会被调用,默认值driver default

defaultCatalog

(String) 连接池创建的连接的默认的catalog。默认值:driver default

driverClassName

(String)使用的JDBC 驱动的完整有效的java 类名。驱动必须从类加载器中可访问

username

(String)传递连接用户名给JDBC驱动程序建立连接。

注意,方法DataSource.getConnection(用户名、密码)默认情况下不会使用凭证传递到方法,但将使用的配置。SeealternateUsernameAllowed属性的更多细节。

password

(String) 传递连接密码给JDBC驱动程序建立连接。

注意,方法DataSource.getConnection(用户名、密码)默认情况下不会使用凭证传递到方法,但将使用的配置。SeealternateUsernameAllowed属性的更多细节。

maxActive

(int) 最大活动连接数:连接池在同一时间能够分配的最大活动连接的数量,如果设置成非正数则表示不限制。默认为100

maxIdle

(int)最大空闲连接数:连接池中容许保持空闲状态的最大连接数量,超过的空闲连接将被释放。

 如果设置为负数表示不限制 

如果启用,将定期检查限制连接。

如果空闲时间超过minEvictableIdleTimeMillis则释放连接。(参考testWhileIdle)默认值:100

minIdle

(int)最小空闲连接数:连接池中容许保持空闲状态的最小连接数量,低于这个数量将创建新的连接,如果设置为0 则不创建。如果连接验证失败将缩小这个值。

参考testWhileIdle )默认值来自initialSize:10

initialSize

(int)初始化连接:连接池启动时创建的初始化连接数量。默认值:101.2 版本后支持

maxWait

(int) 最大等待时间:当没有可用连接时,连接池等待连接被归还的最大时间数(单位毫秒)。超过时间则抛出异常,如果设置为-1 表示无限等待。

testOnBorrow

(boolean) 指明是否在从池中取出连接前进行检验, 如果检验失败, 则从池中去除连接并尝试取出另一个。注意: 设置为true 后如果要生效,validationQuery 参数必须设置为非空字符串 。参考validationInterval以获得更有效的验证。默认值是false

testWhileIdle

(boolean)指明连接是否被空闲连接回收器( 如果有) 进行检验。如果检测失败,则连接将被从池中去除。注意:设置为true 后如果要生效,validationQuery 参数必须设置为非空字符串。

testOnConnect

(boolean) 当第一个连接被创建时,是否会被验证。如果一个对象没有通过验证,它将抛出SQLException。注:如果设置为True initsql validationQueryvalidatorclassname参数必须设置为非空字符串。默认值是错误的

testOnReturn

(boolean) 指明是否在归还到池中前进行检验注:设置为true 后如果要生效,validatorclassname validationQuery参数必须设置为非空字符串。默认值是false

validationQuery

(String)在将连接返回给调用者之前,SQL 查询,用来验证从连接池取出的连接。如果指定,则查询必须是一个SQL SELECT 并且必须返回至少一行记录。查询不必返回记录,但这样将不能抛出SQL异常。默认值是null。示例值:SELECT 1(mysql), select 1 from dual(oracle), SELECT 1(MS Sql Server)

validationQueryTimeout

(int) 连接验证查询失败的超时秒数。这是通过调用java.sql.Statement.setQueryTimeout thevalidationQuery执行的()。连接池本身不超时的查询,它仍然是JDBC驱动程序来执行查询超时。一个小于或等于零的值将禁用这个特性。默认值是1

validatorClassName

(String)一个类实现org.apache.tomcat.jdbc.pool.Validator这个接口,并提供一个不带参数的构造函数(可能是隐式的)的类名。如果具体,类将被用于创建一个验证器实例然后代替任何验证查询来验证连接。默认值是null。一个例子是com.mycompany.projectSimpleValidator

timeBetweenEvictionRunsMillis

(int)在空闲连接回收器线程运行期间休眠的时间值, 以毫秒为单位。这个值不应该低于1s。它规定我们检查空闲、放弃的连接的频率,和验证空闲连接的频率。如果设置为非正数, 则不运行空闲连接回收器线程。默认值是50005s)。

numTestsPerEvictionRun

(int) Property not used in tomcat-jdbc-pool.

minEvictableIdleTimeMillis

(int) 连接池中,连接的可空闲的时间,超过就被收回。单位毫秒。默认值是60000(60 s)

accessToUnderlyingConnectionAllowed

(boolean) Property not used.

removeAbandoned

(boolean)标记是否删除泄露的连接,如果他们超过了removeAbandonedTimout 的限制。如果设置为true,连接被认为是被泄露并且可以被删除, 如果空闲时间超过removeAbandonedTimeout。 设置为true 可以为写法糟糕的没有关闭连接的程序修复数据库连接。参考logAbandoned。默认值为false

removeAbandonedTimeout

(int) 泄露的连接可以被删除的超时值。单位秒,应设置为应用中查询执行执行时间最长的时间。

logAbandoned

(boolean) 标记当Statement 或连接被泄露时是否打印程序的stack traces 日志。为每一连接进行日志记录增加消耗,因为堆栈跟踪的生成。默认为false

connectionProperties

(String)当建立新的连接时连接属性将被发送到我们的JDBC驱动程序。格式的字符串必须[propertyName =属性;]。注意,“用户密码属性将显式传递,所以他们不需要包括在这里。默认值是null

poolPreparedStatements

(boolean) Property not used.

maxOpenPreparedStatements

(int) Property not used.

 

Tomcat JDBC新增属性

Attribute

Description

initSQL

(String) 当第一次创建连接时,要运行的自定义查询。默认值为空。

jdbcInterceptors

(String) jdbc拦截器——jdbc-pool的高级扩展属性)用分号分隔的、继承org.apache.tomcat.jdbc.pool.JdbcInterceptor的类名列表。这些拦截器将被插入到对 java.sql.Connection操作之前的拦截器链上。 
预制的拦截器有: 
org.apache.tomcat.jdbc.pool.interceptor.ConnectionState -
追踪自动提交、只读状态、catalog和事务隔离等级等状态。org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer - 追踪打开的statement,当连接被归还时关闭它们。

更多预制拦截器详细描述请参见JDBC拦截器部分JDBC Interceptors section.

validationInterval

(long)避免过度验证,保证验证不超过这个频率——以毫秒为单位。如果一个连接应该被验证,但上次验证未达到指定间隔,将不再次验证。默认值30000(30 seconds).

jmxEnabled

(boolean) 是否将连接注册到JMX默认值是true.

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

abandonWhenPercentageFull

(int)正在被使用的连接超过这个百分比以前被丢弃的连接不会被断开或报告。这个值应被设为0-100之间。默认值为0,意味着达到 removeAbandonedTimeout 时将被尽快关闭。

maxAge

(long)保持连接的最大毫秒数。当一个连接被归还时,连接池将检查是否满足:现在时间-连接时长>maxAge,如果条件满足,连接将被关闭而不是回到池中。默认值为0,标识禁用该功能。

useEquals

(boolean) 如果希望ProxyConnection类使用String.equals方法对比方法名,设为true;否则将使用==判断。这个属性不会影响单独配置的拦截器。

suspectTimeout

(int)以秒为单位的超时时间(怀疑超时)。默认值是0。类似 removeAbandonedTimeout,但不会将连接丢弃甚至关闭,如果logAbandonedtrue,则只是记录一个警告。如果这个值小于等于0,不会有怀疑超时检测被执行。怀疑检测只有当超时时间大于0并且连接未丢弃,或者丢弃检测被禁用的情况下才占用空间。如果一个连接被怀疑,将记录一条警告消息,并发送一个JMX通知。

rollbackOnReturn

(boolean) 如果autoCommit==false,当连接被归还时,通过调用连接的rollback方法中断事务。默认值false.

commitOnReturn

(boolean) 如果autoCommit==false,当连接被归还时,通过调用连接的commit方法完成事务。如果rollbackOnReturn==ture,这个属性将被忽略。默认值false.

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时,这个属性非常有用。默认值null

dataSourceJNDI

(String) 用来建立数据连接的JNDI名称。参考dataSource属性。默认值null

useDisposableConnectionFacade

(boolean)如果您希望在连接上建立一道屏障防止连接关闭之后被重新使用,设置这个属性为true。这个属性用来预防线程保持已关闭连接的引用,并在上面执行查询动作。默认值true.

logValidationErrors

(boolean) 如果设置为true,将在验证相位时向日志文件写入错误。如果值为true,错误将被记录为SEVER。默认值是false以向后兼容。

propagateInterruptState

(boolean)设置这个属性为true,可以传播一个被中断的线程(还没有清除中断状态)的中断状态。默认值为false以向后兼容。

ignoreExceptionOnPreLoad

(boolean) 是否初始化库时忽略连接创建错误标志。设置为true,在初始化连接池时忽略连接创建错误。设置为false,在初始化连接池失败时抛出异常。默认值false.

 

猜你喜欢

转载自ziyoulopp.iteye.com/blog/2313057