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. PrefetchSubscription.patch
          0.5 kB
          Andreas Mattes
        2. TestClient.java
          5 kB
          Andreas Mattes
        3. PrefetchSubscriptionTest.java
          9 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: