0

我有一个用 Java/Java EE 开发的 Web 应用程序,连接到后端的仓库。我们将 IBM WAS 作为应用程序服务器,并在其中定义了一个用于数据库连接的数据源。连接池的最大池大小设置为 30。有几次数据库查询可能需要 1-2 分钟,因此用户在前端等待。

当 40 个不同的并发用户访问在后端运行查询的屏幕需要 1-2 分钟时会发生什么情况。

  1. 根据 WAS 设置,最多可以有 30 个到 DB 的连接,对吧?
  2. WAS 将等待数据库连接完成处理并将连接返回池;所以它可以分配给队列中的下一个请求?
4

2 回答 2

0

不幸的是,我无法回答 WebSphere 在这种情况下是如何工作的,但您可以尝试使用 DB 的延迟函数来模拟您的查询:

TSQL:

--wait for 1 minute
WAITFOR DELAY '00:01'

甲骨文:

DBMS_LOCK.sleep(seconds => TIME_);

等等。

然后你可以使用 apache jmeter( http://jmeter.apache.org/ ) 来模拟用户请求。有各种请求,监听器等等。

Websphere 管理控制台有Monitor and Tuning部分,您可以在其中为数据源和 http 请求池活动配置自己的监视器。

通过这种方式,我们调试了应用程序的瓶颈。

于 2013-09-25T06:54:48.933 回答
0

在您的情况下,结果将是:30 个连接将处于处理状态,其他 10 个连接将处于等待状态。如果处理连接之一返回到数据源,则等待连接之一将开始他的工作。

于 2013-09-27T06:31:24.393 回答