как да изтриете конкретна опашка в activemq

искам да изтрия конкретна опашка от потребителя, след като получа съобщението от опашката в activemq. Прочетох много статии, но нито една от тях не дава добро обяснение. Мога да предоставя или име на опашка, или ID на корелация за изтриване на опашката. моля, дайте някакво предложение.

версия:-Activemq 5.8.0. предварително благодаря


person nichu09    schedule 11.11.2013    source източник
comment
как искате да изтриете опашката, от java код или някаква администраторска конзола? Има API на JMS за изтриване на опашка, а ActiveMQ има JMX API също за изтриване на опашки   -  person Claus Ibsen    schedule 11.11.2013
comment
@ClausIbsen Благодаря за отговора. получих отговора. искам да изтрия от кода на Java. Направих го с помощта на тази връзка consulting-notes.com/2010/08/   -  person nichu09    schedule 11.11.2013


Отговори (2)


Получих отговора. изтриване на опашка програмно от 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 config file.in по подразбиране createConnector="false".промяна на createConnector="true".в противен случай ще получите грешка като

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

тази концепция е обяснена в статията на "ben.odey" "управление на ActiveMQ с JMX API". Връзка:- управление на ActiveMQ с JMX API

person nichu09    schedule 11.11.2013
comment
Необходимо е да използвате това като име на обект: org.apache.activemq:BrokerName=localhost,Type=Broker - person user2601995; 20.12.2014

И на мен ми харесва вашият проблем. Поправих така тук. Използва QueueViewMBean. Които имат функция removeMessage. Просто трябва да преминете messageid.

person Zaw Than oo    schedule 25.07.2014