2014-03-02 103 views
0

在Mule請求 - 回覆模式中,JMS入站端點正在消耗隊列中的所有消息。 我該如何避免騾子的這種行爲。 這裏是我的流程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"/ > 

所有「答覆」隊列中的消息被消耗而不考慮相關標識符。 任何幫助表示讚賞。

回答

1

嘗試在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> 
+0

我試過了,但騾子不允許MEL在選擇截至目前!!! –

+0

另外我看到JMS使用者是在mule啓動時創建的。 –

+0

好,所以這很糟糕:(我最後的想法是嘗試如果可以使用來自https://github.com/mulesoft/mule-module-requester的'requester'來代替'jms:inbound-endpoint '這樣,MEL表達式在每次被調用時都會被評估,如果這樣做不起作用,那麼答案是否定的:'request-reply'消耗應答隊列中的所有內容。 –