0

我研究了 Websphere Application Server Express v6.1 的 Websphere 文档“连接生命周期”,并在网上搜索了以下问题的答案。

连接池状态

  1. 选择了预测试现有的池连接 - 重试间隔为零秒
  2. 选择了预测试新连接 - 重试次数为零,重试间隔为 0
  3. 预测试 SQL 字符串是“Select 'Hello' from dual”

如果预测试失败会发生什么

  1. inFreePool 或 InUse 状态下没有连接?
  2. inFreePool 状态有连接吗?

我指的是“数据源 > data_source > Websphere Application Server 数据源”中的设置

4

1 回答 1

0

应用程序调用 getConnection

  1. 如果 FreePool 中有连接,则使用预测试 SQL 字符串对其进行测试,如果通过测试,则将其交给应用程序。
    1. 如果测试失败,则根据清除策略清除池。
      1. 如果清除策略是EntirePool,则清除整个空闲池并获取和测试新连接。
      2. 如果清除策略为failedConnectionOnly,则丢弃失败的连接,并从池中获取另一个连接并进行测试。
      3. 如果池中没有连接,则创建并测试一个新连接。如果新连接失败,则会引发异常(类型?)。

  2. 如果空闲池中没有连接,则创建一个新连接,进行测试,如果通过测试,则将其交给应用程序。如果新连接失败,则会引发异常。

于 2009-07-23T20:34:10.240 回答