[rabbitmq-discuss] message acknowledment

Rob Harrop rob at rabbitmq.com
Thu Oct 14 19:16:23 BST 2010


When you consume a message, either with basic.get or basic.consume you have control over the noAck flag. 

When you set noAck=true, messages are considered automatically acknowledged as soon as they have been delivered.

With noAck=false, messages must be acknowledged manually with basic.ack.


For example, in Java, you can use noAck=true like this:

	GetResponse theResp = channel.basicGet("queue", true);
	// message is acknowledged now and won't be redelivered for this queue

With noAck=false:

	try {
		GetResponse theResp = channel.basicGet("queue", true);
		if(theResp != null) {
			doSomething(theResp);
			channel.basicAck(theResp.getEnvelope().getDeliveryTag(), false);
		}
	catch(Exception ex) {
		// processing error, close the channel
		channel.close();
	}

After the channel is closed, the message will be redelivered to another consumer on that queue.

Hope this helps!

Rob

On 13 Oct 2010, at 08:21, MOTEW wrote:

> 
> hello to all.
> i am working on rabbitmq 
> if the consumer get the mesage will he send some acknowledment to
> rabbitmq???
> 
>>> or what about  rabbitmq acknowledment policies???
> 
>>> if the message is lost whether due to node down or else how it is
> relievered to the consumer without any error message to the publisher????and
> also after successful delievery we want to delete it from broker's queue???
> 
> any help is appreciable
> 
> 
> 
> -- 
> View this message in context: http://old.nabble.com/message-acknowledment-tp29950181p29950181.html
> Sent from the RabbitMQ mailing list archive at Nabble.com.
> 
> _______________________________________________
> rabbitmq-discuss mailing list
> rabbitmq-discuss at lists.rabbitmq.com
> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss



More information about the rabbitmq-discuss mailing list