无法打开JDBC连接,在负载测试期间无法获取Java的托管连接

时间:2018-07-23 07:57:43

标签: jboss performance-testing database-testing

在与多个用户进行负载测试期间发现以下错误,而不是在单个SOAP请求的情况下。

  

无法打开JDBC连接进行事务;嵌套的异常是java.sql.SQLException:javax.resource.ResourceException:IJ000453:无法获取Java的托管连接:

2 个答案:

答案 0 :(得分:1)

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

  1. 尚未针对应用程序的最大负载正确调整数据源连接池(例如,最大池大小和阻塞超时毫秒数)。
  2. 该应用程序正在泄漏连接,因为它没有关闭它们,从而将它们返回到池中。
  3. 与数据库连接的线程正在挂起并保持连接。

请确保已根据min-pool-size设置了相应数据源的max-pool-sizeapplication load testing值,并且在应用程序代码内部使用后连接已关闭。

答案 1 :(得分:0)

您很可能已经在应用程序中找到了bottleneck,似乎它无法处理那么多虚拟用户。最简单的解决方案是在Bug跟踪器系统中引发问题,并让开发人员进行调查。

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

  1. 您的应用程序或应用程序服务器配置不适合高负载(即,JBOSS JDBC Connection池配置中的连接数低于给定要模拟的虚拟用户的数量,请尝试修改{{ 1}}和min-pool-size值以匹配虚拟用户数量
  2. 您的数据库超载,因此不能接受那么多查询。在这种情况下,您可以考虑分别对数据库进行负载测试(即直接通过JMeter的JDBC Request采样器向数据库发出请求,而无需访问应用程序的SOAP端点。)请参阅The Real Secret to Building a Database Test Plan With JMeter文章以了解有关数据库负载的更多信息测试概念。