0

我有一个场景,我正在从队列中读取 JMS 消息,并基于此触发 SOAP 调用以检索相应的文档。但是,如果 SOAP 服务不可用或它已关闭,那么我不想丢失从队列中读取的 JMS 消息。在这种情况下,我将此消息推送到重试队列,以便当 SOAP 服务再次启动时,我可以从重试队列中读取原始消息并再次触发 SOAP 调用。

现在的问题是,如果 SOAP 服务关闭,我无法将原始消息推送到重试队列。它进入我正在检查失败消息并尝试将原始消息推送到重试队列的代码块,但实际上并没有推送消息。这种行为并不一致。有时,它会成功推送消息,但有时不会。

<when expression="#[xpath('//soapenv:Fault') != null ]">
    <set-payload value="#[flowVars['abc']]" />
    <jms:outbound-endpoint queue="${RETRY_QUEUE}" />
</when>

任何帮助表示赞赏。

4

0 回答 0