Uploaded image for project: 'JBoss A-MQ'
  1. JBoss A-MQ
  2. ENTMQ-2044

[A-MQ6, cursorMemoryHighWaterMark ] destination's cursorMemoryHighWaterMark can potentially block message dispatch unexpectedly

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • JBoss A-MQ 6.3.x
    • JBoss A-MQ 6.2.1, JBoss A-MQ 6.3
    • broker
    • Hide

      attached a unit test to replicate

      Show
      attached a unit test to replicate

      before paging in a message from the store the broker checks if the destinations is using more than the CursorMemoryHighWaterMark. If the usage is greater than the CursorMemoryHighWaterMark then it will not page in messages.

      It does this by checking the parent memory usage first (system memory usage) and then its destination memory usage.

      The parent check (system memory usage) make sense if no memory limit is specified on the destination.

      However if there is a memory limit of 1mb set on the destination and the system limit is 1gb it can lead to an unexpected outcome. If the system memory usage is 600mb and the destination memory usage is 0mb. The parent check will stop the broker from paging in message even though the destination is using nothing of its 1 mb and there are 400mb to spare.

      Due name cursor high water mark limit and the fact it is a destination policy I think it is fair to assume this setting is applied to the destination cursor rather then the system memory limits.

              gtully@redhat.com Gary Tully
              rhn-support-pfox Patrick Fox (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: