我们在 MAC OSX 10.7.4 上使用带有数据服务功能的 WSO2 ESB 4.0.3。
我有将消息转发到数据服务的代理服务。当数据服务出现任何故障时,故障返回到在 OUTSEQUENCE 中调用代理服务。现在,如果有任何错误,我会将其转发到代理服务中的常见错误处理程序,这发生在 OUTSEQUENCE 中。这个常见的错误处理程序只是另一个代理服务。
现在,当错误处理完成时,控制返回到调用错误处理代理服务的原始代理服务。但是当控件从错误处理程序返回到原始代理服务时会发生什么,它再次开始执行代理服务的 OUTSEQUENCE。
所以对我来说,如果数据服务出现故障,它会执行两次代理服务的 OUTSEQUENCE。
这是标准行为吗?我曾经使用 Java 执行方式,当方法调用返回时,它开始执行下一行。但这里看起来它再次从头开始执行 OUTSEQUENCE。
为了避免重新开始执行 OUTSEQUENCE,我在错误处理程序代理中填充“传输”范围的值,该值将在过滤器中介中使用,以避免两次执行 OUTSEQUENCE 中的逻辑。
我正在尝试查找是否可以使用任何 SOAP 标头而不是设置属性。我看到没有设置像“From”或“ReplyTo”这样的 SOAP 标头,并且我相信 MessageId 会发生消息协调。我们如何使用这些 SOAP 标头而不是属性来转移流逻辑。
请帮忙。谢谢阿比吉特