[rabbitmq-discuss] Highest Reliability simple publish to a queue

Matt Gurney - gmail mattgurney at gmail.com
Wed Oct 19 11:44:28 BST 2011

Thanks Simone, I found some good info on the link you provided which was
it describes the use of WaitForConfirms() but I cannot see any explanation
of WaitForConfirmsOrDie() anywhere. I have checked the .Net API doc, .Net
Client Library User Guide and the archives of this email list.


-----Original Message-----
From: Busoli, Simone [mailto:Simone.Busoli at ferrari.com] 
Sent: Wednesday, 19 October 2011 9:26 PM
To: Matt G; rabbitmq-discuss at lists.rabbitmq.com
Subject: RE: [rabbitmq-discuss] Highest Reliability simple publish to a


-----Original Message-----
From: rabbitmq-discuss-bounces at lists.rabbitmq.com
[mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Matt G
Sent: mercoledì 19 ottobre 2011 12:16
To: rabbitmq-discuss at lists.rabbitmq.com
Subject: Re: [rabbitmq-discuss] Highest Reliability simple publish to a

Thanks Simone, Which of my six questions do you think I can find the answer
for in the archives, I am not finding the answers I am after.
If anyone else can have a quick look at my questions it would be much
appreciated, I am a new comer to RMQ and I think my questions may be simple
for anyone with some experience.

Our requirement is to reliably persist the web service payload into a RMQ as
per the "Responsibility Transfer" pattern on page 21 of the RabbitMQ .Net
Client Library User Guide. I have implemented the options as described in
that section, I am just checking if there is anything else I need.

The lack of any documentation on WaitForConfirmsOrDie() bothers me,
currently I am assuming that it blocks program execution until all
confirm/nack/ack/reply due to the Model/Channel.ConfirmSelect are received.
But I can not find this documented anywhere. I mean, is that what it does,
how long does it wait before the "Die" and what happens when it "Dies" etc.

On Oct 19, 6:35 am, Simone Busoli <simone.bus... at gmail.com> wrote:
> Hi Mike, this has been asked several times on the list recently, I 
> think you will find your answer by searching the archives.
> By the way, I am curious why you want to do everything synchronously 
> as you wouldn't need Rabbit for that.
> On Oct 18, 2011 4:32 PM, "Matt G" <mattgur... at gmail.com> wrote:
> > Hi,
> > I have a simple scenario where a web service will receive a http 
> > request and I would like to insert the request into a queue, and be 
> > sure the message has arrived on the queue before synchronously 
> > responding to the http request.
> > Ideally I would like RMQ to "guarantee" that the message has been 
> > delivered to the queue. I have been using IBM MQ and TIBCO EMS (JMS
> > implementation) for many years, but I am new to RMQ.
> > Performance is not an issue, the volume will not be an issue.
> > I am using c# with latest AMQ versions on Windows and Linux.
> > So far it appears to me that I should use the following, can you 
> > review my list and edit as necessary:
> > Durable exchange
> > ExchangeType.Direct
> > Durable queue
> > Persistent message (Delivery Mode = 2) Mandatory message 
> > Model/Channel.ConfirmSelect &  Model.WaitForConfirmsOrDie();
> > I also setup event handlers BasicAcks, BasicNacks & BasicReturn.
> > If for testing purposes I unbind the queue from the exchange, and 
> > send a single message,  I get a BasicAck and a BasicReturn(NO_ROUTE) 
> > back, however the Model.WaitForConfirmsOrDie() returns without 
> > error. This seems inconsistent in that my message has been lost as 
> > there is no queue bound to the exchange and I have specified 
> > mandatory and every persistent option I can find. Is this correct, 
> > or am I doing something wrong? Do I need to do/check both 
> > (WaitForConfirms & BasicReturn event
> > msg) to be sure the message was successfully delivered to the queue?
> > Where is the documentation for API calls which are not documented in 
> > the API doc, an example is WaitForConfirmsOrDie, but there are many 
> > others?
> > I read one of the other posts directing people away from 
> > transactions and towards the Model/Channel.ConfirmSelect &
> > Model.WaitForConfirmsOrDie() model, so I have not investigated 
> > transactions.
> > What about connection heart beating? I know from my experience with 
> > other products HB's are good way to keep the client and server 
> > in-sync and aware if the other party has gone off line. Should I 
> > overwrite the default which appears to be no heartbeats?
> > I am not currently using any of the helper/pattern classes, would 
> > one of those be suitable for my requirements for high reliability.
> > Thanks,
> > Matt.
> > _______________________________________________
> > rabbitmq-discuss mailing list
> > rabbitmq-disc... at lists.rabbitmq.com
> >https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
> _______________________________________________
> rabbitmq-discuss mailing list
> rabbitmq-disc... at lists.rabbitmq.comhttps://lists.rabbitmq.com/cgi-bin/
> mailman/listinfo/rabbitmq-discuss
rabbitmq-discuss mailing list
rabbitmq-discuss at lists.rabbitmq.com

Questo messaggio è da intendersi esclusivamente ad uso del destinatario e
può contenere informazioni che sono di natura privilegiata, confidenziale o
non divulgabile secondo le leggi vigenti. Se il lettore del presente
messaggio non è il destinatario designato, o il dipendente/agente
responsabile per la consegna del messaggio al destinatario designato, si
informa che ogni disseminazione, distribuzione o copiatura di questa
comunicazione è strettamente proibita anche ai sensi del decreto legislativo
196/03 . Se avete ricevuto questo messaggio per errore, vi preghiamo di
notificarcelo immediatamente a mezzo e-mail di risposta e successivamente di
procedere alla cancellazione di questa e-mail e relativi allegati dal vostro
This message is intended only for the use of the addressee and may contain
information that is privileged, confidential and exempt from disclosure
under applicable law. If the reader of this message is not the intended
recipient, or the employee or agent responsible for delivering the message
to the intended recipient, you are hereby notified that any dissemination,
distribution or copying of this communication is strictly prohibited. If you
have received this e-mail in error, please notify us immediately by return
e-mail and delete this e-mail and all attachments from your system.

More information about the rabbitmq-discuss mailing list