Я пытаюсь удалить сообщения из очереди JMS на Wildfly 9.0.2 (JBoss) с помощью JMX, см. следующий код:
MBeanServer server = ManagementFactory.getPlatformMBeanServer();
try {
String name = "jboss.as.expr:subsystem=messaging,hornetq-server=default,jms-queue=MyQueue";
ObjectName objectName = new ObjectName(objectNameString);
String result = (String) server.invoke(objectName, "removeMessages", new Object[]{null},
new String[]{"java.lang.String"});
return result;
} catch (MalformedObjectNameException | InstanceNotFoundException | MBeanException | ReflectionException ignored) {
log.errorv(ignored, "Error removing messages from JMS queue [{0}]", name);
return null;
}
В этой очереди есть активный потребитель. Код выполняется без исключений и возвращает строку «0», но на самом деле никакие сообщения не удаляются. Я также пытался использовать какое-то значение в качестве фильтра сообщений (*), но потерпел неудачу:
javax.management.ReflectionException: "HQ119020: Invalid filter: *"
Любая идея, как удалить сообщения?