Как прослушивать данные из определенного идентификатора корреляции и очереди в Mule

Привет, я работаю с мулом и использую входящий JMS для прослушивания определенной очереди. Я хочу настроить свой JMS таким образом, чтобы, если я отправляю данные из Active MQ с определенным идентификатором корреляции, и этот идентификатор корреляции уже настроен в Mule JMS Inbound. Он будет слушать и опрашивать только это. Пожалуйста, поделитесь некоторой конфигурацией JMS XML для лучшего понимания.


person Utsav    schedule 15.10.2014    source источник


Ответы (1)


Существует фильтр с именем jms:selector во входящих сообщениях JMS для выбора определенного типа сообщения на основе его свойств.

Теперь, как вы сказали, вы отправляете сообщение из ActiveMQ с определенным идентификатором корреляции, поэтому вы можете выбрать сообщение для использования в своем 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 запрос-ответ, использующий все сообщения в очереди ответов JMS

Но, опять же, я бы посоветовал вам не фильтровать идентификатор корреляции на основе сообщения, если этот идентификатор корреляции не определен в вашем сообщении, которое вы отправляете, или вы не устанавливаете его как статический идентификатор, он может быть не в состоянии использовать, если идентификатор корреляции отличается.

Итак, я бы предложил вам фильтровать сообщение на основе приоритета сообщения, что является лучшим способом фильтрации сообщений JMS.

Вот как вы можете установить приоритет сообщения в самом потоке Mule для сообщений JMS и использовать его на основе этого свойства приоритета: - Mule: очередь ответов JMS потребляет все сообщения. Я хочу обрабатывать сообщения, поступающие в очередь ответов

person Anirban Sen Chowdhary    schedule 04.07.2015