Hornetq:使用 jmx 管理将消息从一个队列移动到另一个队列

Hornetq: move message from a queue to another queue using jmx management

我想使用 JMX 管理工具将消息从 DLQ 队列移动到另一个队列。

通常我们会使用 JMSQueueControl 接口的 moveMessages 方法:

我的问题是,如何通过以下调用使用此方法:

/org.hornetq:module=JMS,type=Queue,name="DLQ"/moveMessages

您可以使用以下 CLI 命令将消息从 DLQ 队列移动到另一个队列。

/subsystem=messaging/hornetq-server=default/jms-queue=DLQ:move-messages(filter="",other-queue-name=QUEUE_TO_SEND)

如果您想使用 JMX 控制台,正确的 mbean 是

jboss.as:subsystem=messaging,hornetq-server=default,jms-queue=DLQ

代码看起来像

ObjectName memoryMXBean=new ObjectName("jboss.as:subsystem=messaging,hornetq-server=default,jms-queue=DLQ");

connection.invoke(moveMessages, null, "QUEUE_TO_SEND");

根据您的用例,您还可以使用 JMSToolBox 之类的工具将消息从一个队列拖放到另一个队列