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

如何使用vm事务实现ftp出站端点的重试机制?,ftp,mule,mule-studio,mule-component,Ftp,Mule,Mule Studio,Mule Component,我们已经尝试将vm用作flow1中的出站和flow2中的入站。在flow2中,我们使用FTP作为出站端点,我们启用了vm事务,即使它不工作。我们是否需要启用事务以重试?根据以下问题,我们尝试使用transaction,您能帮助我解决此问题吗 <flow name="FTPFlow1" doc:name="FTPFlow1"> <set-payload doc:name="Set Payload" value="#[payload]"/>

我们已经尝试将vm用作flow1中的出站和flow2中的入站。在flow2中,我们使用FTP作为出站端点,我们启用了vm事务,即使它不工作。我们是否需要启用事务以重试?根据以下问题,我们尝试使用transaction,您能帮助我解决此问题吗

<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>