Artemis的新版本removed类JMSQueueControl
以及与之关联的所有类。
我们的项目使用JMS API发送/接收/收听以及管理。我们需要管理队列,包括通过JMS消息ID将消息从一个队列移动到另一个队列,GUID类型为String
。
Artemis 2.2.0的新版本有一个QueueControl#moveMessage(long)
,它显然是在内部消息ID(而不是JMS消息ID)上运行的。
问题是:如何使用Artemis版本2.X中的JMS消息ID将消息从一个队列移动到另一个队列?
答案 0 :(得分:3)
您可以使用管理方法:
org.apache.activemq.artemis.api.core.management.QueueControl#moveMessages(java.lang.String, java.lang.String)
它需要一个“过滤器”作为第一个参数。您可以使用过滤器:
AMQUserID='<jmsMessageId>'
其中&lt; jmsMessageId&gt;是要移动的JMS消息的消息ID。这是JMSQueueControl
首先在幕后做的事情。