java - 如何删除activemq中的特定队列

标签 java activemq messaging jmx

我想在从activemq的队列中获取消息后从消费者中删除特定的队列。我读了很多文章,但没有一篇给出很好的解释。我可以提供队列名称或相关ID来删除队列。请给一些建议。

版本:-Activemq 5.8.0。提前致谢

最佳答案

我得到了答案。从java程序中以编程方式删除队列

 JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi");
JMXConnector jmxc = JMXConnectorFactory.connect(url);
MBeanServerConnection conn = jmxc.getMBeanServerConnection();

String operationName="removeQueue"; //operation like addQueue or removeQueue
String parameter="Payment_Check";   // Queue name
ObjectName activeMQ = new ObjectName("org.apache.activemq:brokerName=localhost,type=Broker");
if(parameter != null) {
    Object[] params = {parameter};
    String[] sig = {"java.lang.String"};
    conn.invoke(activeMQ, operationName, params, sig);
} else {
    conn.invoke(activeMQ, operationName,null,null);
} 

您想要更改activemq配置文件。默认createConnector =“false”。更改为createConnector =“true”。否则您将收到类似错误

 Exception in thread "main" java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.ServiceUnavailableException.

这个概念在“ben.odey”的文章“使用 JMX API 管理 ActiveMQ”中进行了解释。 链接:-managing ActiveMQ with JMX APIs

关于java - 如何删除activemq中的特定队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19900021/

相关文章:

java - 如何在 JFrame 中删除标题栏

java - 使用双缓冲有点毁了我的小程序。并且它有 java 使用或覆盖已弃用的 API

jms - 如何从 ActiveMQ 代理获取所有消息?

server - 桌面应用程序的客户端/服务器状态同步

java - 响铃一定次数后挂断电话

java - 迁移到 Java 8 后运行 jnlp 文件

java - 如何用spring-boot初始化ActiveMQ的SystemUsage?

jboss - ActiveMQ - 客户端已连接但有相同的 clientId 错误

java - 在两个 Java 组件之间发送消息

java - 尝试将消息推送到 Activemq 时出现 NamingException