Я поставил вместе не до-успешный в Mule 3.7 (см):Mule до успешного повторить только с тайм-аутом
<until-successful maxRetries="100" failureExpression="#[exception != null && (exception.causedBy(java.net.ConnectException) || exception.causedBy(java.net.SocketTimeoutException)) || message.inboundProperties['http.status'] != 500]" synchronous="true" millisBetweenRetries="20000" doc:name="UntilSuccess">
<processor-chain>
<set-payload value="#[flowVars.operationPayLoad]" doc:name="GetTransactionRequest" />
<ws:consumer config-ref="GetTransactionWSConsumerConfig" operation="execute" doc:name="GetTransaction" />
</processor-chain>
Я заинтересована только в создании до успешного повторных попыток если веб-служба не работает или время истекает. Никакое другое исключение не должно быть повторено до тех пор, пока оно не будет успешным.
Тем не менее, я проверил, где я получаю org.muleule.ws.consumer.SoapFaultException, но до тех пор, пока не удастся, продолжает пытаться вызвать веб-службу.
Как сообщить до тех пор, пока не удастся игнорировать все исключения и остановить повторную попытку, за исключением случаев, когда веб-служба отключена или отключена?
Приветствия
Max
http: – max
Спасибо Маник. Статус http - 500. Однако до тех пор, пока он не будет успешным, он пытается попробовать. Может быть, я не понимаю функцию failExpression. Я также попробовал || message.inboundProperties ['http.status'] == 503], но снова он продолжает повторять попытку. – max
Вы пробовали с круглыми скобками? Выражение Failure должно возвращать значение true, пока оно не будет успешно повторено. Попытайтесь построить свое условие по одному за раз и посмотреть, какой из них позволяет исключить ваше исключение. –