如何使用vm事务实现ftp出站端点的重试机制?

how to achieve retry mechanism for ftp outbound end point using vm transaction?

我们尝试过使用 vm 作为 flow1 中的出站和 flow2 中的入站。在 flow2 中,我们使用 FTP 作为出站端点,并且我们启用了 vm 事务,即使这样它也不起作用。我们是否需要启用交易重试?根据以下问题,我们尝试使用交易 how to make until successful as synchronous to retry mechanism for FTP Outbound in mule 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>

您弄错了事务:不需要处理 VM 出站,需要处理 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>