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

Duplicate messages received in hub and spoke topology

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Minor
    • Resolution: Unresolved
    • 5.13.2
    • None
    • Broker
    • None

    Description

      If there are multiple consumers of a single topic in a hub and spoke topology where each of the spokes has an embedded broker, then each of the consumers receives one message sent to the topic multiple times.

      The topology looks like this:

      Spoke (broker) > Hub (broker) < Spoke (broker)
      ^
      Spoke (broker)

      If one spoke sends a message to a topic and at least two other spokes have consumers then they will receive the message multiple times.

      The likely cause is that org.apache.activemq.network.ConduitBridge#addToAlreadyInterestedConsumers
      checks if the incoming ConsumerInfo represents a network subscription
      in the topology used it does because the subscription info is passed through two brokers

      There exists a workaround: if any policy is applied to the destination then duplication does not happen. This is because PolicyEntry#enableAudit is true by default and is applied to org.apache.activemq.broker.region.BaseDestination#enableAudit which is false by default.

      See the attached unit test which reproduces the issue in ActiveMQ 5.13.2 and also demonstrates the workaround.

      Attachments

        Activity

          People

            Unassigned Unassigned
            tpavelka Tomas Pavelka
            Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: