如何实现使用VM交易FTP出站终点重试机制?(how to achieve retry mechan

2019-10-23 08:25发布

我们曾尝试使用类似虚拟机在流1出站和入站的流2。 在流2,我们使用FTP出站终点,我们启用了虚拟交易即使再也是其无法正常工作。 我们是否需要启用重试交易? 按下面的问题,我们尝试使用交易如何进行,直到成功为止的同步重试机制FTP出站的骡子3.4.2可以请你帮我解决这个问题?

<flow name="FTPFlow1" doc:name="FTPFlow1">
            <set-payload doc:name="Set Payload" value="#[payload]"/>
            <vm:outbound-endpoint exchange-pattern="one-way"  doc:name="VM" path="doProcess">
                <vm:transaction action="ALWAYS_BEGIN"/>
            </vm:outbound-endpoint>
        </flow> 
        <flow name="FTPFlow2" doc:name="FTPFlow2">
            <vm:inbound-endpoint exchange-pattern="one-way" path="doProcessMessage" doc:name="VM">
                <vm:transaction action="JOIN_IF_POSSIBLE"/>
            </vm:inbound-endpoint>
            <ftp:outbound-endpoint host="localhost" port="21" path="/data/mule/ftp" user="admin" password="admin" responseTimeout="10000" doc:name="FTP"/>
        </flow>

Answer 1:

你已经得到了交易错误:虚拟机出站不需要进行交易,它的VM入境需要以触发重复传递在FTP故障的情况下。

<flow name="FTPFlow1" doc:name="FTPFlow1">
    <set-payload doc:name="Set Payload" value="#[payload]"/>
    <vm:outbound-endpoint exchange-pattern="one-way"  doc:name="VM" path="doProcess" />
</flow> 
<flow name="FTPFlow2" doc:name="FTPFlow2">
    <vm:inbound-endpoint exchange-pattern="one-way" path="doProcessMessage" doc:name="VM">
        <vm:transaction action="ALWAYS_BEGIN"/>
    </vm:inbound-endpoint>
    <ftp:outbound-endpoint host="localhost" port="21" path="/data/mule/ftp" user="admin" password="admin" responseTimeout="10000" doc:name="FTP"/>
</flow>


文章来源: how to achieve retry mechanism for ftp outbound end point using vm transaction?