<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi,<div><br><div><div>On 28 Sep 2012, at 20:34, <a href="mailto:m.luchak@smartasking.com">m.luchak@smartasking.com</a> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><font face="arial" size="2"><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Hi All,</div><p style="margin:0;padding:0;">&nbsp;</p><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">We are running rabbitmq on Android and continue to have serious problems with maintaining a 3G tcp consumer connection. &nbsp;We have implemented heartbeats but I am struggling to understand the flow to monitor and re-establish connections. &nbsp;If I understand correctly:</div><p style="margin:0;padding:0;">&nbsp;</p><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Enabling heartbeats WITHOUT handling&nbsp;ShutdownSignalException would actually be counter productive as a number of missed heartbeats would close the connection.</div><p style="margin:0;padding:0;">&nbsp;</p><p style="margin:0;padding:0;">&nbsp;</p><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Is the "right way to do it" :</div><p style="margin:0;padding:0;">&nbsp;</p><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Enable heartbeats on the server</div><p style="margin:0;padding:0;">&nbsp;</p><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Setting (in Java)&nbsp;factory.setRequestedHeartbeat(HEARTBEAT_TIMEOUT); &nbsp;will "auto-magically" enable &nbsp; &nbsp; &nbsp;heartbeats on the client and no other call is neccessary to send heartbeats &lt;- (big doubt here)</div><p style="margin:0;padding:0;">&nbsp;</p><div><br></div></font></blockquote><div><br></div><div>Yes, this is enough to set up heartbeats. The connection factory passes the heartbeat settings to the underlying connection, which in turn configures heartbeats. These are enabled on the client *and* the server, so that both ends can know about the other one going away unexpectedly.&nbsp;</div><br><blockquote type="cite"><font face="arial" size="2"><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Handle&nbsp;<span style="font-size: 10pt;">ShutdownSignalException</span><span style="font-size: 10pt;"> cause and reconnect if it was a hard close..</span></div><p style="margin:0;padding:0;">&nbsp;</p><div><br></div></font></blockquote><blockquote type="cite"><font face="arial" size="2"><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><span style="font-size: 10pt;">Does that sound about right?</span></div></font></blockquote><div><br></div><div>Yep, that should do what you're after.</div></div></div></body></html>