连接池设置

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

此管理控制台页面是一系列资源类型(例如 JDBC 数据源和 JMS 队列连接工厂)的通用页面。要查看此页面,根据资源的类型决定路径,但通常选择资源提供程序的实例,然后选择资源类型的实例,并单击连接池
避免故障: 应用程序客户机中不支持连接合用。应用程序客户机将直接调用数据库,而不通过数据源来调用数据库。如果您想在应用程序客户机中使用 getConnection() 请求,那么请使用 Rational® Application Developer(RAD)或组装工具在应用程序客户机部署描述符中配置 JDBC 提供程序。在应用程序客户机与数据库之间建立了连接。应用程序客户机没有连接池,但是您可以在客户机部署描述符中配置 JDBC 提供程序设置。gotcha

例如,单击资源 > JDBC > JDBC 提供程序 > JDBC_provider > 数据源 > data_source > 连接池属性

JMS 队列连接工厂的路径是:资源 > JMS > 队列连接工厂 > JMS_queue_connection_factory > [其他属性] 连接池属性

“配置”选项卡

连接超时

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

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

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

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

如果最大连接数设置为 0(允许无限多个物理连接数),那么将忽略连接超时值。

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

指定您可以在此池中创建的最大物理连接数。

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

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

[AIX Solaris HP-UX Linux Windows] [iSeries] 对于使用同一数据源配置的多个独立应用程序服务器或 J2C 连接工厂配置,每个服务器都有单独的物理连接池。如果克隆相同的应用程序服务器,那么 WebSphere® Application Server 会为每个克隆实现单独的连接池。

[z/OS] 考虑访问同一资源的服务方的数目;在运行时此数目基本上是“最大连接数”设置的倍数。当服务方调用同一 JDBC 数据源或 J2C 连接工厂配置时,WebSphere Application Server 将为每个服务方实现相应的物理连接池。因此,每个服务方中都有相同的连接池独立存在。您的“最大连接数”设置将应用于其中每一个池。

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

[z/OS] 这些服务方中需要数据源或连接工厂的每个应用程序都可能会尝试同时使用该资源。因此,相应的连接池同时需要来自同一后端的连接。不要将“最大连接数”值设置得过高,以避免连接请求过多而使得数据库或其他企业信息系统(EIS)资源严重不足。

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

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

提示: 要获得更好的性能,将连接池的值设置为小于 Web 容器中最大连接数的值选项。越小的设置(如 10-30 个连接),性能比越高的设置(如 100)更好。

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

最小连接数

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

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

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

数据类型 整型
缺省值 1
范围 0 到最大整数
收集时间

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

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

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

要禁用池维护线程,“收集时间”设置为 0,或“未使用超时”和“时效超时”都设置 为 0。禁用池维护线程的建议方法是将“收集时间”设置为 0,在这种情况下,将忽略“未使用超时”和“时效超时”。但是,如果“未使用超时”和“时效超时”都设置为 0,那么池维护线程将运行,但是仅废弃由于非零超时值引起的超时的物理连接。

数据类型 整型
单元
缺省值 180
范围 0 到最大整数
未使用超时

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

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

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

数据类型 整型
单元
缺省值 1800
范围 0 到最大整数
时效超时

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

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

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

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

数据类型 整型
单元
缺省值 0
范围 0 到最大整数
清除策略

指定检测到失效连接致命连接错误时如何清除连接。

有效值是 EntirePoolFailingConnectionOnly

数据类型 字符串
缺省值
  • EntirePool,用于 J2C 连接工厂和与 JMS 有关的连接工厂
  • EntirePool,用于 WebSphere V4.0 数据源
  • EntirePool,用于通过管理控制台创建的当前版本数据源
  • EntirePool,用于通过 wsadmin AdminConfig 命令进行脚本编制并且调用构建到 WebSphere Application Server 中的 JDBC 模板的当前版本数据源(有关 createUsingTemplate 命令的信息,请参阅信息中心中的“AdminConfig 对象的命令。”一文)。
  • FailingConnectionOnly,用于在 wsadmin 中进行脚本编制但未调用 JDBC 模板的数据源
:
范围
EntirePool
池中的所有连接都标记为失效。立即关闭任何未使用的连接。关闭在使用的连接并在该连接上执行下一个操作期间产生失效的连接异常。应用程序发出的后续 getConnection() 请求会导致打开到数据库的新连接。使用此清除策略时,可能会不必要地关闭池中不是失效连接的一些连接。然而,这种情况不太可能会发生。在多数情况下,EntirePool 的清除策略是最佳选项。
FailingConnectionOnly
仅关闭导致失效的连接异常的连接。虽然此设置消除不必要地关闭有效连接的可能性,但从应用程序角度看来,它使恢复更为复杂。因为仅关闭了当前失败的连接,因此极有可能的是,应用程序发出的下一个 getConnection() 请求从池中返回的连接可能也是失效的,这会导致产生更多失效的连接异常。

连接预测试功能尝试将应用程序与无效的合用的连接隔离。在后端资源(如数据库)停止时,空闲池中可能存在无效的合用的连接。尤其当清除策略为 failingConnectionOnly 时存在此情况;在这种情况下,将失败的连接从池中除去。由于此故障,池中剩余的连接也可能无效。




标有(在线)的链接要求访问因特网。

相关概念
相关任务
相关参考
管理控制台页面功能部件


文件名: udat_conpoolset.html