<div dir="ltr">Hey Rob,<div><br></div><div>Thanks for the quick response</div><div><br></div><div>We use our message bus to report diagnostic data which means option 3 isn't really an option.<br></div><div>We wouldn't know when a service somewhere was started but dead in the water until our monitoring system noticed a lack of activity later.</div>
<div>Worse we could miss real error reports etc because we'd have no where to send them if we started without a stable connection.</div><div><br></div><div>I guess we'll have to use option 2 and leave our services in a starting state until they manage to connect to RabbitMQ.</div>
<div>I believe a service can request an additional minute of starting time upfront, which should be sufficient in most cases.</div><div><br></div><div>Many thanks,</div><div>Mat B</div></div><div class="gmail_extra"><br><br>
<div class="gmail_quote">On 24 March 2014 15:50, Robert Raschke <span dir="ltr"><<a href="mailto:rtrlists@googlemail.com" target="_blank">rtrlists@googlemail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<p>Hi Mat,</p>
<p>this is a consequence of how the Windows Service is started. The erlsrv.exe reports back to Windows when Erlang has been started. But this in no way means that the application running in the Erlang VM has also finished starting.</p>


<p>Incidentally, this is the way a lot of systems start up. JBoss startup has the exact same issue. Although calling it an issue is debatable :-)</p>
<p>Two ways forward are: 1. Application level interface that allows you to query if your system is up and open for business. 2. Put sleeps into the startup sequence, which appears to be a common remedy, unfortunately. 3. Ignore errors on startup and retry until stable.</p>


<p>Hope this helps,<br>
Robby<br>
</p>
<div style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>I'm u<font face="arial, sans-serif" color="#000000">sing <span style="font-size:12px;text-align:right">RabbitMQ 3.2.1, </span><acronym title="Erlang R16B02 (erts-5.10.3) [64-bit] [smp:4:4] [async-threads:30]" style="background-image:none;border-top-left-radius:2px;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:2px;border-style:none none dotted;border-bottom-width:1px;font-size:12px;text-align:right">Erlang R16B02</acronym></font></div>

<div><br></div>The issue described in the subject causes problems for other services which depend on RabbitMQ<div><br></div><div>For instance if I have windows service X which has a dependency configured for the RabbitMQ windows service then when I start X the RabbitMQ service will be started first</div>

<div><br></div><div>However the RabbitMQ service reports that it's started before it's ready to accept connections</div><div><br></div><div>Hence when service X tries to start it finds it cannot connect to RabbitMQ</div>

<div><br></div><div>This is mostly a problem when the machine is restarted as the services which depend on RabbitMQ may fail to start</div><div><br></div><div>Is this a bug in RabbitMQ's windows service? Is there any way to allow dependencies to work?</div>

<div><br></div><div>Any other suggestion also welcome, although I really want to avoid the equivalent of sleeps</div><div><br></div><div>Thanks,</div><div>Mat B</div></div><br>_______________________________________________<br>


rabbitmq-discuss mailing list<br>
<a href="mailto:rabbitmq-discuss@lists.rabbitmq.com" target="_blank">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>
<br></div>
</blockquote></div><br></div>