0

我们在 MAC OSX 10.7.4 上使用带有数据服务功能的 WSO2 ESB 4.0.3。

我有将消息转发到数据服务的代理服务。当数据服务出现任何故障时,故障返回到在 OUTSEQUENCE 中调用代理服务。现在,如果有任何错误,我会将其转发到代理服务中的常见错误处理程序,这发生在 OUTSEQUENCE 中。这个常见的错误处理程序只是另一个代理服务。

现在,当错误处理完成时,控制返回到调用错误处理代理服务的原始代理服务。但是当控件从错误处理程序返回到原始代理服务时会发生什么,它再次开始执行代理服务的 OUTSEQUENCE。

所以对我来说,如果数据服务出现故障,它会执行两次代理服务的 OUTSEQUENCE。

这是标准行为吗?我曾经使用 Java 执行方式,当方法调用返回时,它开始执行下一行。但这里看起来它再次从头开始执行 OUTSEQUENCE。

为了避免重新开始执行 OUTSEQUENCE,我在错误处理程序代理中填充“传输”范围的值,该值将在过滤器中介中使用,以避免两次执行 OUTSEQUENCE 中的逻辑。

我正在尝试查找是否可以使用任何 SOAP 标头而不是设置属性。我看到没有设置像“From”或“ReplyTo”这样的 SOAP 标头,并且我相信 MessageId 会发生消息协调。我们如何使用这些 SOAP 标头而不是属性来转移流逻辑。

请帮忙。谢谢阿比吉特

4

1 回答 1

0

在这种情况下,您可以使用调用调解器而不是使用发送调解器来调用 Web 服务。这对错误处理服务进行了阻塞调用并返回到同一个地方。

并且还可以使用 esb 4.0.3 在发送中介级别指定接收序列。默认情况下,响应是在外序列级别接收的。例如。<send receive="fundTransferSequence"> <endpoint> <address encoding="UTF-8" statistics="disable" uri="http://10.1.23.11:8888/EgateValidWS/EgateValidWSSoapHttpPort" >

    &lt;/address&gt;
&lt;/endpoint&gt;

</发送>

于 2012-07-26T13:18:09.950 回答