14 Replies Latest reply on Apr 14, 2014 5:15 PM by jbertram

    While load testing on EAP 6.2.0 / 6.2.2 get memory leaks that point to HornetQ messaging use-duplicate-detection setting

    jcrisp

      Hello!


      We are running JBoss EAP 6.2.2 in Domain mode.   We have two load balanced Web Service JBoss servers that JMS remote call two JBoss HornetQ clustered servers.  Using SoapUI, we load test simulating 10 clients hitting the web service cluster with 1 request each second.   The consumer process takes on average 122 milliseconds to complete (so messages are not getting backed up).  Within 45 minutes the JVM Heap usage for both JMS nodes at times are at 100% and they begin to fail.

       

      Through a memory dump we noticed that 80% of the classes were of DuplicateIDCacheImpl.java  (https://github.com/hornetq/hornetq/blob/master/hornetq-server/src/main/java/org/hornetq/core/postoffice/impl/DuplicateIDCacheImpl.java).  We noticed that if we set use-duplicate-detection to false and manually set the duplicate detection id property through code  (as defined here: http://docs.jboss.org/hornetq/2.3.0.Final/docs/user-manual/html/duplicate-detection.html) we do not run into this problem:

       

           requestMsg.setStringProperty(org.hornetq.api.core.Message.HDR_DUPLICATE_DETECTION_ID.toString(),UUID.randomUUID().toString());

       

      We have been running 4+ hours straight at this pace so far without issue.  The JVM heap is behaving (currently between 24% and 38%)

       

      Can someone verify this is a viable workaround?  That the duplicate detection value is not being ignored and we are still getting the Duplicate Message Detection feature?