ActiveMQ从java中删除队列

ActiveMQ从java中删除队列,activemq,Activemq,如何从java程序中删除activemq中的队列?是否有类似session.delelteQueue()的内容 谢谢M.Java本身不支持会话。那么,你到底想做什么?是否停止访问队列的会话?然后不要访问它并删除(null)对它的引用。如果您不介意使用非JMS API调用,那么您可以将连接对象强制转换为ActiveMQConnection,并调用destroyDestination,并将要删除的目标的实例传递给它。如果目标上没有活动的使用者,它将被删除,否则您将得到一个异常,表明您无法删除具有活动

如何从java程序中删除activemq中的队列?是否有类似session.delelteQueue()的内容


谢谢M.

Java本身不支持会话。那么,你到底想做什么?是否停止访问队列的会话?然后不要访问它并删除(null)对它的引用。

如果您不介意使用非JMS API调用,那么您可以将连接对象强制转换为ActiveMQConnection,并调用destroyDestination,并将要删除的目标的实例传递给它。如果目标上没有活动的使用者,它将被删除,否则您将得到一个异常,表明您无法删除具有活动使用者的目标。

您可以通过“removeQueue”操作使用JMX执行此操作

有关编程示例,请参见本页:


不使用JMX it将连接转换为ActiveMQConnection并使用其destroyDestination()方法的简单解决方案。 使用该方法的简单实用程序:

import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.command.ActiveMQQueue;
import javax.jms.JMSException;

/**
* simple class to delete a queue form the activeMQ broker
* @author josef.
*/
public class QueueDeleter {
  public static void main(String[] args) {
    if (args.length != 2) {
     System.out.println("please specify broker URL and queue name, \nexample:    tcp://localhost:61616 queue1");
     System.exit(2);
    }
    ActiveMQConnection conn = null;
    try {
     conn = (ActiveMQConnection) new    ActiveMQConnectionFactory(args[0]).createConnection();
     conn.destroyDestination(new ActiveMQQueue(args[1]));
    } catch (JMSException e) {
     System.out.println("Error connecting to the browser please check the URL" + e);
    } finally {
     if (conn != null) {
        try {
           conn.close();
        } catch (JMSException e) {
           System.out.println("Error closing connection" + e);
        }
     }
   }
  }
}
Maven的依赖关系

    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>activemq-core</artifactId>
        <version>5.7.0</version>
    </dependency>

org.apache.activemq
activemq内核
5.7.0

感谢您的回复。实际上我想要的是:我已经创建了一个队列:queue destination=session.createQueue(“ActiveMQ.DLQ”);现在我想删除它(比如从控制台中删除队列,但从java代码中删除)。非常感谢您的帮助。请参阅可能的副本
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>activemq-core</artifactId>
        <version>5.7.0</version>
    </dependency>