我在Windows服务器上运行ESB 4.8.1。 我创建了代理,将HTTP请求转发给IIS应用程序。终点定义如下。 现在ESB可以很好地连接到IIS。 然后IIS服务器重新启动,ESB无法再连接到IIS应用程序。
<endpoint xmlns="http://ws.apache.org/ns/synapse" name="abcServerEndpoint">
<address uri="@ESB_ABC_SERVER_ENDPOINT@">
<retryConfig>
<disabledErrorCodes>101503,101507</disabledErrorCodes>
</retryConfig>
<timeout>
<duration>300000</duration>
<responseAction>fault</responseAction>
</timeout>
<suspendOnFailure>
<errorCodes>-1</errorCodes>
<initialDuration>0</initialDuration>
<progressionFactor>0.0</progressionFactor>
<maximumDuration>0</maximumDuration>
</suspendOnFailure>
<markForSuspension>
<errorCodes>-1</errorCodes>
</markForSuspension>
</address>
</endpoint>
错误日志如下所示 2016-01-20 17:52:08,050 [ - ] [HTTP-Listener I / O dispatcher-2] WARN SourceHandler读取请求后的连接超时:http-incoming-174 2016-01-20 17:52:09,033 [ - ] [HTTP-Listener I / O dispatcher-1] WARN SourceHandler读取请求后的连接超时:http-incoming-180 2016-01-20 17:52:09,033 [ - ] [HTTP-Listener I / O dispatcher-1] WARN SourceHandler读取请求后的连接超时:http-incoming-177
答案 0 :(得分:1)
WARN SourceHandler读取请求后的连接超时:http-incoming-174 2016-01-20 17:52:09,033 [ - ]
上述WARN日志的原因是客户端(在您的方案IIS服务器中)与ESB之间的连接在ESB将响应发送到客户端之前已超时。
默认情况下,此超时为60秒(http侦听器的套接字超时)。因此,ESB需要60多秒才能向IIS服务器发送响应。 导致此问题的原因可能是后端缓慢。
作为一种解决方案,您可以通过将以下属性添加到$ ESB_HOME / repository / conf /目录中的passthru-http.properties文件来增加直通http传输的套接字超时。
http.socket.timeout=120000
希望这些信息能为您提供帮助。