连接池设置

使用此页面来配置连接池设置。

此管理控制台页面是 JDBC 数据源和 JMS 连接工厂的公共页面(统一的队列或主题连接工厂)。 要查看此页面,路径视资源类型而定,但通常应选择资源类型的实例,然后单击连接池。 例如:
  • 单击 资源 > JDBC > 数据源 > data_source > [其他属性] 连接池属性
  • 单击 资源 > JMS-> 队列连接工厂->queue_connection_factory-> [其他属性] 连接池
避免麻烦: 应用程序客户机中不支持连接池。 应用程序客户机将直接调用数据库,而不通过数据源来调用数据库。 如果您想使用应用程序客户机中的 getConnection() 请求,请使用 Rational® Application Developer 或组装工具在应用程序客户机部署描述符中配置 JDBC 提供程序。 在应用程序客户机与数据库之间建立了连接。 应用程序客户机没有连接池,但是您可以在客户机部署描述符中配置 JDBC 提供程序设置。

连接超时

指定时间间隔(以秒计),这个时间间隔过后连接请求超时并抛出 ConnectionWaitTimeoutException。

此值指出当空闲池中没有连接可用且无法创建新连接时,连接请求等待的秒数。 这通常是由于特定连接池中的连接数达到了最大值造成的。

例如,如果“连接超时”设置为 300,并且最大连接数都在使用,那么池管理器等待 300 秒以使物理连接可供使用。 如果物理连接在这段时间内不可用,那么池管理器将产生 ConnectionWaitTimeout 异常。 在大多数情况下,不应重试 getConnection() 方法;如果需要更长的等待时间,您应该增大“连接超时”设置值。 如果应用程序捕捉到 ConnectionWaitTimeout 异常,那么请查看需要的应用程序连接池用法,并相应地调整连接池和数据库。

如果“连接超时”设置为 0,那么在连接可用之前,需要池管理器一直等下去。 应用程序完成事务并将连接返回到池时或连接数降到“最大连接数”值之下时会发生此情况,并创建新的物理连接。

如果“最大连接数”设置为 0,那么会启用有限数目的物理连接,并且“连接超时”值会被忽略。

信息
数据类型 整数
单元
缺省值 180
范围 0 到最大整数

最大连接数

指定可以在这个池中创建的物理连接的最大数目。

这些是到后端资源的物理连接。 达到此数时,将不再创建新的物理连接。 并且请求者会等待直到当前使用的物理连接返回到池中或直到显示 ConnectionWaitTimeoutException 错误。 例如,如果“最大连接数”值设置为 5,并已使用了 5 个物理连接,那么池管理器等待连接超时中指定的时间,直到物理连接变为空闲。

了解可能向后端(如 DB2® 数据库或 CICS® 服务器)请求连接的连接池数目可帮助您确定“最大连接数”属性的值。

[AIX Solaris HP-UX Linux Windows][IBM i]对于使用相同数据源配置或 J2C 连接工厂配置的多个独立应用程序服务器,每个服务器都存在单独的物理连接池。 如果克隆这些相同的应用程序服务器,那么 WebSphere® Application Server (基本) 将为每个克隆实现单独的连接池。

[AIX Solaris HP-UX Linux Windows][IBM i]所有这些连接池都对应于相同的数据源或连接工厂配置。 因此所有这些连接池都可能同时向同一后端资源请求连接。 在此控制台面板上设置的单个“最大连接”值将应用于每个连接池。 因此,设置较高的“最大连接数”值可能会导致连接请求过多从而使后端资源严重不足。

信息
数据类型 整数
缺省值 10
范围 0 至最大整数

如果“最大连接数”设置为 0,那么会忽略连接超时值。

