Show Table of Contents
6.6. 数据源配置
6.6.1. 数据源参数
表 6.3. XA 和非 XA 数据源共用的数据源参数
| 参数 | 描述 |
|---|---|
| jndi-name | 数据源的唯一 JNDI 名称。 |
| pool-name | 数据源的管理池的名称。 |
| enabled | 是否启用数据源 |
| use-java-context |
是否绑定数据源到全局 JNDI。
|
| spy |
启用 JDBC 层的
spy 功能。这会将所有 JDBC 通讯记录到数据源。请注意 logging 子系统里的日志类别 jboss.jdbc.spy 的级别也必须设置为 DEBUG。
|
| use-ccm | 启用缓存连接管理者。 |
| new-connection-sql | 当连接被添加到连接池时会执行的 SQL 语句。 |
| transaction-isolation |
下列值之一:
|
| url-delimiter | 用于高可用性(HA)群集数据库的 connection-url 的分隔符。 |
| url-selector-strategy-class-name | 实现 org.jboss.jca.adapters.jdbc.URLSelectorStrategy 接口的类。 |
| security |
包含设置安全性的子元素。请参考 表 6.8 “安全性参数”。
|
| validation |
包含设置有效性的子元素。 请参考 表 6.9 “用于检验的参数”。
|
| timeout |
包含设置超时的子元素。请参考 表 6.10 “超时参数”。
|
| statement |
包含设置语句的子元素。请参考 表 6.11 “语句参数”。
|
表 6.4. Non-XA 数据源参数
| 参数 | 描述 |
|---|---|
| jta | 为非 XA 数据源启动 JTA 集成。不适用于 XA 数据源。 |
| connection-url | JDBC 驱动连接的 URL。 |
| driver-class | JDBC 驱动类的全限定名。 |
| connection-property |
传递给
Driver.connect(url,props) 方法的任意连接属性。每个 connection-property 都指定一个字符串/值对。属性名称来自元素名称,而值来自元素的内容。
|
| pool |
包含设置池的子元素。请参考 表 6.6 “non-XA 和 XA 数据源公用的池参数”。
|
表 6.5. XA 数据源参数
| 参数 | 描述 |
|---|---|
| xa-datasource-property |
分配给
XADataSource 类实现的属性。通过 name=value 指定。如果存在 setName 格式的 setter 方法,这个属性将通过调用 setName(value) 格式的 setter 方法来设置。
|
| xa-datasource-class | javax.sql.XADataSource 实现的全限定名。
|
| driver |
对包含 JDBC 驱动的 classloader 模块的唯一引用。有效的格式是 driverName#majorVersion.minorVersion。
|
| xa-pool |
包含设置池的子元素。请参考 表 6.6 “non-XA 和 XA 数据源公用的池参数” 和 表 6.7 “XA 池参数”。
|
| recovery |
包含设置恢复的子元素。请参考 表 6.12 “恢复参数”。
|
表 6.6. non-XA 和 XA 数据源公用的池参数
| 参数 | 描述 |
|---|---|
| min-pool-size | 池里可保留的连接的最小数量。 |
| max-pool-size | 池里可保留的连接的最大数量。 |
| prefill | 是否预先填充连接池。空的元素表示 true 值。默认为 false。 |
| use-strict-min | pool-size 是否是严格规定的。默认为 false。 |
| flush-strategy |
在发生错误时是否冲刷池。有效值为:
默认值为
FailingConnectionOnly。
|
| allow-multiple-users | 指定是否有多个用户将通过 getConnection(user, password) 访问数据源,且内部池类型是否应该计入在内。 |
表 6.7. XA 池参数
| 参数 | 描述 |
|---|---|
| is-same-rm-override | javax.transaction.xa.XAResource.isSameRM(XAResource) 类是否返回 true 或 false。 |
| interleaving | 是否启用 XA 连接工厂的 interleaving。 |
| no-tx-separate-pools |
是否为每个上下文创建单独的子池。对于 Oracel 数据源来说这是必需的,它不允许 XA 连接既在 JTA 内部又在外部使用。
使用这个选项将导致您的池大小两倍于
max-pool-size,因为这实际会创建两个池。
|
| pad-xid | 是否拆分 Xid。 |
| wrap-xa-resource |
是否将 XAResource 包裹在
org.jboss.tm.XAResourceWrapper 实例里。
|
表 6.8. 安全性参数
| 参数 | 描述 |
|---|---|
| user-name | 创建新连接使用的用户名。 |
| password | 创建新连接使用的密码。 |
| security-domain | 非 XA 数据源参数 |
| reauth-plugin | 定义一个重验证插件以用于重新验证物理连接。 |
表 6.9. 用于检验的参数
| 参数 | 描述 |
|---|---|
| valid-connection-checker |
提供
SQLException.isValidConnection(Connection e) 方法来检验连接的 org.jboss.jca.adaptors.jdbc.ValidConnectionChecker 接口的实现。异常表示连接已被销毁。它覆盖了 check-valid-connection-sql 参数(如果存在)。
|
| check-valid-connection-sql | 检查池连接有效性的 SQL 语句。当从池里获取受管连接进行使用时它会被调用。 |
| validate-on-match |
指定当连接工厂试图对给定的集合匹配受管连接时是否执行连接级别的检验。
我们通常不会同时指定
validate-on-match 和background-validation 为 true。但客户在使用连接前必须进行检验时则需要 Validate-on-match。这个参数默认为 false。
|
| background-validation |
指定连接在背景线程上进行检验。背景检验不和
validate-on-match 一起使用是一种性能优化。如果 validate-on-match 为 true 时,使用 background-validation 可能导致冗余的检查。背景检验可能会让用户用到有问题的连接(连接在返回给客户和检验扫描之间可能会出现问题),所以客户应用程序必须考虑到这种可能性。
|
| background-validation-millis | 背景检验运行的时间(毫秒)。 |
| use-fast-fail |
如果为 true,在第一次尝试时如果连接无效则失败。默认为
false。
|
| stale-connection-checker |
提供 Boolean
isStaleConnection(SQLException e) 方法的 org.jboss.jca.adapters.jdbc.StaleConnectionChecker 实例。如果这个方法返回 true,异常将包裹在 org.jboss.jca.adapters.jdbc.StaleConnectionException(SQLException 的子类)里。
|
| exception-sorter |
提供 Boolean
isExceptionFatal(SQLException e) 方法的 org.jboss.jca.adapters.jdbc.ExceptionSorter 实例。这个方法检验异常是否作为 connectionErrorOccurred 消息传播到所有的 javax.resource.spi.ConnectionEventListener 实例上。
|
表 6.10. 超时参数
| 参数 | 描述 |
|---|---|
| use-try-lock | 使用 tryLock() 而不是 lock()。在指定秒数内试图获取锁,而不是在锁不可用时立即失败。默认值为 60 秒。如果超时为 5 分钟,则应设置 <use-try-lock>300</use-try-lock>。 |
| blocking-timeout-millis | 等待连接时阻塞的最长时间(毫秒)。超过这个时间后,异常将被抛出。这只是在等待连接许可时阻塞,如果创建新连接花费很长时间并不会抛出异常。默认值为 30000,也就是 30 秒。 |
| idle-timeout-minutes |
在空闲连接关闭前的最长等待时间(分钟)。实际的最长时间取决于 idleRemover 扫描时间,它是任何池的最小
idle-timeout-minutes 的一半。
|
| set-tx-query-timeout |
是否根据事务超时前剩下的时间设置查询超时。如果没有事务存在则使用任何配置好的查询超时时间。默认为
false。
|
| query-timeout | 查询的超时时间(秒)。默认是无超时。 |
| allocation-retry | 在抛出异常前,重新尝试分配连接的次数。默认为 0,异常将在第一次失败时抛出。 |
| allocation-retry-wait-millis |
在重新分配连接前应等待的时间(毫秒)。默认值是 5000,也就是 5 秒。
|
| xa-resource-timeout |
如果为非零值,这个值将传递给
XAResource.setTransactionTimeout 方法。
|
表 6.11. 语句参数
| 参数 | 描述 |
|---|---|
| track-statements |
当连接返回池且语句返回到 prepared 语句缓存时是否检测未关闭的语句。如果为 false,则不会对语句进行追踪。
有效值
|
| prepared-statement-cache-size | 每个连接的 prepared 语句的个数,存在于 Least Recently Used (LRU) 缓存里。 |
| share-prepared-statements |
是否两次请求相同的底层 prepared 语句而不关闭它。默认是
false。
|
表 6.12. 恢复参数
| 参数 | 描述 |
|---|---|
| recover-credential | 安全域用于恢复的用户名/密码对。 |
| recover-plugin |
用于恢复的
org.jboss.jca.core.spi.recoveryRecoveryPlugin 类的实现。
|

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.