You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by bu...@apache.org on 2013/11/05 18:21:55 UTC

svn commit: r885529 - in /websites/production/activemq/content: cache/main.pageCache stomp.html

Author: buildbot
Date: Tue Nov  5 17:21:55 2013
New Revision: 885529

Log:
Production update by buildbot for activemq

Modified:
    websites/production/activemq/content/cache/main.pageCache
    websites/production/activemq/content/stomp.html

Modified: websites/production/activemq/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.

Modified: websites/production/activemq/content/stomp.html
==============================================================================
--- websites/production/activemq/content/stomp.html (original)
+++ websites/production/activemq/content/stomp.html Tue Nov  5 17:21:55 2013
@@ -135,22 +135,31 @@ activemq xbean:foo.xml
 
 <h3><a shape="rect" name="Stomp-Heartbeatgraceperiods"></a>Heart-beat grace periods</h3>
 
-<p>STOMP supports the <a shape="rect" class="external-link" href="http://stomp.github.io/stomp-specification-1.2.html#Heart-beating" rel="nofollow">notion of heart beats</a> to be able to detect the health of the underlying TCP connection. </p>
+<p>The STOMP protocol (version 1.1 or greater) <a shape="rect" class="external-link" href="http://stomp.github.io/stomp-specification-1.2.html#Heart-beating" rel="nofollow">defines the concept of heart beats</a> as a method by which a client and broker can determine the health of the underlying TCP connection between them.</p>
 
-<p>ActiveMQ implements this heart beating functionality, however before <b>5.9.0</b>, the heart-beat timeouts were strict; i.e., the were enforced without any kind of grace period.</p>
+<p>ActiveMQ offers support for STOMP defined heart beating provided the client is using version 1.1 (or greater) of the protocol.  Prior to ActiveMQ 5.9.0, however, the enforcement of the 'read' heart-beat timeout (that is, a heart-beat sent from the client to the broker) was strict. In other words, the broker was intolerant of late arriving read heart-beats from the client. This resulted in the broker concluding that the client was no longer present causing it to close its side of the client's connection when the client failed to honor it's configured heart-beat settings.  </p>
 
-<p>The STOMP spec does does state that the client/receiver should be tolerant of timing inaccuracies, so in version <b>5.9.0</b> we've added the following parameter:</p>
+<p>As of version 5.9.0 the timeout enforcement for read heart-beats is now configurable via a new transport option,<br clear="none">
+<b>transport.hbGracePeriodMultiplier</b>:</p>
 
 <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-tcp://host:port?transport.hbGracePeriodMultiplier=1.5
+&lt;transportConnectors&gt;
+   &lt;transportConnector name="stomp"
+uri="stomp://localhost:61613?transport.hbGracePeriodMultiplier=1.5"/&gt;
+&lt;/transportConnectors&gt;
 ]]></script>
 </div></div>
 
-<p>This setting will allow the client to use a grace period when checking heart beats from the server.</p>
+<p>This multiplier is used to calculate the effective read heart-beat timeout the broker will enforce for each client's connection. The multiplier is applied to the read-timeout interval the client specifies in its CONNECT frame:</p>
 
-<ul><li>Please check the <a shape="rect" class="external-link" href="http://stomp.github.io/stomp-specification-1.2.html#Heart-beating" rel="nofollow">STOMP specification</a> for the details on heart-beating</li><li>The JIRA that implemented this: <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/AMQ-4674">ActiveMQ 5.x does not support the notion of a grace-period for heart beats as supported by the STOMP protocol</a></li></ul>
+<p>&lt;client specified read heart-beat interval&gt; * &lt;grace periodmultiplier&gt; == &lt;broker enforced read heart-beat timeout interval&gt;</p>
 
+<p>For backward compatibility, if the grace period multiplier is not configured the default enforcement mode remains strict, e.g., transport.hbGracePeriodMultiplier=1.0. Attempts to configure the grace period multiplier to a value less than, or equal to 1.0 will be silently ignored.</p>
+
+<p>STOMP clients that wish to be tolerant of late arriving heart-beats from the broker must implement their own solution for doing so.</p>
+
+<ul><li>Please check the <a shape="rect" class="external-link" href="http://stomp.github.io/stomp-specification-1.2.html#Heart-beating" rel="nofollow">STOMP specification</a> for the details on heart-beating</li><li>The JIRA that implemented this: <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/AMQ-4674">ActiveMQ 5.x does not support the notion of a grace-period for heart beats as supported by the STOMP protocol</a></li></ul>
 
 
 <h3><a shape="rect" name="Stomp-WorkingwithDestinationswithStomp"></a>Working with Destinations with Stomp</h3>