我有几个工作,每个工作都有多个消息在队列中等待处理。
每个工作的消息是随机交错的。
如果用户决定取消一个工作,我想从队列中删除该工作的所有消息。
我已经能够使用browse()找到要删除的所有消息,但是没有找到如何删除它们的方法。
我尝试使用receiveSelected()
将其删除,但它仅会挂起。
(我正在使用JmsTemplate
)
我有几个工作,每个工作都有多个消息在队列中等待处理。
每个工作的消息是随机交错的。
如果用户决定取消一个工作,我想从队列中删除该工作的所有消息。
我已经能够使用browse()找到要删除的所有消息,但是没有找到如何删除它们的方法。
我尝试使用receiveSelected()
将其删除,但它仅会挂起。
(我正在使用JmsTemplate
)
JMS不定义管理类型的功能,例如从队列中删除消息。
编程方式是消耗消息。另外,还有消息管理工具可以在不编程的情况下实现此操作。
没有任何JMS API可以删除消息。但是,似乎您可以根据需要在MBean org.apache.activemq:type=Broker,brokerName=amq,destinationType=Queue,destinationName=testQ
上调用purge
、removeMessage
或其他操作来删除消息。
initiatingUser ='X'
。
jmsTemplate.browseSelected
进行浏览,并使用jmsTemplate.receiveSelected(
进行选择。 - Solx