<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body dir="ltr" bgcolor="#ffffff" text="#000000">
<p style="margin-bottom: 0cm; margin-top: 0pt;">I'm happy to say that I
may have found the problem to this issue.</p>
<p style="margin-bottom: 0cm; margin-top: 0pt;"><br>
</p>
<p style="margin-bottom: 0cm; margin-top: 0pt;">If I run rabbitmq from
the command line and NOT through erlsrv (in Windows erlsrv will run as
a Windows service) the process is alive and well and not having any
issues.<br>
</p>
<p style="margin-bottom: 0cm; margin-top: 0pt;"><br>
</p>
<p style="margin-bottom: 0cm; margin-top: 0pt;">If I run it through
erlsrv, it dies after less than 24 hours with the annoying error code
541.<br>
</p>
<p style="margin-bottom: 0cm; margin-top: 0pt;"><br>
</p>
<p style="margin-bottom: 0cm; margin-top: 0pt;">Since Windows is a bit
more annoying with running background processes (its not enough to add
an "&amp;" character :-) ) I wrote a small Windows service that acts as
a delegate and executes rabbitmq's batch file (rabbitmq-server.bat).</p>
<p style="margin-bottom: 0cm; margin-top: 0pt;"><br>
</p>
If the real rabbitmq process dies from whatever reason, the Windows
service will stop as if it died as well. That allows me to mimic the
behavior one would see if running rabbitmq as a background process or
as a task during boot on Linux.<br>
<br>
<p style="margin-bottom: 0cm; margin-top: 0pt;">So far its running for
about 48 hours without a problem.</p>
<p style="margin-bottom: 0cm; margin-top: 0pt;"><br>
</p>
<p style="margin-bottom: 0cm; margin-top: 0pt;">If you want, I can
share the little Windows Service (I called it RabbitMQ Executer) with
the list.</p>
<p style="margin-bottom: 0cm; margin-top: 0pt;">For ease of use and
implementation time I wrote it in C# (in .NET), so it requires the .NET
runtime, but it can easily be written in native C since all it does is
open a thread and executes the RabbitMQ process. <br>
</p>
<p style="margin-bottom: 0cm; margin-top: 0pt;"><br>
</p>
<p style="margin-bottom: 0cm; margin-top: 0pt;">Eran<br>
</p>
<p style="margin-bottom: 0cm; margin-top: 0pt;"><br>
</p>
<p style="margin-bottom: 0cm; margin-top: 0pt;">Eran Sandler wrote:</p>
<blockquote cite="mid:48C91DE6.9090708@gmail.com" type="cite">
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
  <p style="margin-bottom: 0cm; margin-top: 0pt;">Here are the tests.</p>
  <p style="margin-bottom: 0cm; margin-top: 0pt;"><br>
  </p>
  <p style="margin-bottom: 0cm; margin-top: 0pt;">There is the one
project for producing stuff that looks like the messages I'm sending
and a very simple consumer.</p>
  <p style="margin-bottom: 0cm; margin-top: 0pt;"><br>
  </p>
  <p style="margin-bottom: 0cm; margin-top: 0pt;">This is VERY crude (I
did this very quickly) stuff and I might be wrong in my programming
paradigm that I use with RabbitMQ so please let me know of everything I
should change.</p>
  <p style="margin-bottom: 0cm; margin-top: 0pt;"><br>
  </p>
  <p style="margin-bottom: 0cm; margin-top: 0pt;">That's basically what
I
do.</p>
  <p style="margin-bottom: 0cm; margin-top: 0pt;"><br>
  </p>
  <p style="margin-bottom: 0cm; margin-top: 0pt;">Be sure to define the
username, password and virtual. This sample assumes there is a queue
named ActionsQueue and it was already created (creating it with the
CreateQueue sample that comes with the .NET library and making it
durable will make it exactly how I've defined it).</p>
  <p style="margin-bottom: 0cm; margin-top: 0pt;"><br>
  </p>
  <p style="margin-bottom: 0cm; margin-top: 0pt;">I don't use the
automatic consumer that waits for data because I need some flexibility
in that area, that's why I have the sleep part.</p>
  <p style="margin-bottom: 0cm; margin-top: 0pt;"><br>
  </p>
  <p style="margin-bottom: 0cm; margin-top: 0pt;">Hope that will help,<br>
  </p>
  <p style="margin-bottom: 0cm; margin-top: 0pt;">Eran<br>
  </p>
  <p style="margin-bottom: 0cm; margin-top: 0pt;"><br>
  </p>
  <p style="margin-bottom: 0cm; margin-top: 0pt;">Ben Hood wrote:</p>
  <blockquote
 cite="mid:269388e30809110607t6b4907b2l649e9cee1fb514c4@mail.gmail.com"
 type="cite">
    <pre wrap="">Eran,

On Thu, Sep 11, 2008 at 1:57 PM, Eran Sandler <a moz-do-not-send="true"
 class="moz-txt-link-rfc2396E" href="mailto:eran.sandler@gmail.com">&lt;eran.sandler@gmail.com&gt;</a> wrote:
  </pre>
    <blockquote type="cite">
      <pre wrap="">I don't use an exchange. I saw that its possible to use this without an
exchange (but perhaps I'm screwing myself with regards to clustering, I
haven't taken a closer look as to how to work well with clustering).
    </pre>
    </blockquote>
    <pre wrap=""><!---->
No, that's fine. What you are doing is using what is known as the
default exchange. This means that message is routed to a queue with
the same name as the routing key.

  </pre>
    <blockquote type="cite">
      <pre wrap="">I think BasicConsume should work just fine. I saw that it can handle the Ack
automatically. The reason I thought using BasicGet was to keep my options
open as to refuse a message for a point in time where my consuming code will
run on a couple of machines that might get upgraded sequentially. This might
lead to scenario in which I have added a new message type I want to handle
and I don't have the new code on all consumers.
    </pre>
    </blockquote>
    <pre wrap=""><!---->
You can ack manually if you want to. Set the no_ack flag to true and
then make a application specific decision of whether to ack or not in
the onDeliver callback.

  </pre>
    <blockquote type="cite">
      <pre wrap="">Regarding the sample, I will write something quick based on my original code
and send it so it will make your life (and mine) a lot nicer (and quicker)
    </pre>
    </blockquote>
    <pre wrap=""><!---->
Cool, hopefully one of us will get some time to look at it.

Ben
  </pre>
  </blockquote>
  <br>
</blockquote>
<br>
</body>
</html>