0 Replies Latest reply on Oct 11, 2006 10:17 AM by timfox

    Unnecessarily pulling messages

    timfox

      When a channel deliveries messages to a receiver that can only accept x messages, the channel delivers as many messages as it can until the receiver returns null to signify it doesn't want any more.

      There is a problem with this in a clustered setup, when pulling messages from a remote queue.

      The channel will deliver as many messages it can from the local queue, and then, if the receiver is still ready, in some situations will start pulling
      messages from a remote queue.

      So what can happen is the local queue pulls a message from the remote queue then offers it to the receiver which returns null because it is now full, so we have unnecessaily retrieved a message.

      But the receiver knows it is full after accepting the last message.

      So I suggest we add a flag on simple delivery to signify "receiver now full", this prevents the channel having to try delivery only to find it is rejected.

      Any other solutions ideas?