我使用阻止调用将WSO2 ESB 4.9.0用于后端服务调用。由于jms事务,我必须使用阻塞调用。有时ESB和后端服务之间的网络很慢,所以我想在连接上使用超时,但是在端点上阻塞呼叫超时并不起作用。使用非阻塞调用超时工作正常。
是否可以在阻止呼叫时使用超时?
感谢您的任何提示。
答案 0 :(得分:1)
由于端点超时无法阻止呼叫,您可以尝试以下两种方法:
1)在synapse.properties(ESB_HOME \ repository \ conf)文件中定义的全局超时。 这将决定回调在ESB中等待特定请求响应的最长时间。
如果ESB没有从后端获得任何响应,它将丢弃该消息并清除回叫。这是一个全局级别参数,它会影响ESB中配置的所有端点。
synapse.global_timeout_interval=120000
2)在passthru-http.properties(ESB_HOME \ repository \ conf)文件中定义套接字超时。
此参数将决定特定http请求等待响应的超时。如果ESB在此期间没有收到来自后端的任何响应,则HTTP连接会超时并最终在ESB端抛出超时错误,并且将触发故障处理程序。
http.socket.timeout=60000
答案 1 :(得分:0)
我们可以通过为相关的TransportSender [1]定义 SO_TIMEOUT 参数,在/ repository / conf / axis2 / axis2_blocking_client.xml 定义阻止超时。