簡體   English   中英

如何刪除activemq中的特定隊列

[英]how to delete a specific queue in activemq

我想從activemq的隊列中獲取消息后,從使用者中刪除特定的隊列。 我讀了很多文章,但都沒有給出很好的解釋。我可以提供隊列名稱或correlationID以刪除隊列。 請提出一些建議。

版本:-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”中對此概念進行了解釋。 鏈接:- 使用JMX API管理ActiveMQ

我也喜歡你的問題。 在這里這樣固定。 它使用QueueViewMBean 里面有removeMessage功能。 您只需要傳遞messageid

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM