[rabbitmq-discuss] Consumer's confirm

Steve Powell steve at rabbitmq.com
Thu Jul 19 15:18:17 BST 2012


(Copy for the discussion list.)

Steve Powell
steve at rabbitmq.com
[wrk: +44-2380-111-528] [mob: +44-7815-838-558]

------reply from ML 	Date: 	19 July 2012 14:48:02 GMT+01:00
Dear Steve,
Thanks for your help :)
I read that tutorial before and developed a project-specific usage of rabbitMQ.
your answer was very helpful to me.
-- 
Sincerely 
ML

On 19 Jul 2012, at 12:11, Steve Powell wrote:

> ML,
> 
> I realise that I haven't really answered your question:
> 
>>> what should I do to route consumers ack to producer?
> 
> 
> The RabbitMQ broker isolates the publishers from knowledge of the
> consumers and vice versa; this includes knowing if there are there and
> have acknowledged the message. This makes it tricky to get RabbitMQ to
> do what you want directly.
> 
> One way to achieve it is to use reply-to queues: temporary queues which
> the publisher sets up (for a particular message, or for many messages)
> which the consumer can then publish a response to. If the reply-to queue
> is provided to the consumer with the published message, the consumer can
> programmatically respond to the publisher without having to know who the
> publisher is (or if it is available, etc.).
> 
> This mechanism is exploited in the RPC tutorial [1], which you should
> read. With RPC, the client (caller) blocks until the reply is received;
> but you might not want to do that. I'm sure this will help you to
> implement a solution for your case.
> 
> Good luck,
> 
> Steve Powell
> steve at rabbitmq.com
> [wrk: +44-2380-111-528] [mob: +44-7815-838-558]
> 
> [1] http://www.rabbitmq.com/tutorials/tutorial-six-java.html
> 
>> ML,
>> 
>> The definitive guide to Publish-confirms is in the extensions
>> documentation [1], where it says:
>> 
>>> By confirming a message the broker assumes responsibility for it and
>>> indicates that it has done something it deems reasonable with it.
>>> Unroutable mandatory or immediate messages are confirmed right after
>>> thebasic.return. Transient messages are confirmed as soon as they arrive
>>> on all the queues they were routed to. Persistent messages are confirmed
>>> when all queues have either delivered the message and received an
>>> acknowledgement (if required), or persisted the message.
>> 
>> Notice that a confirmation does not necessarily mean that a consumer has
>> received and acknowledged the message; in general it means that RabbitMQ
>> has successfully 'processed' the message, which might mean 'persisted' it, if
>> it is persistent, or returned it, if it was unroutable (and marked
>> mandatory), etc.
>> 
>> You may wish to investigate the 'immediate' and 'mandatory' flags. Be
>> aware that you cannot use 'publisher confirms' on a transactional
>> channel.
>> 
>> [1] http://www.rabbitmq.com/extensions.html#confirms
>> 
>> Steve Powell
>> steve at rabbitmq.com
>> [wrk: +44-2380-111-528] [mob: +44-7815-838-558]
>> 
>> On 19 Jul 2012, at 10:25, Mohsen Lotfizad wrote:
>> 
>>> Hi
>>> 
>>> I have a project that producers want to assure their message are delivered to consumers.
>>> I make a Google search and find rabbitMQ transaction and confirm from (http://www.rabbitmq.com/blog/2011/02/10/introducing-publisher-confirms/) . I download discussed examples and run them. But I comment the consumer part. with my surprise producer gives ack, even if I uncomment  consumer part and send NACK instead of ack!
>>> 
>>> what should I do to route consumers ack to producer?
>>> 
>>> ps: does com.rabbitmq.client.Channel#addReturnListener helps me?
>>> 
>>> -- 
>>> 
>>> Sincerely 
>>> ML
>>> 
>>> _______________________________________________
>>> rabbitmq-discuss mailing list
>>> rabbitmq-discuss at lists.rabbitmq.com
>>> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
>> 
>> _______________________________________________
>> rabbitmq-discuss mailing list
>> rabbitmq-discuss at lists.rabbitmq.com
>> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
> 
> _______________________________________________
> rabbitmq-discuss mailing list
> rabbitmq-discuss at lists.rabbitmq.com
> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20120719/e91dea8a/attachment.htm>


More information about the rabbitmq-discuss mailing list