我有幾個作業,每個作業都有多個排隊的消息。 每個作業的消息是隨機交錯的。 如果用戶決定取消作業,我想從隊列中刪除屬於該作業一部分的所有消息。 我已經能夠使用browse()
找到所有要刪除的郵件,但一直未能弄清楚如何刪除它們。 我試圖通過使用receiveSelected()
擺脫他們,但它只是掛起。 (我正在使用JmsTemplate
)如何從JMS隊列中刪除消息?
0
A
回答
0
JMS沒有定義管理類型函數,例如從隊列中刪除消息。
編程方式是使用消息。另外,還有一些消息管理工具可以讓你在沒有編程的情況下執行此操作。
0
沒有任何JMS API可以刪除消息。但似乎您可以調用purge
removeMessage
或根據您對MBean org.apache.activemq:type=Broker,brokerName=amq,destinationType=Queue,destinationName=testQ
的要求刪除消息。
0
您正處於正確的軌道上。使用選擇器消費這些消息是一種方式 - 例如使用JmsTemplate receiveSelected。
如果它「掛起」,它可能意味着隊列中沒有匹配的消息。你能識別你的消息在一些屬性,如JMSType或其他StringProperty?確保你可以並提供一個JMS選擇器。
I.e.如果您的作業是由用戶X啓動的,則將某些屬性(如「啓動用戶」)設置爲「x」。然後消耗所有消息,請使用選擇器initiatingUser='X'
。
相關問題
- 1. 使用JMSMessageID從MQ隊列中刪除JMS消息
- 2. 如何控制或管理JMS隊列?例如。改變隊列中的消息順序,刪除消息等
- 3. JMS隊列接收消息?
- 4. 錯誤從JMS消息獲取隊列
- 5. 如何從weblogic JMS隊列中清除/刪除郵件
- 6. DestroyWindow()從消息隊列中刪除窗口的消息嗎?
- 7. 如何有選擇地從AMQP(RabbitMQ)隊列中刪除消息?
- 8. JMS隊列中的延遲消息
- 9. 替換jms隊列中的消息
- 10. 如何從JMS隊列中刪除郵件
- 11. 在調用onMessage()時儘快調用JMS異步消息,從隊列中刪除消息
- 12. Java內部消息隊列/ JMS
- 13. 在JMS隊列上測試消息
- 14. 如何獲取jms隊列中待處理消息的數量
- 15. 如何搜索JMS隊列中的特定消息
- 16. 如何使用Java/JMS丟棄隊列中的消息?
- 17. 如何清除Jboss中的JMS隊列
- 18. 從Azure隊列中刪除消息時出現異常?
- 19. 如何從weblogic JMS隊列集羣環境中清除/刪除郵件
- 20. 配置JMS隊列以刪除用於測試目的的所有消息
- 21. JMS消息生產者不會將消息發送到隊列
- 22. 消息如何從msmq中的毒隊列中清除
- 23. 我們如何知道哪個使用者從JMS隊列中獲取消息?
- 24. 如何知道哪些JMS偵聽器隊列聽消息?
- 25. 如何接收來自Glassfish的消息(v3)JMS隊列
- 26. 從EJB3和JBoss5創建並訪問JMS消息隊列
- 27. 如何刪除JMS隊列文件存儲
- 28. 從MSMQ中刪除消息
- 29. 如何清除/清除VxWorks中的消息隊列緩衝區?
- 30. 如何從消息隊列中刪除消息(僅在格式良好的情況下)?
我不明白爲什麼瀏覽找到消息,但選擇掛起。我在這兩種情況下使用相同的messageSelector字符串和相同的destinationName。 – Solx
我在用'jmsTemplate.browseSelected'瀏覽並用'jmsTemplate.receiveSelected(' – Solx