Mule请求-应答使用JMS应答队列中的所有消息

Mule请求-应答使用JMS应答队列中的所有消息,mule,Mule,在Mule请求-应答模式中,JMS入站端点正在使用队列中的所有消息。 我怎样才能避免骡子的这种行为。 这是我的流程 <request-reply timeout="100000"> <jms:outbound-endpoint queue="request" connector-ref="Active_MQ" exchange-pattern="one-way" doc:name="JMS- REQUEST" disableTempora

在Mule请求-应答模式中,JMS入站端点正在使用队列中的所有消息。 我怎样才能避免骡子的这种行为。 这是我的流程

<request-reply timeout="100000">
        <jms:outbound-endpoint queue="request"
            connector-ref="Active_MQ" exchange-pattern="one-way" doc:name="JMS- REQUEST" disableTemporaryReplyToDestinations="false" >
            <message-properties-transformer>
                <delete-message-property key="MULE_REPLYTO"/>
            </message-properties-transformer>
        </jms:outbound-endpoint>
        <jms:inbound-endpoint queue="reply"
            connector-ref="Active_MQ" exchange-pattern="one-way" doc:name="JMS-REPLY"/ >

“回复”队列中的所有消息都已使用,而与相关Id无关。
非常感谢您的帮助。

尝试在JMS入站端点上使用选择器:

<jms:inbound-endpoint queue="reply"
        connector-ref="Active_MQ" exchange-pattern="one-way"
        doc:name="JMS-REPLY"/ >
    <jms:selector expression="JMSCorrelationID=#[message.correlationId]"/>
</jms:inbound-endpoint>

我还看到JMS消费者是在mule启动时创建的。好吧,这太糟糕了:(我的最后一个想法是尝试是否可以使用
请求者
来代替
jms:inbound endpoint
。这样,每次调用MEL表达式时都会对其求值。如果这不起作用,那么答案是否定的:
请求-回复
消耗回复队列中的所有内容。