wso2 esb无法将请求转发到目标服务器
我在Windows服务器上运行ESB 4.8.1。 我创建了将HTTP请求转发给IIS应用程序的代理。终点如下定义。 现在ESB可以很好地连接到IIS。 然后IIS服务器重新启动,ESB无法连接到IIS应用程序了。wso2 esb无法将请求转发到目标服务器
<endpoint xmlns="http://ws.apache.org/ns/synapse" name="abcServerEndpoint">
<address uri="@[email protected]">
<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年1月20日17:52:08050 [ - ] [HTTP监听I/O调度-2] WARN SourceHandler连接超时请求被读取后:HTTP- incoming-174 2016-01-20 17:52:09,033 [ - ] [HTTP-Listener I/O调度程序-1] WARN SourceHandler读取请求后连接超时:http-incoming-180 2016-01-20 17 :52:09033 [ - ] [HTTP监听I/O调度-1] WARN SourceHandler连接超时请求被读取后:HTTP传入-177
WARN SourceHandler连接超时之后请求是REA d: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文件来增加passthrough http transport的套接字超时。
http.socket.timeout=120000
希望这些信息对您有所帮助。
非常感谢,是的,它是由http超时造成的。 – richard
请问您可以与问题一起分享错误日志吗?附带错误日志 –
。错误日志和碳日志中只有超时。 – richard
看看那里:http://stackoverflow.com/questions/21327584/wso2-esb-http-connection-was-forcibly-closed-by-remote-host –