0 Replies Latest reply on Sep 28, 2005 11:46 AM by Rohan Talip

    QueueReceiver starved in receive()?

    Rohan Talip Newbie

      Just repeating a query I posted before on http://jboss.com/index.html?module=bb&op=viewtopic&t=54596


      I'm wondering if JBossMQ distributes the load evenly across multiple QueueReceivers or if it is just the first QueueReceiver to poll the master node (i.e. broker in ActiveMQ speak) that gets the message off the queue, hence leading to possible 'starvation'?

      From what I have observed empirically, on our system the QueueReceiver on the master node gets more messages than the 2nd node, while the 3rd node doesn't get many messages.

      Is this configurable? i.e. is there an attribute that can be set for some sort of round-robin delivery/receipt?

      Thanks for any help.

      Regards,

      Rohan


      It seems to happen to us quite frequently that a JMS QueueReceiver running in a single thread in a JBoss instance (not the HA master node), receives a lot of messages initially but then eventually is blocked, waiting in the receive() method and never actually receives any messages from a queue, although other QueueReceivers in other JBoss instances (including one HA master and one non-master node) on other machines are happily receiving messages at the same time as this one is blocked.

      We have to restart JBoss to get it to start receiving messages again (although we could probably restart the service in question via JMX).

      Is there a reasonable explanation for no further messages being received by a particular QueueReceiver?

      Is there a way to fix this via some configuration option in a file somewhere or even programmatically?

      I haven't been able to find anything in the Wiki or forums.

      Thanks for any help.

      Regards,

      Rohan