如何从Mule中的特定关联ID和队列中监听数据

时间:2014-10-15 11:45:53

标签: mule mule-studio mule-el mule-component

您好我正在使用mule,我正在使用JMS inbound来侦听特定队列。我想以这样的方式配置我的JMS:如果我从具有特定相关ID的Active MQ推送数据,并且已在Mule JMS Inbound中配置了相关ID。它只会听取和调查。请分享一些JMS XML配置以便更好地理解。

1 个答案:

答案 0 :(得分:1)

在JMS入站中有一个名为jms:selector的过滤器,用于根据其属性选择特定类型的消息

现在,正如您所说,您正在使用特定的核心化ID从ActiveMQ推送消息,您可以根据特定的核心化ID选择要在Mule中使用的消息,如下所示: -

<jms:inbound-endpoint queue="reply"
        connector-ref="Active_MQ" exchange-pattern="one-way"
        doc:name="JMS-REPLY"/ >
    <jms:selector expression="JMSCorrelationID='your corelation id'"/>
</jms:inbound-endpoint>

您可以在此处看到示例: - Mule request-reply consuming all the messages in the JMS reply queue

但是,我建议您不要过滤基于消息的核心化ID,如果您正在推送的消息中没有定义核心化ID,或者您没有将其设置为静态ID,则可能无法消耗核心化id不同。

所以,我建议你根据消息优先级过滤消息,这是过滤JMS消息的最佳方法。

以下是如何在Mule流本身上为JMS消息设置消息优先级并根据该优先级属性使用它: Mule: JMS reply queue consumes all the messages. I want to process messages that coming to reply queue