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

Durable subscriber only receives part of the persisted messages on re-connect

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 5.6.0
    • 5.7.0
    • Connector
    • None
    • Default configuraton of ActiveMQ under Linux or Windows

    Description

      A durable subscriber is connected to ActiveMQ using the ConnectionConsumer protocol, transacted sessions, and at most 1 message per session. While the subscriber is disconnected, the publisher publishes e.g. 10 messages. When the subscriber re-connects, it only receives 2 messages of those. If it repeatedly disconnects and re-connects, it receives 2 messages each time until all messages are received.

      Further investigation reveals that the problem lies in class org.apache.activemq.broker.region.PrefetchSubscription which does not re-check for further pending messages to be dispatched when committed message are removed from the list of dispatched but not yet acknowledged messages.

      Attachments

        1. PrefetchSubscriptionTest.java
          9 kB
          Andreas Mattes
        2. TestClient.java
          5 kB
          Andreas Mattes
        3. PrefetchSubscription.patch
          0.5 kB
          Andreas Mattes

        Activity

          People

            tabish Timothy A. Bish
            andreasmattes Andreas Mattes
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: