wso2 4.8.1 clone mediator sequential =" true"

时间:2016-02-20 22:23:44

标签: wso2 clone

我有一个包含2个步骤的进程,但是我必须在第一个进程完成时执行第二个步骤    我使用clone mediator(clone sequential =" true")但是target 2在目标1完成之前开始执行。    我不明白这种行为。

提前致谢

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            

2 个答案:

答案 0 :(得分:1)

调用介体不会同步等待响应:第一个目标中的中介结束执行,第二个目标执行。 当响应在esb中返回时,然后执行位于调用中介之后的第一个目标中的中介。

如果绝对需要在执行第二个目标之前等待响应,可以使用callout(ESB 4.8.1)或call blocking =“true”(ESB 4.9.0)

但是,如果您需要实现的是“服务链”,请不要使用clone:使用send receive =“MyResponseSequence”。随着响应将返回到ESB中,它将在“MyResponseSequence”中处理。您甚至可以在没有“克隆”的情况下使用呼叫中介:呼叫后的中介将在响应到达ESB后立即执行(但不会在之前!)。

答案 1 :(得分:0)

您在第一个目标中正在做什么操作?正在向端点发送任何消息,或者您正在进行任何转换。如果可能,请分享一些代码。因为我也使用了带有sequence = true的clone,所以它对我来说很好。