我有一个像这样的jms出站网关:
<jms:outbound-gateway request-destination = "requestQueue"
reply-destination="replayQueue"
request-channel="sendToJmsChannel"
reply-channel="receiveFromJmsChannel"
receive-timeout="5000"/>
在我的spring集成流程中,我向'sendToJmsChannel'发送请求并处理来自'receiveFromJmsChannel'的回复
问题是,如果receive-timeout
过去且没有回复reply-destination
,我该如何处理?
答案 0 :(得分:0)
JmsOutboundGateway
荆棘:
throw new MessageTimeoutException(message,
"failed to receive JMS response within timeout of: " + this.receiveTimeout + "ms");
如果超时(默认为5秒)。
您可以<retry-advice>
在<request-handler-advice-chain>
内配置<jms:outbound-gateway>
,以便将同一邮件重新发送至该request-destination
上的MessageTimeoutException
。或者,如果您的流程从try...catch
或ErrorHandler
开始,则只需定期error-channel
或<poller>
上的message-driven-ednpoint
来处理来电。 / p>
否则不清楚你的目标是什么。 Spring集成中的异常并不像典型的Java应用程序那样提供更多的复杂性。