2008/10/22 logictude <[EMAIL PROTECTED]>: > > Here's the nutshell: > > I have AMQ (v5.1.0) running great and my clients subscribe just fine. At > this moment I have between two and three clients connected to AMQ (queue, > FYI, not topic). > > Each client reads incoming messages and checks for a keyword against the DB. > When a client does find a match it sends a simple ACK frame back to the > broker and everything is great. When there ISN'T a match, the client holds > onto the message - because there's no ACK sent back - and never releases the > message for any other client to consumer/taste/confirm.
FWIW this isn't a good way of using messaging; you should ideally only consume messages that you can actually process. e.g. using a selector or queue naming strategy or something > Is there a way to drop (NO-ACK) the message so another client can pick it > up? Yes, use transactions and rollback. Though I think a better solution would be to try to only consume messages you can process. If noone can process the messages for any reason, consume the message but send some kind of 'match failed' message to another queue -- James ------- http://macstrac.blogspot.com/ Open Source Integration http://fusesource.com/