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

Duplicate messages received in hub and spoke topology

    Details

    • Type: Bug
    • Status: Open
    • Priority: Minor
    • Resolution: Unresolved
    • Affects Version/s: 5.13.2
    • Fix Version/s: None
    • Component/s: Broker
    • Labels:
      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

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

              Dates

              • Created:
                Updated: