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

High volume XA transactions across mKahaDB not clearing from journals

XMLWordPrintable

    • False
    • False
    • Undefined
    • Hide

      Reproducer Attached:

      1. Install AMQ by extracting the target release zip file
      2. Uncomment the last line of ${AMQ_HOME}/etc/users/properties
      3. Copy the attached activemq.xml file to ${AMQ_HOME}/etc/ to overwrite the existing file
      4. Extract the threaded-consumer-2.1.0-SNAPSHOT-bin.zip archive to 2 locations on the broker host.
      5. Configure jndi.properties in the consumer so that one instance is setting property queue.q0=Consumer.1.VirtualTopic.Inbound and the other is setting queue.q0=Consumer.2.VirtualTopic.Inbound
      6. Extract the hreaded-producer-2.1.0-SNAPSHOT-bin.zip archive to the broker host
      7. Start the broker instance
      8. Start each of the 2 consumers with the provided consumer.sh script
      9. After the consumers attach to the localhost broker, start the producer with the producer.sh script.
      10. Wait for the producer to finish and messages to settle
      11. Stop the broker
      12. Stop the consumers
      13. Observe data/amq/mKahaDB sub-directories for the consumers have multiple journal (*.log) files
      14. Delete the db.data and db.redo files from each kahdb store under data/mKahaDB
      15. Enable trace logging for org.apache.activemq.store.kahadb.MessageDatabase by adding a line like this to the etc/org.ops4j.pax.logging.cfg file:

      log4j.logger.org.apache.activemq.store.kahadb.MessageDatabase = TRACE
      

      16. Restart the broker and monitor the log
      17. A series of discarded XA transaction warnings appears in the log

      With concurrentSend disabled on the virtual topic this does not occur.

      Show
      Reproducer Attached: 1. Install AMQ by extracting the target release zip file 2. Uncomment the last line of ${AMQ_HOME}/etc/users/properties 3. Copy the attached activemq.xml file to ${AMQ_HOME}/etc/ to overwrite the existing file 4. Extract the threaded-consumer-2.1.0-SNAPSHOT-bin.zip archive to 2 locations on the broker host. 5. Configure jndi.properties in the consumer so that one instance is setting property queue.q0=Consumer.1.VirtualTopic.Inbound and the other is setting queue.q0=Consumer.2.VirtualTopic.Inbound 6. Extract the hreaded-producer-2.1.0-SNAPSHOT-bin.zip archive to the broker host 7. Start the broker instance 8. Start each of the 2 consumers with the provided consumer.sh script 9. After the consumers attach to the localhost broker, start the producer with the producer.sh script. 10. Wait for the producer to finish and messages to settle 11. Stop the broker 12. Stop the consumers 13. Observe data/amq/mKahaDB sub-directories for the consumers have multiple journal (*.log) files 14. Delete the db.data and db.redo files from each kahdb store under data/mKahaDB 15. Enable trace logging for org.apache.activemq.store.kahadb.MessageDatabase by adding a line like this to the etc/org.ops4j.pax.logging.cfg file: log4j.logger.org.apache.activemq.store.kahadb.MessageDatabase = TRACE 16. Restart the broker and monitor the log 17. A series of discarded XA transaction warnings appears in the log With concurrentSend disabled on the virtual topic this does not occur.

      When high volumes of XA transactions occur for multiple subscribers across multiple instances of mKahaDB (files), the transactions are not cleaning up as expected and leaving journal files with a notable size. This leads to a high "store percent".

        1. activemq.xml
          7 kB
        2. intuit.zip
          80 kB
        3. MKahaDBTxVirtualTopicTest.java
          10 kB
        4. threaded-consumer-2.1.0-SNAPSHOT-bin.zip
          24.90 MB
        5. threaded-producer-2.1.0-SNAPSHOT-bin.zip
          18.96 MB

              gtully@redhat.com Gary Tully
              rhn-support-khurley Kevin Hurley
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated:
                Resolved: