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