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

concurrentStoreAndDispatchQueues when cache disabled can lead to skipped message dispatch, leaving message pending for some time

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 5.4.0, 5.4.1, 5.4.2
    • 5.5.0
    • Broker
    • None

    Description

      concurrentStoreAndDispatchQueues is on by default for the kahaDB store. It allows dispatch to happen concurrently with persistence to disk.

      It has a dependency on the cache to do the immediate dispatch.(The idea is that a quick ack can cancel the async message add.)

      On a message send, there is a dispatch attempt, if the cache is disabled and the store has not yet seen the message, the dispatch does nothing. problem!

      The next dispatch attempt will only occur when there is a new message, an ack is received or when the expiry processing (default 30 seconds) kicks in. The result is delayed dispatch or unexpected message expiry.
      The cache can be disabled on startup if there are pending messages in the store for the default store based cursor.
      Workaround: A simple workaround is to disable concurrentStoreAndDispatchQueues via config

      <kahaDB .... concurrentStoreAndDispatchQueues="false" />

      Fix: Async storage should be conditional on the cache being enabled.

      Attachments

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            gtully Gary Tully
            gtully Gary Tully
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment