可以在管理控制台的“连接池属性”面板上更改连接池的各个属性值。
指定连接请求超时并抛出 ConnectionWaitTimeoutException 之前的时间间隔(以秒计)。
此值指示发生以下情况时对连接的请求会等待的秒数:空闲池中没有连接可用并且不可 以创建任何新的连接,这通常因为特定连接池中的连接数已经达到最大值。例如,如果将“连接超时”设置为 300 并且最大数目的连接全部都在使用中,则池管理器会等待 300 秒以便某个物理连接变为可用的。如果在此期间物理连接不可用,则池管理器会触发 ConnectionWaitTimeout 异常。重试 getConnection() 方法通常是没有意义的;如果需要等待较长的时间,则应该增大“连接超时”设置值。如果 ConnectionWaitTimeout 异常被应用程序捕获,则管理员应该查看应用程序对连接池的预期使用情况并相应地调整连接池和数据库。
如果将“连接超时”设置为 0,则如有必要,池管理器会等待足够长的时间,直到某个连接可用为止。当应用程序完成事务并将连接返回给连接池时,或者当连接的数目下降到“最大连接数”以下从而允许创建新的物理连接时,就会发生这种情况。
数据类型 | 整数 |
单位 | 秒 |
缺省值 | 180 |
范围 | 0 至最大的整数 |
指定可以在此连接池中创建的最大物理连接数。
这些都是至后端资源的物理连接。一旦达到此数目,则不会再创建新的物理连接,并且请求者会一直等待,直到当前使用的物理连接返回至连接池或池管理器发出 ConnectionWaitTimeout 异常为止。
例如,如果将“最大连接 数”值设置为 5 并且有五个物理连接正在使用,则池管理器会等待“连接超时”中指定的时间量,以便某个 物理连接变为空闲的。
如果将“最大连接数”设置为 0,则允许连接池无限地增长。这样做也有其副作用,即导致“连接超时”值被忽略。
如果多个独立应用程序服务器使用同一数据源,则对于每个应用程序服务器,都会存在一个池。如果使用了克隆,则对于每个克隆,都会存在一个数据池。在配置数据库最大连接数时,了解数据池的数目是很重要的。
数据类型 | 整数 |
缺省值 | 10 |
范围 | 0 至最大的整数 |
指定要维持的最小物理连接数。
如果连接池的大小小于或等于最小连接池大小,则“未使用超时”线程不会废弃物理连接。但是,连接池不会只是为了确保维持最小连接池大小而创建连接。另外,如果为“时效超时”设置了值,则过期的连接将被废弃,而不考虑最小池大小设置。
数据类型 | 整数 |
缺省值 | 1 |
范围 | 0 至最大的整数 |
指定运行池维护线程的时间间隔(以秒计)。
例如,如果将“收集时间”设置为 60,则池维护线程每 60 秒运行一次。“收集时间”间隔会影响“未使用超时”和“时效超时”这两项设置的准确度。时间间隔越小,准确度就越高。如果启用了池维护线程,则将“收集时间”值设置为小于“未使用超时”和“时效超时”这两者的值。当池维护线程运行时,如果任何连接在超过“未使用超时”中指定的时间值后仍 未被使用,则该线程会废弃这些连接,直到达到“最小连接数”中指定的连接数为止。如果任何连接在超过“时效超时”中指定的时间值后仍保持活动,则池维护线程也会废弃这些连接。
“收集时间”间隔还会影响性能。更短的时间间隔意味着,池维护线程运行更频繁并且降低了性能。
数据类型 | 整数 |
单位 | 秒 |
缺省值 | 180 |
范围 | 0 至最大的整数 |
指定废弃未使用或空闲连接之前的时间间隔(以秒计)。
将“未使用超时”值设置为大于“收集超时”值,以获得最佳性能。仅在当前连接数超过“最小连接数”设置时,才会废弃未使用的物理连接。例如,如果未使用超时值设置为 120 并且启用了池维护线程(“收集时间”不为 0),则任何保持未使用时间达两分钟的任何物理连接将被 废弃。注意,此超时的准确度以及性能都受“收集时间”值影响。有关更多信息,请参阅“收集时间”。
数据类型 | 整数 |
单位 | 秒 |
缺省值 | 1800 |
范围 | 0 至最大的整数 |
指定废弃物理连接之前的时间间隔(以秒计)。
将“时效超时”设置为 0 会支持活动的物理连接无限期地保留在池中。将“时效超时”值设置得比“收集超时”值要高,以获得最佳性能。例如,如果 将“时效超时”值设置为 1200 且“收集时间”值不为 0,则任何存在时间达 1200 秒(20 分钟)的物理 连接都会从池中被废弃。注意,此超时的准确度以及性能都受“收集时间”值影响。有关更多信息,请参阅 “收集时间”。
数据类型 | 整数 |
单位 | 秒 |
缺省值 | 0 |
范围 | 0 至最大的整数 |
指定在检测到旧连接或严重连接错误时清除连接的方式。
数据类型 | 字符串 |
缺省值 | EntirePool |