Michael Rimov created AMQ-5527: ---------------------------------- Summary: Performance issues for org.apache.activemq.broker.jmx.QueueView.removeMessage Key: AMQ-5527 URL: https://issues.apache.org/jira/browse/AMQ-5527 Project: ActiveMQ Issue Type: Bug Components: Broker, JMX Affects Versions: 5.10.0 Environment: Mac/Linux Reporter: Michael Rimov Priority: Minor
On large, persistent queues, (100,000+ messages), we're noticing huge performance issues with Queue.removeMessage(). (It takes 8-20 minutes to remove a single message). Thread dump while running showed this: "RMI TCP Connection(5)-192.168.1.10" daemon prio=5 tid=0x00007f8491954800 nid=0x9807 runnable [0x000000011bfd7000] java.lang.Thread.State: RUNNABLE at org.apache.activemq.broker.region.cursors.OrderedPendingList.contains(OrderedPendingList.java:144) at org.apache.activemq.broker.region.Queue.doPageIn(Queue.java:1913) at org.apache.activemq.broker.region.Queue.doPageIn(Queue.java:1901) at org.apache.activemq.broker.region.Queue.removeMatchingMessages(Queue.java:1374) at org.apache.activemq.broker.region.Queue.removeMessage(Queue.java:1341) at org.apache.activemq.broker.jmx.QueueView.removeMessage(QueueView.java:60) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:75) at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:279) at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:112) at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:46) at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237) at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138) at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252) at javax.management.StandardMBean.invoke(StandardMBean.java:405) at org.apache.activemq.broker.jmx.AnnotatedMBean.invoke(AnnotatedMBean.java:198) Strangely, the web admin console is completely responsive and attempting a delete through the web console is highly performant even on large queues. -- This message was sent by Atlassian JIRA (v6.3.4#6332)