Uploaded image for project: 'ActiveMQ Classic'
  1. ActiveMQ Classic
  2. AMQ-5527

Performance issues for org.apache.activemq.broker.jmx.QueueView.removeMessage

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Duplicate
    • 5.10.0
    • None
    • Broker, JMX
    • Mac/Linux

    Description

      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.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              rimovm Michael Rimov
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: