1

在多个用户的负载测试期间注意到以下错误,而不是在单个 SOAP 请求的情况下。

无法为事务打开 JDBC 连接;嵌套异常是 java.sql.SQLException: javax.resource.ResourceException: IJ000453: Unable to get managed connection for java:

4

2 回答 2

1

这可能是由于以下任何原因造成的:

  1. 数据源连接池未正确调整(例如 max-pool-size 和 blocking-timeout-millis)以达到应用程序的最大负载。
  2. 应用程序正在泄漏连接,因为它没有关闭它们并因此将它们返回到池中。
  3. 与数据库连接的线程挂起并保持连接。

确保相应数据源的min-pool-sizemax-pool-size值根据application load testing在应用程序代码中使用后关闭连接。

于 2018-07-24T09:56:30.300 回答
0

您很可能在应用程序中发现了瓶颈,它似乎无法处理那么多虚拟用户。最简单的解决方案是在您的错误跟踪系统中提出问题并让开发人员对其进行调查。

如果您需要提供失败的根本原因,我至少可以想到两个原因:

  1. 您的应用程序或应用程序服务器配置不适合高负载(即您的JBOSS JDBC 连接池配置中的连接数低于您模拟的虚拟用户数所要求的数量。尝试修改min-pool-sizemax-pool-size值以匹配虚拟用户
  2. 您的数据库已超载,因此无法接受那么多查询。在这种情况下,您可以考虑单独对数据库进行负载测试(即直接通过 JMeter 的JDBC 请求采样器向数据库发出请求,而不会触及应用程序的 SOAP 端点。)请参阅使用 JMeter 构建数据库测试计划的真正秘密文章以了解更多信息关于数据库负载测试概念。
于 2018-07-23T08:08:00.423 回答