Wso2esb WSO2 ESB阻塞调用超时

Wso2esb WSO2 ESB阻塞调用超时,wso2esb,Wso2esb,我使用WSO2 ESB 4.9.0进行后端服务调用,使用阻塞调用。由于jms事务,我不得不使用阻塞调用。有时候ESB和后端服务之间的网络速度很慢,所以我想在连接时使用timeout,但在端点上阻塞调用timeout不起作用。使用非阻塞调用超时可以正常工作 是否可以将超时与阻塞调用一起使用 感谢您提供的提示。由于端点超时无法阻止呼叫,您可以尝试以下两种方法: 1) synapse.properties(ESB\u HOME\repository\conf)文件中定义的全局超时。 这将决定回调在ES

我使用WSO2 ESB 4.9.0进行后端服务调用,使用阻塞调用。由于jms事务,我不得不使用阻塞调用。有时候ESB和后端服务之间的网络速度很慢,所以我想在连接时使用timeout,但在端点上阻塞调用timeout不起作用。使用非阻塞调用超时可以正常工作

是否可以将超时与阻塞调用一起使用


感谢您提供的提示。

由于端点超时无法阻止呼叫,您可以尝试以下两种方法:

1) synapse.properties(ESB\u HOME\repository\conf)文件中定义的全局超时。 这将决定回调在ESB中等待特定请求响应的最长时间

如果ESB没有从后端得到任何响应,它将丢弃消息并清除回调。这是一个全局级别的参数,影响ESB中配置的所有端点

synapse.global_timeout_interval=120000
2) 在passthru-http.properties(ESB\u HOME\repository\conf)文件中定义的套接字超时

此参数将决定特定http请求等待响应的超时时间。如果ESB在此期间没有从后端接收到任何响应,HTTP连接将超时,这将最终在ESB端抛出超时错误,并将命中故障处理程序

http.socket.timeout=60000

我们可以在/repository/conf/axis2/axis2\u blocking\u client.xml定义阻塞超时,方法是为相关TransportSender定义SO\u timeout参数[1]


[1] -

synapse。全局超时时间间隔
也不能阻止调用
http.socket.timeout
可以工作,但非常奇怪。如果网络连接速度慢,并且发送请求所用的时间长于
http.socket.timeout
java.net.SocketTimeoutException
将在服务器接收请求后立即抛出。因此,如果以1KB/s的速度发送100KB的请求,则需要100秒,并且在100秒后抛出SocketTimeoutException,即使http.socket.timeout值较低。