Thanks Martin!<div><br></div><div>In regard to your comment about writing to a database. That is one of the major features I was looking for in queue management software. I do not want to keep track of and maintain a database schema at every host I have set up to run a piece of my service.<br>
</div><div><br></div><div>I will be using the queue software to distribute the load of processing a task across many servers...I.e.</div><div><br></div><div>Step 1. Receive and store audio file from user on server A</div>
<div>Step 2. Send file to server B to be converted to a different format.</div><div>Step 3. Send file to server C to have it delivered via e-mail.<br></div><div>Step 4. Send message to server D to have the meta data stored in a relational database table.</div>
<div><br></div><div>Now you can see the problem if I were to store the file in an outbound queue and the server were to lose power. I can't have a file disappear from within the system. So in my application some sort of fault tolerant mechanisms should be used here.</div>
<div><br></div><div>I really appreciate your reply but it looks like in my case I will have to look at another queue software that has this sort of feature.</div><div><br></div><div>MQ does look like a good project, and one feature that specifically caught my eye was the amount of message per second and the sending rate was in the megabits.. or was it gigabits?!!! made it really impressive.<br>
</div><div><br></div><div>I will keepMQ in mind for a future project.<br></div><div><br></div><div>Thank you,<br></div><div><div>Mitchel Constantin</div><div><br><div class="gmail_quote">On Sat, Apr 25, 2009 at 1:25 AM, Martin Sustrik <span dir="ltr"><<a href="mailto:sustrik@fastmq.com">sustrik@fastmq.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Hi Mitchel,<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Congrats on the product, MQ looks really neat.<br>
<br>
I've been evaluating messaging systems for the last week and would really like to try out MQ.<br>
<br>
Are there any C# or .NET examples available?<br>
</blockquote>
<br></div>
Have a look at performance tests (cs_local_thr.cs, cs_remote_thr.cs etc.)<br>
<br>
Use C++ man page for detailed info on the API. Function names, parameter names and semantics are the same for all languages:<br>
<br>
<a href="http://www.zeromq.org/local--files/area:docs-v06/api_thread_t.pdf" target="_blank">http://www.zeromq.org/local--files/area:docs-v06/api_thread_t.pdf</a><div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I did add libclrzmq.dll to one of my .NET projects. However, I couldn't figure out what the next step was.<br>
<br>
Does MQ offer persistent storage for messages? (Basically, to CYA in the event that a server went down and came back up.)<br>
</blockquote>
<br></div>
0MQ doesn't have a server. It uses "brokerless" model. Thus you can choose either to communicate directly between 2 applications or you can write your own mini-broker. Have a look at "chat" example. The "chatroom" component is actually a mini-broker consisting of a single queue.<br>

<br>
As for persistent messages, no, they are not supported at the moment (although on-disk offload of messages is supported). You'll have to write your messages into database by hand. However, note that storing message into database decreases performance by approximately two orders of magnitude, so you should decide whether it's worth of it.<br>

<br>
Hope this helps.<br><font color="#888888">
Martin</font></blockquote></div>
</div></div>