使用jms出站网关时如何处理超时异常?
How to handle timeout exception when using jms outbound gateway?
我有一个像这样的 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
没有回复,我该如何处理?
JmsOutboundGateway
thorws:
throw new MessageTimeoutException(message,
"failed to receive JMS response within timeout of: " + this.receiveTimeout + "ms");
万一超时(默认为 5 秒)。
您可以在 <request-handler-advice-chain>
中配置 <retry-advice>
,以便 <jms:outbound-gateway>
向 MessageTimeoutException
上的 request-destination
重新发送相同的消息。或者,如果您的流程从 <poller>
或 message-driven-ednpoint
.
否则不清楚你的目标是什么。 Spring 集成中的异常并不像在典型的 Java 应用程序中那样提供更多的复杂性。
我有一个像这样的 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
没有回复,我该如何处理?
JmsOutboundGateway
thorws:
throw new MessageTimeoutException(message,
"failed to receive JMS response within timeout of: " + this.receiveTimeout + "ms");
万一超时(默认为 5 秒)。
您可以在 <request-handler-advice-chain>
中配置 <retry-advice>
,以便 <jms:outbound-gateway>
向 MessageTimeoutException
上的 request-destination
重新发送相同的消息。或者,如果您的流程从 <poller>
或 message-driven-ednpoint
.
否则不清楚你的目标是什么。 Spring 集成中的异常并不像在典型的 Java 应用程序中那样提供更多的复杂性。