Wie ist es möglich eine Queue zu löschen. Ich konnte leider nichts finden.
Zur Info: ActiveMq läuft auf der lokalen Maschine.
Mein Versuch:
Queue löschen * funktioniert nicht * - was muss ich ändern?
Fehler:
#######################################
Zur Info: Nachricht in eine Queue schreiben funktioniert
Zur Info: ActiveMq läuft auf der lokalen Maschine.
Mein Versuch:
Queue löschen * funktioniert nicht * - was muss ich ändern?
Java:
public static void delete() {
try {
BrokerService broker = new BrokerService(); // hier ist der Broker null
// configure the broker
// broker.getBroker();
ObjectName brokerName = new ObjectName("org.apache.activemq:BrokerName=localhost,Type=Broker");
BrokerViewMBean brokerMbean = (BrokerViewMBean) broker.getManagementContext().newProxyInstance(brokerName, BrokerViewMBean.class, true);
brokerMbean.removeQueue("meineTestQueue");
// for (ObjectName name : brokerMbean.getQueues()) {
// QueueViewMBean bean = (QueueViewMBean)
// broker.getManagementContext().newProxyInstance(name,
// QueueViewMBean.class, true);
// bean.purge();
// }
} catch (Exception e) {
throw new RuntimeException(e);
}
}
Java:
Exception in thread "main" java.lang.RuntimeException: javax.management.InstanceNotFoundException: org.apache.activemq:BrokerName=localhost,Type=Broker
at JMSTest.JMSQueuePrioTest.delete(JMSQueuePrioTest.java:186)
at JMSTest.JMSQueuePrioTest.main(JMSQueuePrioTest.java:193)
Caused by: javax.management.InstanceNotFoundException: org.apache.activemq:BrokerName=localhost,Type=Broker
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(Unknown Source)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(Unknown Source)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(Unknown Source)
at javax.management.MBeanServerInvocationHandler.invoke(Unknown Source)
at $Proxy0.removeQueue(Unknown Source)
at JMSTest.JMSQueuePrioTest.delete(JMSQueuePrioTest.java:179)
... 1 more
#######################################
Zur Info: Nachricht in eine Queue schreiben funktioniert
Java:
public static void purge(){
try{
JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi");
JMXConnector connector = JMXConnectorFactory.connect(url, null);
connector.connect();
MBeanServerConnection connection = connector.getMBeanServerConnection();
ObjectName name = new ObjectName("org.apache.activemq:BrokerName=localhost,Type=Queue,Destination=meineTestQueue");
QueueViewMBean queueMbean = (QueueViewMBean) MBeanServerInvocationHandler.newProxyInstance(connection, name, QueueViewMBean.class, true);
queueMbean.purge();
} catch (JMSException e) {
e.printStackTrace();
} catch (MalformedObjectNameException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NullPointerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}