gpt4 book ai didi

java - 如何在Activemq中暂停队列

转载 作者:行者123 更新时间:2023-11-30 07:27:36 26 4
gpt4 key购买 nike

我需要在应用程序内的 Activemq 5.13.2 中暂停队列,根据这篇文章 https://stackoverflow.com/a/32165140/1458556 5.12 版本可以实现,但我不知道如何实现。任何 Java 代码示例都很棒。

@Test
public void testPauseQueue() throws Exception {
JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi");
JMXConnector jmxc = JMXConnectorFactory.connect(url);
MBeanServerConnection conn = jmxc.getMBeanServerConnection();



ObjectName queue = new ObjectName("org.apache.activemq:BrokerName=localhost,Type=Queue,Destination=testq");
QueueViewMBean mbean = MBeanServerInvocationHandler.newProxyInstance(conn, queue,QueueViewMBean.class, true);
System.out.println(mbean.isPaused());

}

异常

    at za.co.fnb.cii.relandheir.batch.inputprocessor.service.MessengerServiceTest.testPauseQueue(MessengerServiceTest.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:69)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:48)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
at org.junit.runners.ParentRunner.run(ParentRunner.java:292)
at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
Caused by: javax.management.InstanceNotFoundException: org.apache.activemq:BrokerName=localhost,Type=Queue,Destination=testq

最佳答案

名称似乎已更改

  ObjectName queue = new ObjectName("org.apache.activemq:BrokerName=localhost,Type=Queue,Destination=testq");

  ObjectName queue = new ObjectName("org.apache.activemq:brokerName=localhost,destinationName=testq,destinationType=Queue,type=Broker");

更改后工作完美。

我通过 REST Management API 发现了更新的名称格式 http://activemq.apache.org/rest.html

http://localhost:8161/api/jolokia/read/org.apache.activemq:type=Broker,brokerName=localhost

关于java - 如何在Activemq中暂停队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36602358/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com