James Strachan wrote:
On 06/03/2008, David Sitsky <[EMAIL PROTECTED]> wrote:
I am sure it will be application-dependent, so making it a policy makes
 a lot of sense.  For my application, I only have a pending size of 1
 since each work item's processing requirements can vary tremendously.

I wonder could the same code be smart enough to work in the 2
different modes based on the prefetch size?

i.e. use the default if the consumers's prefetch size is > 100 or
something or use David's approach if its smaller

If not then using destination policies sounds fine to me; just
wondered if we could be smart enough to use the right policy based on
the consumer configuration?

I think it is very much application-dependent - and it is based on more than just the prefetch size.

In my situation, I may have 500,000 messages in my system that need to be delivered, but I don't want them to be delivered to pending queues unnecessarily, since it may be some time before the consumers have a chance to eat them up. I also need a large queue page size since I can't do a commit() after each message received. So I also have a lot of uncommitted messages floating about the system - maybe 24,000 at a given time.

I really need the requirement for only putting a message to a consumer's pending queue when it can process it. Otherwise I found the pending queues for each consumer would grow to be extremely large, consuming unnecessary CPU and memory resources. With my changes, the broker's usage was kept nice and small.

A lot of this may only occur for applications that have a large queue page size.

It feels right for this to be a policy option... I know how complex different messaging application performance requirements can be!

Cheers,
David








--
Cheers,
David

Nuix Pty Ltd
Suite 79, 89 Jones St, Ultimo NSW 2007, Australia    Ph: +61 2 9280 0699
Web: http://www.nuix.com                            Fax: +61 2 9212 6902

Reply via email to