提问者:小点点

使用JMSQueueControl暂停和恢复JMS消息的任何示例


我在ActiveMQ Artemis留档中读到,我们可以使用JMSQueueControl暂停和恢复JMS消息,但我无法在最新的jar中找到接口。

任何代码示例都将不胜感激。


共1个答案

匿名用户

根据最新的留档,可以使用QueueControl,API中有这样一个类。

暂停和恢复队列

QueueControl可以暂停和恢复底层队列。当队列暂停时,它将接收消息但不会传递它们。当它恢复时,它将开始传递排队的消息(如果有的话)。

用法示例:

String eapObjectName = "org.apache.activemq.artemis:broker=\"default\",component=addresses,address=\"jms.queue.exampleQueue\",subcomponent=queues,routing-type=\"anycast\",queue=\"jms.queue.exampleQueue\"";
MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
ObjectName objectName = ObjectName.getInstance(eapObjectName);
QueueControl queueControl = MBeanServerInvocationHandler.newProxyInstance(mBeanServer,objectName,QueueControl.class,false)

queueControl.pause();

参考资料:

  • JavaDoc
  • Github