<div dir="ltr">rabbitmq-c does support publisher confirms.  (they can be enabled with amqp_confirm_select() on a per-channel basis)/<div><br></div><div style>rabbitmq-c has partial support for AMQP heartbeats. The library understands heartbeats from an AMQP protocol level, and can properly send and receive heartbeat frames, however rabbitmq-c does not provide an event loop to send and receive these heartbeat frames, it is up to the application to provide that logic.</div>
<div style><br></div><div style>-Alan</div><div style><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Mar 19, 2013 at 3:05 AM, Tim Watson <span dir="ltr">&lt;<a href="mailto:tim@rabbitmq.com" target="_blank">tim@rabbitmq.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<div class="im"><br>
On 19 Mar 2013, at 09:54, VIKALP HANDA wrote:<br>
&gt; The messages are not arriving at the queue though being sent by the producer. That means, no messages no processing. I think it might be the case of peer connection being closed. Is there any parameter or something that sets the connection timeout? I am using rabbitmq version 3.0.3.<br>

&gt;<br>
<br>
</div>Connection timeouts are mostly determined by the underlying TCP stack and operating system configuration. If you have sent a message and it is not arriving at the queue, can you see it arriving at the exchange it is being sent to? If it *does* arrive at the exchange, this is probably indicative of an error in your bindings (between the published-to exchange and the queue from which you wish to receive messages sent to that exchange). If it does *not* arrive at the exchange, then you should check that the network link is established and working at the time of sending. There are various ways to do this, but a simple mechanism to ensure messages arrive is to enable publisher confirms (see <a href="http://rabbitmq.com/confirms.html" target="_blank">http://rabbitmq.com/confirms.html</a> for details) which will ensure that the brokers sends an ACK for each message it has taken responsibility for - the reliability guide (<a href="http://www.rabbitmq.com/reliability.html" target="_blank">http://www.rabbitmq.com/reliability.html</a>) has some more information about this too.<br>

<br>
I have no idea if the amqp-c client has any support for publisher confirms. If it does not, then you can verify the state of the connection(s) using the management plugin and/or a tool such as wireshark. You can also use the firehose tracer (<a href="http://www.rabbitmq.com/firehose.html" target="_blank">http://www.rabbitmq.com/firehose.html</a>) to trace message routing through your topology.<br>

<br>
Cheers,<br>
Tim<br>
<div class="im"><br>
&gt;<br>
&gt; On Tue, Mar 19, 2013 at 2:57 PM, Tim Watson &lt;<a href="mailto:tim@rabbitmq.com">tim@rabbitmq.com</a>&gt; wrote:<br>
&gt; Hi,<br>
&gt;<br>
&gt; On 19 Mar 2013, at 08:36, VIKALP HANDA wrote:<br>
&gt; &gt; Actually I am new to Rabbitmq and am using amqp-c client as a base for my C++ wrapper.<br>
&gt; &gt; I have created a consumer which stops responding after some time as well as after bulk of messages being sent to it.<br>
&gt;<br>
&gt; What does &#39;stops responding&#39; actually mean? Does the consumer cease processing messages (when there are still un-acked messages in the queue(s) it is consuming from) or is the problem something else.<br>
&gt;<br>
&gt; &gt; I have heartbeat count =0 and in the management plugin view its showing that the connections are still live.<br>
&gt;<br>
&gt; Just because the server still sees a connection, doesn&#39;t mean that the physical network link remains - operating systems can take &#39;quite some time&#39; to notice unresponsive peers. Also, I didn&#39;t realise that the amqp-c client had support for heartbeats? Perhaps the maintainer can clear that up though, as it&#39;s quite possible it does but I&#39;ve simply forgotten.<br>

&gt;<br>
&gt; &gt; Could you please help me  in rectifying the issue.<br>
&gt; &gt;<br>
&gt;<br>
&gt; We&#39;ll do our best to help. If you could clarify what specific (and unexpected) behaviour your seeing in the consumer, then we&#39;ll take it from there.<br>
&gt;<br>
&gt; Cheers!<br>
&gt; Tim<br>
&gt; _______________________________________________<br>
&gt; rabbitmq-discuss mailing list<br>
&gt; <a href="mailto:rabbitmq-discuss@lists.rabbitmq.com">rabbitmq-discuss@lists.rabbitmq.com</a><br>
&gt; <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>
&gt;<br>
</div>&gt; &lt;Rabbitmq.png&gt;_______________________________________________<br>
<div class="HOEnZb"><div class="h5">&gt; rabbitmq-discuss mailing list<br>
&gt; <a href="mailto:rabbitmq-discuss@lists.rabbitmq.com">rabbitmq-discuss@lists.rabbitmq.com</a><br>
&gt; <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>
_______________________________________________<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>
</div></div></blockquote></div><br></div>