Transactions 如何将交易添加到收件人列表?

Transactions 如何将交易添加到收件人列表?,transactions,esb,mule,Transactions,Esb,Mule,我能够根据消息的内容发送到动态URI的列表。我让代码将目的地的URI放在“destination”的头键中。可以假设返回的URI是JMS URI JMS URI的一个示例是“jms://jmsEndpoint/queue:outbound_queue?connector=jmsConnector" 如何将交易添加到收件人列表 <flow name="Flow_Name"> <jms:inbound-endpoint queue="inbound_queue">

我能够根据消息的内容发送到动态URI的列表。我让代码将目的地的URI放在“destination”的头键中。可以假设返回的URI是JMS URI

JMS URI的一个示例是“jms://jmsEndpoint/queue:outbound_queue?connector=jmsConnector"

如何将交易添加到收件人列表

<flow name="Flow_Name">
    <jms:inbound-endpoint queue="inbound_queue">
        <jms:transaction action="ALWAYS_BEGIN" />
    </jms:inbound-endpoint>

    <!-- Code that adds a list of URI's to the header key of 'destination' -->

    <recipient-list expression="destination" evaluator="header" />
</flow>

文档:

您可以使用收件人列表路由器发送多封邮件,该路由器将在同一事务中发送所有邮件

但是XML模式不允许您为路由器指定事务配置。我已经检查了org.mule.routing.outbound.ExpressionRecipientList的源代码,它应该可以支持异常

因此,我的印象是,这是XML模式中的一个缺陷。我可能错了,但我认为值得打开一个窗口,看看核心开发人员对这个问题的看法。

文档:

您可以使用收件人列表路由器发送多封邮件,该路由器将在同一事务中发送所有邮件

但是XML模式不允许您为路由器指定事务配置。我已经检查了org.mule.routing.outbound.ExpressionRecipientList的源代码,它应该可以支持异常


因此,我的印象是,这是XML模式中的一个缺陷。我可能错了,但我认为值得打开一个窗口,看看核心开发人员对这个问题的看法。

谢谢,我担心我做了一些不正确的事情。我阅读了你发送的链接和有关的页面。我强制抛出一个异常,但消息将发送到DLQ,而不是回滚,我认为这意味着我没有正确设置事务。现在来看看默认的错误处理。好吧,以防万一我在MuleSoft打开了探测大脑的程序。谢谢,我担心我做了一些不正确的事情。我阅读了你发送的链接和有关的页面。我强制抛出一个异常,但消息将发送到DLQ,而不是回滚,我认为这意味着我没有正确设置事务。现在来看看默认的错误处理。好吧,以防万一我已经打开了MuleSoft的大脑。