Uploaded image for project: 'JBoss Enterprise Application Platform'
  1. JBoss Enterprise Application Platform
  2. JBEAP-13613

cluster-connection.producer-window-size property is ignored by Artemis

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 7.2.0.GA.CR1
    • 7.1.0.CR3
    • ActiveMQ
    • None

    Description

      The documentation [1] says that flow control on cluster connection can be configured by property producer-window-size. However this property is ignored by Artemis [2].

      // No producer flow control on the bridges, as we don't want to lock the queues
      targetLocator.setProducerWindowSize(-1);
      

      It seems there is a reason why it is always configured to -1. Redistribution of messages in the cluster bridge is implemented by single producer created from the targetLocator. If producer-window-size was configured to some value and there was a full queue with block policy, the producer would be blocked on acquiring of credits and the whole redistribution would be blocked as well.

      IMO to fix this issue, it is not enough to just pass the producer-window-size to the targetLocator (as I explained above). The implementation should be enhanced to not to block producer if one of the queues is full. It should be able to redistribute messages to the rest of the queues.

      [1] https://activemq.apache.org/artemis/docs/1.5.5/clusters.html#configuring-cluster-connections
      [2] https://github.com/rh-messaging/jboss-activemq-artemis/blob/1.5.5.jbossorg-008/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/cluster/impl/ClusterConnectionImpl.java#L784

      Attachments

        Issue Links

          Activity

            People

              jondruse@redhat.com Jiri Ondrusek
              eduda_jira Erich Duda (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: