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

让我告诉您更多有关项目和我们行动的信息。
我们的BPS流程旨在管理与3个系统的某些交互。基本上,它分为两个部分-首先在一个系统中创建CSTATE INSTANCE,然后等待一会儿,然后在实例上下文中进行SELECT OFFER。
在现实生活中,它看起来像:用户想要获得产品,应用程序向系统询问要约,然后用户从可用要约中选择要约。
在BPS中,第一部分是简单明了的过程,第二部分分布在两个流程上-一个流程是使用新报价刷新信息,另一个流程是等待用户选择其中一个。
我们的目标是在负载测试中承受约1000-1500条模拟线程。外部系统由LoadUI执行的模型模拟。

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

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

[2015-07-28 17:47:02,573]错误{org.wso2.carbon.bpel.core.ode.integration.BPELProcessProxy}-错误处理MEX的响应为null
java.lang.NullPointerException
        在org.wso2.carbon.bpel.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一样大)。

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

最佳答案

在BPS 3.5.0版本中解决,请参阅发行说明

关于mysql - 在WSO2BPS上执行负载测试时出现NullPointerException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31720767/

10-10 05:04