blob: b26ee6918c0c8bfca55f0d38a9376b3aa0ebcc72 [file] [log] [blame]
<div class="wiki-content maincontent"><h3 id="ConfiguringWireFormats-TheOpenWireWireFormat">The OpenWire Wire Format</h3><p>OpenWire is the default wire format used by ActiveMQ.&#160; It provides a highly efficient binary format for high speed messaging.&#160; OpenWire options can be configured on a JMS client's connection URI or on a broker's transport bind URI.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Option</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>cacheEnabled</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Should commonly repeated values be cached so that less marshaling occurs?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>cacheSize</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>1024</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>When&#160;<strong><code>cacheEnabled=true</code></strong> then this parameter is used to specify the number of values to be cached.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>maxInactivityDuration</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>30000</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The maximum <a shape="rect" href="activemq-inactivitymonitor.html">inactivity</a> duration (before which the socket is considered dead) in milliseconds. On some platforms it can take a long time for a socket to die. Therefore allow the broker to kill connections when they have been inactive for the configured period of time. Used by some transports to enable a keep alive heart beat feature.</p><p>Inactivity monitoring is disabled when set to a value <strong><code>&lt;= 0</code></strong>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>maxInactivityDurationInitalDelay</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>10000</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The initial delay before starting <a shape="rect" href="activemq-inactivitymonitor.html">inactivity</a> checks.</p><p>Yes, the word&#160;<strong><code>'Inital'</code></strong> is supposed to be misspelled like that.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>maxFrameSize</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>MAX_LONG</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Maximum allowed frame size. Can help help prevent OOM DOS attacks.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>sizePrefixDisabled</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Should the size of the packet be prefixed before each packet is marshaled?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>stackTraceEnabled</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Should the stack trace of exception that occur on the broker be sent to the client?</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>tcpNoDelayEnabled</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Does not affect the wire format, but provides a hint to the peer that&#160;<strong><code>TCP_NODELAY</code></strong> should be enabled on the communications Socket.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>tightEncodingEnabled</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Should wire size be optimized over CPU usage?</p></td></tr></tbody></table></div><div class="confluence-information-macro confluence-information-macro-warning"><p class="title">Use the Correct Prefix!</p><span class="aui-icon aui-icon-small aui-iconfont-error confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Wire format options must have the prefix&#160;<strong><code>wireFormat.</code></strong> to take effect, e.g.,&#160;<strong><code>wireFormat.maxInactivityDuration=10000</code></strong>. Options missing this prefix will be ignored.</p></div></div><h4 id="ConfiguringWireFormats-ExampleConfigurations">Example Configurations</h4><p><strong>Java:</strong></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">ActiveMQConnectionFactory cf = new ActiveMQConnectionFactory("tcp://localhost:61616?wireFormat.cacheEnabled=false&amp;wireFormat.tightEncodingEnabled=false");</pre>
</div></div><p><strong><br clear="none"></strong></p><p>&#160;</p><p><strong>Spring:</strong></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;bean class="org.apache.activemq.ActiveMQConnectionFactory"&gt;
&lt;property name="brokerURL" value="failover:(tcp://localhost:61616?jms.optimizeAcknowledge=false&amp;wireFormat.maxInactivityDuration=30000)"/&gt;
&lt;!-- other options... --&gt;
&lt;/bean&gt;</pre>
</div></div><p>&#160;</p><p>&#160;</p><p><strong><br clear="none"></strong></p><p>&#160;</p></div>