在WSO2 BPS 3.2.0上执行负载测试时,我们遇到了问题。
让我告诉你更多有关项目和行动的信息。 我们的BPS流程旨在管理与3个系统的一些交互。基本上它是"传播"在两个部分 - 第一个在一个系统中创建INSTANCE,然后等待一点,然后在实例上下文中选择SELECT OFFER。 在现实生活中,它看起来像:用户想要获得产品,应用程序要求系统提供要约,然后用户从可用产品中选择要约。 在BPS中,第一部分是直接进程,第二部分是两个流程 - 一个是用新的报价刷新信息,另一个是等待用户选择其中一个。 我们的目标是在负载测试中保持大约1000-1500个模拟线程。外部系统由LoadUI执行的模型模拟。
如果我们禁用"流程级别监控事件"我们可以实现我们的目标。在部署描述符中(将其设置为" none")我们的流程。一切顺利,顺利几个小时。
但如果我们启用此功能(我们需要),一切都会很快出现错误(大约100-200次运行):
[2015-07-28 17:47:02,573] ERROR {org.wso2.carbon.bpel.core.ode.integration.BPELProcessProxy} - 错误处理MEX的响应null 显示java.lang.NullPointerException at org.wso2.carbon.bpel.core.ode.integration.BPELProcessProxy.onResponse(BPELProcessProxy.java:402) at org.wso2.carbon.bpel.core.ode.integration.BPELProcessProxy.onAxisServiceInvoke(BPELProcessProxy.java:187) 在 [......等等......]
在第一次出现此错误后,会出现另一种类型 - 其他线程在超时后才会崩溃。
似乎数据库没问题(顺便说一下,它是MySQL 5.6.25)。仪表板显示没有极端的输入或输出级别。
所以我认为BPS本身就是一个瓶颈。我们已经为它提供了8gb的堆,并且它的conf选项设置为极端数量的线程(如果可能设置负值,如果不是 - 只是像100000那样大得可笑)。
有人遇到过这个问题吗?非常感谢任何帮助。
答案 0 :(得分:0)
在BPS 3.5.0版本中解决,请参阅发行说明