我有一个包含2个步骤的进程,但是我必须在第一个进程完成时执行第二个步骤 我使用clone mediator(clone sequential =" true")但是target 2在目标1完成之前开始执行。 我不明白这种行为。
提前致谢
答案 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,所以它对我来说很好。