我在Spring集成中遇到了StoredProcOutboundGateway的reply-timeout属性问题。我已经阅读了文档,并表示如果是Gateway的直接通道,则回复超时将不起作用。但是在外部集成网关的情况下,即StoredProcOutboundGateway,它说 “当发送到DirectChannel时,调用将发生在发送者的线程中,因此发送操作的失败可能是由下游的其他组件引起的”
根据我的设计,我的StoredProcOutboundGateway回复正在发送到直接频道。在回复时间到期后,StoredProcOutboundGateway会抛出异常吗? 。对于重新创建这种情况下我已经把一个调试点,并等待答复配置的超时时间在StoredProcOutboundGateway.handleRequestMessage方法的第一线,但它并没有抛出的任何异常并返回successsful响应即使配置后的时间。
<int:gateway id="idGateway" service-interface="Gateway">
<int:method name="getStoreProcData" request-channel="store.req.channel" reply-channel="store.reply.channel" />
</int:gateway>
<int-jdbc:stored-proc-outbound-gateway stored-procedure-name="GE_PKG.GET_PRC"
ignore-column-meta-data="true" reply-timeout="2000" request-channel="store.req.channel" reply-channel="store.reply.channel" is-function="false"
............other cursor config
</int-jdbc:stored-proc-outbound-gateway>
在此处输入代码
<int:channel id="store.req.channel" />
<int:channel id="store.reply.channel" />
Spring-Integration V4..1.2 DB oracle ojdbc6
答案 0 :(得分:1)
reply-timeout
仅适用于reply-channel
可以阻止的情况 - 例如已满的有界QueueChannel
。
即。 send
到reply-channel
的暂停时间。
DirectChannel
永远不会发生。