Uploaded image for project: 'JBoss A-MQ'
  1. JBoss A-MQ
  2. ENTMQ-687

Duplicate messages are created for KahaDB and performance of Camel route from one queue to another is lower in LevelDB than in KahaDB

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Partially Completed
    • Affects Version/s: JBoss A-MQ 6.1
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None
    • Environment:

      JBoss Fuse (6.1.0.redhat-379)
      Linux

    • Steps to Reproduce:
      Hide

      0) For LevelDB modify $FUSE/etc/activemq.xml:
      set persistence adapter to:

      <levelDB directory="${data}/leveldb" indexFactory="org.fusesource.leveldbjni.JniDBFactory" /> 
      

      1)Run JBoss Fuse
      2) Install bundle attached with the command:
      osgi:install mvn:org.jboss.fuse.qa.performance/fuse-jms-queues-pooled-persistent/1.0-SNAPSHOT
      3)Copy activemq-all-5.9.0.redhat-610379.jar to $PERFCAKE/lib/ext folder.
      4) Run PerfCake 2.0 (https://www.perfcake.org/) using the scenario attached:
      performance-quickstarts-6.1-jms/fuse-scenarious/fuse-jms-queues-pooled-persistent-without-memory.xml
      (it is using the attached message from performance-quickstarts-6.1-jms/fuse-messages/fuse-jms-5kB-request.xml)
      with the command:

       $PERFCAKE/bin/perfcake.sh -s fuse-jms-queues-pooled-persistent-without-memory -sd $PATH_TO_ATTACHMENT/performance-quickstarts-6.1-jms/fuse-scenarious -md performance-quickstarts-6.1-jms/fuse-messages
      

      Show
      0) For LevelDB modify $FUSE/etc/activemq.xml: set persistence adapter to: <levelDB directory="${data}/leveldb" indexFactory="org.fusesource.leveldbjni.JniDBFactory" /> 1)Run JBoss Fuse 2) Install bundle attached with the command: osgi:install mvn:org.jboss.fuse.qa.performance/fuse-jms-queues-pooled-persistent/1.0-SNAPSHOT 3)Copy activemq-all-5.9.0.redhat-610379.jar to $PERFCAKE/lib/ext folder. 4) Run PerfCake 2.0 ( https://www.perfcake.org/ ) using the scenario attached: performance-quickstarts-6.1-jms/fuse-scenarious/fuse-jms-queues-pooled-persistent-without-memory.xml (it is using the attached message from performance-quickstarts-6.1-jms/fuse-messages/fuse-jms-5kB-request.xml) with the command: $PERFCAKE/bin/perfcake.sh -s fuse-jms-queues-pooled-persistent-without-memory -sd $PATH_TO_ATTACHMENT/performance-quickstarts-6.1-jms/fuse-scenarious -md performance-quickstarts-6.1-jms/fuse-messages

      Description

      PerfCake was sending 5Kb messages in 100 concurrent threads to the Camel route below for 5 minutes.For KahaDB duplicate messages occurred.The average performance with LevelDB (both drivers) was 30 iterations/second, for KahaDB it was 80 iterations/sec.With AverageEnqueueTime for queue.request - 3212 milliseconds,
      AverageEnqueueTime for queue.response - 0.5 milliseconds for LevelDB.AverageEnqueueTime for queue.request - 539 milliseconds,
      AverageEnqueueTime for queue.response - 968 milliseconds for KahaDB.| <camelContext trace="false" xmlns="http://camel.apache.org/schema/spring">|

      <route id="JMSQueues">
      <from uri="activemq:queue:queue.request?username=admin&password=admin"/>
      <to uri="activemq:queue:queue.response?username=admin&password=admin"/>
      </route>
      </camelContext>
       
      <bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
      <property name="brokerURL" value="tcp://localhost:61616"/>
      </bean>
      <bean id="pooledConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory" init-method="start" destroy-method="stop">
      <property name="maxConnections" value="200"/>
      <property name="connectionFactory" ref="jmsConnectionFactory"/>
      </bean>
      <bean id="jmsConfig" class="org.apache.camel.component.jms.JmsConfiguration">
      <property name="connectionFactory" ref="pooledConnectionFactory"/>
      <property name="transacted" value="false"/>
      <property name="concurrentConsumers" value="100"/>
      <property name="maxConcurrentConsumers" value="200"/>
      </bean>
       
      <bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent">
      <property name="configuration" ref="jmsConfig"/>
      </bean>

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  Unassigned
                  Reporter:
                  emedvede Elena Medvedeva
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  3 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: