On 7/20/06, Adrian Neaga <[EMAIL PROTECTED]> wrote:
Exactly, no messages get delivered until the one that failed is retried for 3 times, i've been told that is the way queues work.
Yes - otherwise ordering would be broken.
What i would want is to have messages delivered no matter if there was one failed before, that kind of breaking the queue. I dont want to wait 1 hours for it to try redelivering a message for the 3d time to get all the messages that came in the meantime. I'd appreciate any ideas of how this could be implemented.
Well, normally you use a queue as a load balancer. Put 1000 messages on a queue and have them load balanced across many threads, mayb in many JVMs. So just because 1 thread is redeliverying a message a few times to deal with failure doesn't mean that other threads/JVMs can't be processing the other messages.. So if you really don't want to stop 1 bad message slowing you down, run many consumers. You can control exactly how long to spend trying to redeliver failed messages; then once that is reached, its sent to a dead letter queue. So you could if you want just retry once (or never) and just send the message to a dead letter queue then at some point in the future (hours or days even) replay messages on the dead letter queue back again. -- James ------- http://radio.weblogs.com/0112098/
