回滚的骡子请求响应VM例外策略(Roll back exception strategy for M

2019-10-22 19:06发布

我使用的骡子请求响应VM和需要回滚消息通过VM在一些例外的情况下,进行再加工,比如连接问题。 但是,回滚例外策略不会出现,当我使用的交换模式作为VM请求响应工作。 我曾经请求响应的原因是我需要的方式来知道什么时候我所有的虚拟机消息已被处理,之后开始另一项任务。 我认为,行为是,当出现异常时,回滚策略捕捉异常,可能犯了。 我没有看到它尝试重新传送消息发回给VM。 当交换模式是单向的,它工作良好。

     <flow name="vmtransactionrollbackFlow">
            <http:listener config-ref="HTTP_Listener_Configuration" path="/myvm" doc:name="HTTP"/>
             <set-payload value="Dummy list payload" doc:name="Set Payload"/>
            <foreach doc:name="For Each">
            <vm:outbound-endpoint exchange-pattern="request-response" path="myvm" connector-ref="VM" doc:name="VM">
                <vm:transaction action="ALWAYS_BEGIN"/>
            </vm:outbound-endpoint>
            </foreach>
            <logger message="DO SOMETHING ONLY AFTER ALL MESSAGES IN VM ARE PROCESSED" level="INFO" doc:name="Logger"/>
            </flow>
        <flow name="vmtransactionrollbackFlow1">
            <vm:inbound-endpoint exchange-pattern="request-response" path="myvm" connector-ref="VM" doc:name="VM">
                <vm:transaction action="BEGIN_OR_JOIN"/>
            </vm:inbound-endpoint>
             <scripting:component doc:name="Groovy">
                <scripting:script engine="Groovy"><![CDATA[throw new java.lang.Exception("Test exception");]]></scripting:script>
            </scripting:component>
               <rollback-exception-strategy maxRedeliveryAttempts="3" doc:name="Rollback Exception Strategy">
                <logger message="Rolling back #[payload]" level="INFO" doc:name="Logger"/>
                <on-redelivery-attempts-exceeded>
                    <logger message="Redelivery exhausted:#[payload]" level="INFO" doc:name="Logger"/>
                </on-redelivery-attempts-exceeded>
            </rollback-exception-strategy>
        </flow>

Answer 1:

是的,我遇到类似的问题,当VM出站使用它表现得更像流REF与每说,因此没有重新传递机构不涉及“排队”请求 - 响应交换模式。

因此,如果虚拟机的配置为单向和流处理策略是同步的(VM入站流量),然后重新传递确实一命呜呼了

为了实现你愿意,你可以用什么,直到成功的在vmtransactionrollbackFlow1流量范围内,尤其是对间歇性连接的损失其实这是推荐的方法的情况。 在这你就根本不需要交易。

不要让我们知道如何去,如果你发现身边的一些其他工作。



文章来源: Roll back exception strategy for Mule request response VM