Apache Artemis:如何将JMS消息移动​​到其他队列

时间:2017-08-24 22:10:51

标签: activemq-artemis

Artemis的新版本removedJMSQueueControl以及与之关联的所有类。

我们的项目使用JMS API发送/接收/收听以及管理。我们需要管理队列,包括通过JMS消息ID将消息从一个队列移动到另一个队列,GUID类型为String

Artemis 2.2.0的新版本有一个QueueControl#moveMessage(long),它显然是在内部消息ID(而不是JMS消息ID)上运行的。

问题是:如何使用Artemis版本2.X中的JMS消息ID将消息从一个队列移动到另一个队列?

1 个答案:

答案 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首先在幕后做的事情。