could you try with a later version, weve fixed some stuff on paging since then, also check you have no stale subscribers that could cause starvation
Thanks Andy - We're looking to upgrade asap (new environment config is in QA). For now, is there a good way to tell if a subscriber is "stale"? Can you explain the starvation scenario? I'm imagining a topic distributing to a temporary queue with no consumers, or to a queue that 'thinks it has consumers' - but I may have it wrong. Interestingly, the pile up is on the topic, not the child queue - not sure if that is relevant.
ok, firstly we dont use Topics on the server, its really just a facade for JMS, we only have addresses, queues and consumers. A topic is bsically an address, i.e. topic.jms.myTopic, that has a queue for each subscription, note that the queue is durable for durable subscriptions and temporary for non durable subscribers. Now starvation is to do with flow control and paging, lets assume you are using paging which is the default, if a durable subscriber is created but then disconnects the queue still exists, now since paging occurs before routing we will get to a point where the address is full and paging (or other flow control) kicks in. At this point no more messages are routed to the queue, this is fine for this subscriber but any other subscribers on the address will also not receive any messages, this is starvation.
You can use the admin or jmx console to see if there are any queues/subscribers left.