提示: 为了获得更好的性能,请将连接池设置为小于 Web 容器的最大线程池连接数的值。 要配置 Web 容器的最大线程数,请单击 服务器 > 服务器类型 > WebSphere 应用程序服务器 > 服务器 > 线程池,然后修改 Web 容器属性。 较低设置 (例如, 10 到 30 个连接) 比较高设置 (例如, 100) 执行得更好。
在某些情况下,最好使用不同的设置:
  • 在同一线程上使用两个或多个连接时。

    对于使用的每个 Web 容器线程,必须有一个连接池线程可用。 对于异步 Bean ,每个 Web 请求可能需要多个连接池线程。 因此,使连接池最大线程数高于 Web 容器线程池。

  • 将两个或多个连接用于每个 Web 容器线程时。

    将 Web 容器线程池设置为 Web 容器的最大线程池连接数的 2 倍。

您可使用 Tivoli® Performance Viewer 查找池中最优连接数。 如果并行等待者的数目大于 0,但处理器负载未接近 100%,那么考虑增加连接池大小。 如果使用百分比值一直低于正常工作负载,那么考虑减少池中的连接数。

最小连接数

指定要保持的最小物理连接数。

如果连接池的大小处于最小连接池大小或比它还小,那么“未使用超时”线程不废弃物理连接。 但是,池不会只为了确保维持最小连接池大小而创建连接。 同样,如果您设置时效超时值,那么废弃时效到期的连接,而无论最小池大小设置是什么。

例如,如果“最小连接数”值设置为 3,并且已创建了一个物理连接,那么“未使用超时”线程不废弃该连接。 同样的原因,线程不自动创建达到最小连接数设置的两个其他物理连接。

信息
数据类型 整数
缺省值 0
范围 0 到最大整数

收集时间

指定运行池维护线程的时间间隔,以秒计。

例如,如果“收集时间”设置为 60,那么池维护线程每 60 秒运行一次。 此收集时间的时间间隔影响“未使用超时”和“时效超时”设置的准确度。 时间间隔越小,准确度越大。 如果启用了池维护线程,那么您应该将“收集时间”值设置为小于“未使用超时”和“时效超时”的值。 当池维护线程运行时,它废弃所有未使用的时间长于“未使用超时”中指定的时间值的连接,直到它达到“最小连接数”中指定的连接数为止。 池维护线程还废弃所有活动时间长于“时效超时”中指定的时间值的连接。

“收集时间”时间间隔还影响性能。 更短的时间间隔意味着池维护线程将更频繁的运行并降低性能。

要禁用池维护线程,请将“收集时间”设置为 0,或者将“未使用超时”和“时效超时”都设置为 0。 禁用池维护线程的建议方法是将“收集时间”设置为 0,而忽略“未使用超时”和“时效超时”。 但是,如果“未使用超时”和“时效超时”都设置为 0,那么池维护线程将运行。 将废弃由于采用非零超时值而超时的物理连接,以及在已用池(或共享池)中驻留的那些连接,因为这些连接的保持时间已经长于为“时效超时”设置的时间间隔。

信息
数据类型 整数
单元
缺省值 180
范围 0 到最大整数

未使用超时

指定废弃未使用的或空闲连接后的时间间隔,以秒为单位。

为了优化性能,设置“未使用超时”值高于“收集超时”值。 如果当前连接数超过最小连接数设置,那么仅废弃未使用的物理连接。 例如,如果“未使用超时”值设置为 120,并且启用池维护线程(收集时间不是 0),那么将废弃 2 分钟没有使用的任何物理连接。

此超时的精度和性能受“收集时间”值影响。 请参阅 收获时间 以获取更多信息。

信息
数据类型 整数
单元
缺省值 1800 年
范围 0 到最大整数

时效超时

指定废弃物理连接之前的时间间隔(以秒计)。

将“时效超时”设置为 0 支持活动的物理连接无限期地保留在池中。 为了优化性能,应将“时效超时”值设置为高于“收集超时”值。

例如,如果“时效超时”值设置为 1200,并且“收集时间”值不是 0,那么从池中废弃已经存在 1200 秒(20 分钟)的所有物理连接。 唯一的例外情况是:如果达到时效超时后该连接正被某个事务使用,那么应用程序服务器将不会废弃该连接,直到事务完成且连接关闭后为止。

此超时的精度和性能受“收集时间”值影响。 请参阅 收获时间 以获取更多信息。

信息
数据类型 整数
单元
缺省值 0
范围 0 到最大整数