0

在 WSO2 BPS 3.2.0 上执行负载测试时,我们遇到了这个问题。

让我告诉你更多关于项目和我们的行动。我们的 BPS 流程旨在管理与 3 个系统的一些交互。基本上它在两个部分上“传播” - 第一个在一个系统中创建实例,然后稍等,然后在实例上下文中选择提供。在现实生活中,它看起来像:用户想要获得产品,应用程序向系统询问要约,然后用户从可用的要约中选择要约。在 BPS 中,第一部分是一个直截了当的过程,第二部分分布在两个流程上——一个是用新的报价刷新信息,另一个是等待用户选择其中一个。我们的目标是在负载测试中支持大约 1000-1500 个模拟线程。外部系统由 LoadUI 执行的模型模拟。

如果我们在进程的部署描述符中禁用“进程级监控事件”(将其设置为“无”),我们就可以实现我们的目标。数小时内一切顺利。

但是,如果我们启用此功能(并且我们需要),一切都会很快出现错误(大约 100-200 次运行):

[2015-07-28 17:47:02,573] 错误 {org.wso2.carbon.bpel.core.ode.integration.BPELProcessProxy} - 在 org.wso2.carbon.bpel 处理 MEX null java.lang.NullPointerException 的响应时出错.core.ode.integration.BPELProcessProxy.onResponse(BPELProcessProxy.java:402) 在 org.wso2.carbon.bpel.core.ode.integration.BPELProcessProxy.onAxisServiceInvoke(BPELProcessProxy.java:187) 在 [....等等....]

在第一次出现此错误后,会出现另一种类型 - 其他线程在超时后刚刚下降。

看来数据库没问题(顺便说一下,它是 MySQL 5.6.25)。仪表板没有显示极端水平的输入或输出。

所以我认为 BPS 本身就是一个瓶颈。我们给了它 8gb 堆,并且它的 conf 选项设置为用于极端数量的线程(如果可能设置了负值,如果没有设置 - 就像 100000 一样大得离谱)。

有人遇到过这个问题吗?非常感谢任何帮助。

4

1 回答 1

0

BPS 3.5.0版本解决,参考release-notes

于 2015-11-18T14:54:46.157 回答