我有几个作业,每个作业都有多个排队的消息。 每个作业的消息是随机交错的。 如果用户决定取消作业,我想从队列中删除属于该作业一部分的所有消息。 我已经能够使用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