我使用了以下端点属性并希望它停止重试命中但仍在重试。我想只有一次点击终点,无论是成功还是失败。
<endpoint name="DecisionGatewayProxy_EPR">
<address uri="http://XXXX:8280/soap/XXXX">
<timeout>
<duration>20000</duration>
<responseAction>fault</responseAction>
</timeout>
<markForSuspension>
<errorCodes>101504, 101505</errorCodes>
<retriesBeforeSuspension>0</retriesBeforeSuspension>
<retryDelay>1</retryDelay>
</markForSuspension>
<suspendOnFailure>
<errorCodes>101500, 101501, 101506, 101507, 101508</errorCodes>
<initialDuration>20000</initialDuration>
<progressionFactor>0.0</progressionFactor>
</suspendOnFailure>
</address>
</endpoint>
答案 0 :(得分:1)
AFAIK默认行为是发送单个请求。如果失败,ESB会将其标记为超时。所以IMO不会在超时后自动重试。但是,如果您需要将端点标记为SUSPENDED,则可以<retriesBeforeSuspension>0</retriesBeforeSuspension>
因此,这将在单端点故障后标记端点SUSPENDED。
希望这有帮助。
答案 1 :(得分:0)
我认为在WSO2 ESB中不可能这样做。作为建议,请确保从服务器发送响应,无论成功或失败(至少发送202 ACCEPTED),然后它将不会重试发送相同的消息。