Я пытаюсь прочитать файл из местоположения SFTP. Я использую Mule 4.4 Community edition. Если при подключении к SFTP-серверу возникает какая-либо ошибка или файл отсутствует, муле повторит попытку 2 раза.
Поэтому я настроил в sftp-коннекторе: «Стратегия повторного подключения» как «Стандартная».
Однако журналы не показывают каких-либо повторных попыток. ПРИМЕЧАНИЕ. В идеале это будет запущено в запланированное время (планировщик), но в целях тестирования я использую прослушиватель HTTP для вызова потока.
Вот код:
<sftp:config name = "SFTP_Config" doc:name = "SFTP Config">
<sftp:connection host = "abcd" username = "xyz" password = "pwd" />
</sftp:config>
<flow name = "get:employee">
<logger level = "INFO" doc:name = "Logger" message = "starting search" category = "get-employee"/>
<sftp:read doc:name = "Read" config-ref = "SFTP_Config" path = "/a/employees.unl">
<repeatable-in-memory-stream />
<reconnect />
</sftp:read>
<error-handler ></error-handler>
</flow>
Интересно, делаю ли я что-то не так? Я бы хотел, чтобы поток или, по крайней мере, чтение файла было предпринято дважды, прежде чем возникнет ошибка.
В настоящее время, когда файл не существует в папке sftp, он просто выдает ошибку:
Message : Path '/a/employees.unl' doesn't exist
Error type : SFTP:ILLEGAL_PATH
когда вступает в силу стратегия повторного подключения? Спасибо
Стратегии повторного подключения предназначены для соединений, а не для неудачных операций. В вашем примере соединение работает нормально. Операция завершается ошибкой, так как каталог не существует.
Для операций вы должны поместить операцию в область действия <until-successful>
. Вы можете использовать атрибут maxRetries, чтобы указать количество повторных попыток.
Документация: https://docs.mulesoft.com/mule-runtime/4.4/до успешного завершения
Некоторым соединителям необходимо установить соединение с удаленной стороной. Например, соединитель базы данных, соединитель SFTP и т. д. Они управляют соединением внутри. Если это соединение не удается, применяется стратегия повторного подключения. Ошибки, связанные с проблемами подключения, обычно не могут быть обнаружены с помощью обработки ошибок Mule.
спасибо, реализуем «до успешного завершения» и попробуем, так когда же мул попытается переподключиться? произойдет ли это, если мул не сможет подключиться к sftp, поэтому он повторит попытку подключения 2 раза, я думаю, мне не ясно, когда я буду использовать «стратегии повторного подключения»?