Transactions JMS事务内的VM持久出站端点

Transactions JMS事务内的VM持久出站端点,transactions,jms,mule,Transactions,Jms,Mule,我试图通过从JMS队列获取一条消息并以事务方式将其放入VM持久队列来实现一个可实现性模式。关键是要确保消息存储在VM队列中(稍后异步处理),或者根本不从JMS队列中使用 这是我的相关配置部分 <vm:connector name="asyncDbConnector"> <default-persistent-queue-store/> </vm:connector> <endpoint name="asyncDbEndpoint" addres

我试图通过从JMS队列获取一条消息并以事务方式将其放入VM持久队列来实现一个可实现性模式。关键是要确保消息存储在VM队列中(稍后异步处理),或者根本不从JMS队列中使用

这是我的相关配置部分

<vm:connector name="asyncDbConnector">
    <default-persistent-queue-store/>
</vm:connector>

<endpoint name="asyncDbEndpoint" address="vm://asyncDb" connector-ref="asyncDbConnector" exchange-pattern="one-way"/>

<flow name="jsmInFlow">
    <jms:inbound-endpoint ref="jmsInEndpoint">
        <jms:transaction action="ALWAYS_BEGIN"/>
    </jms:inbound-endpoint>

    <logger message="In jsmInFlow: #[message.payload]"/>

    <outbound-endpoint ref="asyncDbEndpoint" exchange-pattern="one-way"/>
</flow>

<flow name="asyncDbFlow">
    <vm:inbound-endpoint ref="asyncDbEndpoint">
        <vm:transaction action="ALWAYS_BEGIN"/>
    </vm:inbound-endpoint>

    <logger message="In asyncDbFlow: #[message.payload]"/>

    ...
</flow>

...

通过这样的配置,我得到“端点是事务性的,但事务不支持它”。据我所知,它试图同步执行
asynchdbflow
,并加入现有事务,但JMS事务不支持VM事务。相反,我需要它对消息进行可靠的排队,并在排队失败时回滚JMS事务。Mule有可能吗?

什么时候会发生这种错误?当执行第一个流还是第二个流时?@AleSequeira实际上经过一些挖掘之后,我意识到这个场景需要使用多资源事务(仅限Mule EE)或XA事务。