Удаление всех сообщений в очереди JMS в Widlfy 9

Я пытаюсь удалить сообщения из очереди 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: *"

Любая идея, как удалить сообщения?


person miran    schedule 16.08.2016    source источник
comment
обновление: если я удаляю потребителя, он работает правильно; если очередь сначала остановилась, это не помогает...   -  person miran    schedule 16.08.2016
comment
обновление 2: казалось, что приостановка очереди (пауза операции jmx) и ожидание завершения обрабатываемых в данный момент сообщений позволит удалить оставшиеся сообщения, но это тоже не сработало   -  person miran    schedule 17.08.2016