0

Working with WSO2 BPS 3.6.0 - we have a service which notifies a running BPEL process about an event.

Util the process is running, it is working great (using the correlation). But when the process is already completed, the request doesn't get any response. I'm ok if an exception could be raised, but getting no response whatsoever is annoying. Is there a way to fail quickly if there's no (active) instance with the specific correlation?

Edit: effectively the receive, pick and onEvent activities behave the same way

Thank you in advance

4

1 回答 1

0

Apache ODE 旨在将提前到达的传入消息排入队列。

示例:过程

接收 1 -> 接收 2 -> 接收 3 -> 回复 3

Receive1:创建实例并启动关联。

Receive2:实例正在等待消息到达。

但是,Receive3 上的消息在 Receive2 之前到达,因此被排队。由于下面的活动是一个Reply3,它是一个同步调用,通道将超时等待响应。

一旦 Receive2 到达,引擎会看到 Receive3 的消息已经到达并完成实例。

现在,如果另一条消息以相同的相关值到达 Receive3,它会再次入队以供将来在使用相同相关值创建的新实例上使用。因此不会报告任何错误。

注意:这是 Apache ODE 的行为,除非 WSO2 更改了此行为。

于 2016-11-30T05:40:46.367 回答