有一種方法可以抑制在ActiveMQ服務器上定義的隊列上的重複消息?在JMS/ActiveMQ上避免重複的消息
我嘗試手動定義JMSMessageID(message.setJMSMessageID(「uniqueid」)),但服務器忽略此修改並傳遞帶有內置生成的JMSMessageID的消息。
根據規範,我沒有找到關於如何刪除重複消息的參考。
在HornetQ中,爲了處理這個問題,我們需要在消息定義上聲明HQ特有的屬性org.hornetq.core.message.impl.HDR_DUPLICATE_DETECTION_ID。
即:
Message jmsMessage = session.createMessage();
String myUniqueID = "This is my unique id"; // Could use a UUID for this
message.setStringProperty(HDR_DUPLICATE_DETECTION_ID.toString(), myUniqueID);
有人知道是否有對應的ActiveMQ類似的解決方案?
我懷疑這種方法是否能解決我的問題。我只需要在隊列中使用相同的JMSMessageID保留一個消息實例。我需要它作爲一個集合工作。我希望能夠將最新的idem元素從隊列中移除後,使用相同的JMSMessageID放置其他消息。我需要實施它並進行測試。但是,基於在EAI書中描述的Idempotent,我認爲這個概念與我的必要性不符。 BUt,建議的解決方案很好。我會更多地研究它並在這裏評論我的結果。謝謝 – apast 2011-02-11 01:31:58