Java IBM WAS:最大并行数据库连接数

Java IBM WAS:最大并行数据库连接数,java,websphere,data-warehouse,pool,ibm-was,Java,Websphere,Data Warehouse,Pool,Ibm Was,我有一个用Java/JavaEE开发的web应用程序,连接到后端的仓库。 我们使用IBM WAS作为应用服务器,其中定义了用于数据库连接的数据源。 连接池已设置为最大池大小30。 有时数据库查询可能需要1-2分钟,因此用户在前端等待 当40个不同的并发用户访问一个在后端运行查询的屏幕时(需要1-2分钟),会发生什么情况 根据WAS设置,最多可以有30个到的连接 DB,对吗 WAS将等待数据库连接完成 处理并返回到池的连接;所以它可以被分配 到队列中的下一个请求 不幸的是,我无法回答WebSphe

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

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

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

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

    TSQL:

    甲骨文:

    DBMS_LOCK.sleep(seconds => TIME_);
    
    等等

    然后可以使用ApacheJMeter()模拟用户请求。有各种各样的请求、侦听器等等

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


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

    在您的情况下,结果将是:30个连接将处于处理状态,其他10个将处于等待状态。如果一个正在处理的连接重新进入数据源,那么等待连接的一个将开始工作。

    感谢您的输入。关于与DB交互的公共网站的后续问题。为了处理如此繁重的并发负载,要么它们有一个巨大的连接池和非常短命的事务,对吗?有时重新定义数据库模式或仔细观察数据库查询是有用的。巨大的连接池,这不是坏事。这一切都取决于您的服务器负载。
    DBMS_LOCK.sleep(seconds => TIME_);