[ https://issues.apache.org/jira/browse/AMQ-3404?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13068432#comment-13068432 ]
Allen Reese commented on AMQ-3404: ---------------------------------- The correct fix is to use a QueryViewMbean: // List messages = JmxMBeansUtil.createMessageQueryFilter(createJmxConnection(), queueName).query(queryAddObjects); // purgeMessages(queueName, messages); QueueViewMBean proxy = (QueueViewMBean) MBeanServerInvocationHandler .newProxyInstance(createJmxConnection(), queueName, QueueViewMBean.class, true); int removed = 0; for (String remove : queryAddObjects) { removed = proxy.removeMatchingMessages(remove); context.printInfo("Removed: " + removed + " messages for msgsel" + remove); } } A patch and test is forthcoming, but -xmsgsel will not work with this patch > Purge command does not accept message selectors > ----------------------------------------------- > > Key: AMQ-3404 > URL: https://issues.apache.org/jira/browse/AMQ-3404 > Project: ActiveMQ > Issue Type: Bug > Components: Broker > Affects Versions: 5.5.0 > Reporter: Allen Reese > Priority: Minor > > The admin purge command does not work with a message selector. > A patch is forth coming, there is some cleanup, and compliance to be vetted > before I can attach the patch. > (1) Browse with no arguments: > user@activemq-master:~/activemq$ activemq-admin browse --amqurl > tcp://localhost:61616 --view JMSTimestamp queue.FOO.BAR > Java Runtime: Sun Microsystems Inc. 1.6.0_22 > /home/y/libexec/jdk1.6.0/jre > Heap sizes: current=60800k free=58531k max=902976k > JVM args: -Dactivemq.classpath="" > -Djavax.net.ssl.trustStoreType=JKS > ACTIVEMQ_HOME: /home/y/libexec/activemq > ACTIVEMQ_BASE: /home/y/libexec/activemq > JMS_HEADER_FIELD:JMSTimestamp = 1310608108263 > JMS_HEADER_FIELD:JMSTimestamp = 1310608108740 > JMS_HEADER_FIELD:JMSTimestamp = 1310608109283 > JMS_HEADER_FIELD:JMSTimestamp = 1310608109790 > JMS_HEADER_FIELD:JMSTimestamp = 1310608110324 > JMS_HEADER_FIELD:JMSTimestamp = 1310608110831 > JMS_HEADER_FIELD:JMSTimestamp = 1310608111374 > JMS_HEADER_FIELD:JMSTimestamp = 1310608111872 > JMS_HEADER_FIELD:JMSTimestamp = 1310608112415 > JMS_HEADER_FIELD:JMSTimestamp = 1310608113005 > (2) Browse with msgsel > user@activemq-master:~/activemq$ activemq-admin browse --amqurl > tcp://localhost:61616 --view JMSTimestamp --msgsel > 'JMSTimestamp<1310608110324' queue.FOO.BAR > Java Runtime: Sun Microsystems Inc. 1.6.0_22 > /home/y/libexec/jdk1.6.0/jre > Heap sizes: current=60800k free=58535k max=902976k > JVM args: -Dactivemq.classpath="" > -Djavax.net.ssl.trustStoreType=JKS > ACTIVEMQ_HOME: /home/y/libexec/activemq > ACTIVEMQ_BASE: /home/y/libexec/activemq > JMS_HEADER_FIELD:JMSTimestamp = 1310608108263 > JMS_HEADER_FIELD:JMSTimestamp = 1310608108740 > JMS_HEADER_FIELD:JMSTimestamp = 1310608109283 > JMS_HEADER_FIELD:JMSTimestamp = 1310608109790 > (3) Purge with msgsel: - Not Working - (what I wanted here was to use only > those > matching my criteria) > user@activemq-master:~/activemq$ activemq-admin purge --msgsel > 'JMSTimestamp<1310608110324' queue.FOO.BAR > Java Runtime: Sun Microsystems Inc. 1.6.0_22 > /home/y/libexec/jdk1.6.0/jre > Heap sizes: current=60800k free=58531k max=902976k > JVM args: -Dactivemq.classpath="" > -Djavax.net.ssl.trustStoreType=JKS > ACTIVEMQ_HOME: /home/y/libexec/activemq > ACTIVEMQ_BASE: /home/y/libexec/activemq > Connecting to JMX URL: > service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi > INFO: Removing message: > ID:activemq-master-55970-1309958858075-2:32:1:1:1 > from queue: queue.FOO.BAR > INFO: Removing message: > ID:activemq-master-55970-1309958858075-2:32:1:1:2 > from queue: queue.FOO.BAR > INFO: Removing message: > ID:activemq-master-55970-1309958858075-2:32:1:1:3 > from queue: queue.FOO.BAR > INFO: Removing message: > ID:activemq-master-55970-1309958858075-2:32:1:1:4 > from queue: queue.FOO.BAR > INFO: Removing message: > ID:activemq-master-55970-1309958858075-2:32:1:1:5 > from queue: queue.FOO.BAR > INFO: Removing message: > ID:activemq-master-55970-1309958858075-2:32:1:1:6 > from queue: queue.FOO.BAR > INFO: Removing message: > ID:activemq-master-55970-1309958858075-2:32:1:1:7 > from queue: queue.FOO.BAR > INFO: Removing message: > ID:activemq-master-55970-1309958858075-2:32:1:1:8 > from queue: queue.FOO.BAR > INFO: Removing message: > ID:activemq-master-55970-1309958858075-2:32:1:1:9 > from queue: queue.FOO.BAR > INFO: Removing message: > ID:activemq-master-55970-1309958858075-2:32:1:1:10 > from queue: queue.FOO.BAR > (4) Purge with msgsel working with a patch: > user@activemq-master:~/activemq$ activemq-admin browse --amqurl > tcp://localhost:61616 --view JMSTimestamp --msgsel > 'JMSTimestamp<1310608391914' queue.FOO.BAR > Java Runtime: Sun Microsystems Inc. 1.6.0_22 > /home/y/libexec/jdk1.6.0/jre > Heap sizes: current=60800k free=58535k max=902976k > JVM args: -Dactivemq.classpath="" > -Djavax.net.ssl.trustStoreType=JKS > ACTIVEMQ_HOME: /home/y/libexec/activemq > ACTIVEMQ_BASE: /home/y/libexec/activemq > JMS_HEADER_FIELD:JMSTimestamp = 1310608389116 > JMS_HEADER_FIELD:JMSTimestamp = 1310608389607 > JMS_HEADER_FIELD:JMSTimestamp = 1310608390266 > JMS_HEADER_FIELD:JMSTimestamp = 1310608390781 > JMS_HEADER_FIELD:JMSTimestamp = 1310608391390 > user@activemq-master:~/activemq$ ./activemq-admin purge --msgsel > 'JMSTimestamp<1310608391914' queue.FOO.BAR > Java Runtime: Sun Microsystems Inc. 1.6.0_22 > /home/y/libexec/jdk1.6.0/jre > Heap sizes: current=60800k free=58575k max=902976k > JVM args: -Dactivemq.classpath="" > -Djavax.net.ssl.trustStoreType=JKS > ACTIVEMQ_HOME: /home/y/libexec/activemq > ACTIVEMQ_BASE: /home/y/libexec/activemq > Connecting to JMX URL: > service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi > INFO: Addobjects is :[JMSTimestamp<1310608391914] > INFO: Removing message: > ID:activemq-master-55970-1309958858075-2:33:1:1:1 > from queue: queue.FOO.BAR > INFO: Removing message: > ID:activemq-master-55970-1309958858075-2:33:1:1:2 > from queue: queue.FOO.BAR > INFO: Removing message: > ID:activemq-master-55970-1309958858075-2:33:1:1:3 > from queue: queue.FOO.BAR > INFO: Removing message: > ID:activemq-master-55970-1309958858075-2:33:1:1:4 > from queue: queue.FOO.BAR > INFO: Removing message: > ID:activemq-master-55970-1309958858075-2:33:1:1:5 > from queue: queue.FOO.BAR -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira