blob: e30de9fb6e45ffd690653ee385485a7e59c8b5f8 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<html>
<head>
<link href="http://activemq.apache.org/styles/site.css" rel="stylesheet" type="text/css"/>
<link href="http://activemq.apache.org/styles/type-settings.css" rel="stylesheet" type="text/css"/>
<script src="http://activemq.apache.org/styles/prototype.js" type="text/javascript"></script>
<script src="http://activemq.apache.org/styles/rico.js" type="text/javascript"></script>
<script src="http://activemq.apache.org/styles/site.js" type="text/javascript"></script>
<style type="text/css">
.maincontent { overflow:hidden; }
</style>
<!--[if IE]>
<style type="text/css">
.maincontent { width:100%; }
</style>
<![endif]-->
<link href='http://activemq.apache.org/styles/highlighter/styles/shCore.css' rel='stylesheet' type='text/css' />
<link href='http://activemq.apache.org/styles/highlighter/styles/shThemeEclipse.css' rel='stylesheet' type='text/css' />
<script src='http://activemq.apache.org/styles/highlighter/scripts/shCore.js' type='text/javascript'></script>
<script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushJava.js' type='text/javascript'></script>
<script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushXml.js' type='text/javascript'></script>
<script type="text/javascript">
SyntaxHighlighter.defaults['toolbar'] = false;
SyntaxHighlighter.all();
</script>
<title>
Apache ActiveMQ &#8482; -- AMQP
</title>
</head>
<body>
<div class="white_box">
<div class="header">
<div class="header_l">
<div class="header_r">
</div>
</div>
</div>
<div class="content">
<div class="content_l">
<div class="content_r">
<div>
<!-- Banner -->
<div id="asf_logo">
<div id="activemq_logo">
<a shape="rect" style="float:left; width:280px;display:block;text-indent:-5000px;text-decoration:none;line-height:60px; margin-top:10px; margin-left:100px;" href="http://activemq.apache.org" title="The most popular and powerful open source Message Broker">ActiveMQ</a>
<a shape="rect" style="float:right; width:210px;display:block;text-indent:-5000px;text-decoration:none;line-height:60px; margin-top:15px; margin-right:10px;" href="http://www.apache.org" title="The Apache Software Foundation">ASF</a>
</div>
</div>
<div class="top_red_bar">
<div id="site-breadcrumbs">
<a href="connectivity.html">Connectivity</a>&nbsp;&gt;&nbsp;<a href="protocols.html">Protocols</a>&nbsp;&gt;&nbsp;<a href="amqp.html">AMQP</a>
</div>
<div id="site-quicklinks">
<p><a shape="rect" href="download.html">Download</a> | <a shape="rect" class="external-link" href="http://activemq.apache.org/maven/apidocs/index.html">JavaDocs</a> <a shape="rect" href="javadocs.html">More...</a> | <a shape="rect" href="source.html">Source</a> | <a shape="rect" href="discussion-forums.html">Forums</a> | <a shape="rect" href="support.html">Support</a></p>
</div>
</div>
<table border="0">
<tbody>
<tr>
<td valign="top" width="100%">
<div class="wiki-content maincontent"><p>ActiveMQ supports the <a shape="rect" class="external-link" href="https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=amqp" rel="nofollow">AMQP 1.0</a> protocol which is an OASIS standard.</p><div class="confluence-information-macro confluence-information-macro-information"><p class="title">Availability</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Available from ActiveMQ version <a shape="rect" href="activemq-580-release.html">5.8</a> onward.</p></div></div><h3 id="AMQP-EnablingtheActiveMQBrokerforAMQP">Enabling the ActiveMQ Broker for AMQP</h3><p>To enable AMQP protocol support on the broker add the following transport connector configuration referencing the&#160;<strong><code>amqp</code></strong> scheme in its URI:</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;">&lt;transportConnectors&gt;
&lt;transportConnector name="amqp" uri="amqp://0.0.0.0:5672"/&gt;
&lt;/transportConnectors&gt;
</pre>
</div></div><p>It is enabled in the default ActiveMQ server configuration. For more help see <a shape="rect" href="run-broker.html">Run Broker</a>.</p><h3 id="AMQP-Security">Security</h3><p>The AMQP implementation fully supports an <a shape="rect" href="security.html">ActiveMQ security</a> mechanism. This allows the broker to accept plain SASL authentication. Authorization policies are applied to a destination when it's accessed (read/write).</p><div class="confluence-information-macro confluence-information-macro-tip"><p class="title">SSL</p><span class="aui-icon aui-icon-small aui-iconfont-approve confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>For additional security AMQP can be configured to run over SSL as described in the following section.</p></div></div><h3 id="AMQP-EnablingAMQPoverNIO">Enabling AMQP over NIO</h3><p>For better scalability (and performance) the AMQP protocol should be configured to use NIO, rather than the default of TCP. To use NIO use the transport scheme <strong><code>amqp+nio</code></strong> instead of <strong><code>amqp</code></strong>.</p><p>Example:</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;transportConnector name="amqp+nio" uri="amqp+nio://localhost:5672"/&gt;
</pre>
</div></div><p>This transport uses the <a shape="rect" class="external-link" href="http://activemq.apache.org/configuring-transports.html#ConfiguringTransports-TheNIOTransport">NIO transport</a> underneath and will generally use much less threads than the standard connector. This connector can help if you want to use <a shape="rect" class="external-link" href="http://activemq.apache.org/how-do-i-configure-10s-of-1000s-of-queues-in-a-single-broker-.html">large number of queues</a></p><h3 id="AMQP-EnablingAMQPoverSSL">Enabling AMQP over SSL</h3><p>It's easy to configure ActiveMQ to use AMQP over a SSL connection. To use SSL use the transport scheme <strong><code>amqp+ssl</code></strong> instead of <strong><code>amqp</code></strong>.</p><p>Example:</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;transportConnector name="amqp+ssl" uri="amqp+ssl://localhost:5671"/&gt;
</pre>
</div></div><p>For more details on using SSL with ActiveMQ, see the following article (<a shape="rect" class="external-link" href="http://activemq.apache.org/how-do-i-use-ssl.html">How do I use SSL</a>).</p><h3 id="AMQP-WorkingwithDestinationswithAMQP">Working with Destinations with AMQP</h3><p>You should prefix destination address with&#160;<strong><code>queue://</code></strong> to use queue based destinations or&#160;<strong><code>topic://</code></strong> to use topic based destinations. The destination type defaults to queue when the destination prefix is omitted.</p><h3 id="AMQP-PrefetchSizeandCredit">Prefetch Size and Credit</h3><p>When AMQP receiver connects to the broker it's mapped to the JMS consumer. This JMS consumer has to have appropriate <a shape="rect" href="what-is-the-prefetch-limit-for.html">prefetch size</a> set.&#160;<span style="line-height: 1.4285715;">The broker will honor the credit set by the client or use the default value of&#160;<strong><code>1000</code></strong> if client doesn't set it.</span></p><p>Example: tuning the default <strong><code>prefetch</code></strong> size:</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;transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;amp;wireFormat.maxFrameSize=104857600&amp;amp;transport.prefetch=10"/&gt;</pre>
</div></div><p class="p1">In this case, client preference will be ignored and the configured value will be used.</p><p class="p1">You can also tune broker-side&#160;<strong><code>amqp</code></strong> receiver link that handles incoming messages. It will use credit of&#160;<strong><code>1000</code></strong> messages by default, but you can override this by using&#160;<span><strong><code>producerCredit</code></strong> property, like&#160;</span></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;transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;amp;wireFormat.maxFrameSize=104857600&amp;amp;transport.producerCredit=10000"/&gt;</pre>
</div></div><h3 id="AMQP-MappingtoJMS">Mapping to JMS</h3><p>There are three basic conversion strategies that can be used with AMQP and inter-operating with the JMS API.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Strategy</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>native</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>(<strong>Default</strong>) Wraps the bytes of the AMQP message into a JMS&#160;<strong><code>BytesMessage</code></strong> and maps the headers of the AMQP message to headers on the JMS message.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>raw</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Wraps the bytes of the AMQP message into a JMS <strong><code>BytesMessage</code></strong>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>jms</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Maps headers of the AMQP message to JMS message headers and the body of the AMQP message to the JMS body.</p></td></tr></tbody></table></div><p>Set the <strong>transformer</strong> transport option on the&#160;<strong><code>transportConnector</code></strong> to the desired mapping strategy. For example, to inter-operate with JMS at the payload level, set the <strong><code>transformer</code></strong> option to <strong><code>jms</code></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;transportConnector name="amqp" uri="amqp://localhost:5672?transport.transformer=jms"/&gt;
</pre>
</div></div><h4 id="AMQP-HowAMQPMessageHeadersareMappedtoJMSHeaders">How AMQP Message Headers are Mapped to JMS Headers</h4><p>The following headers are mapped regardless of the transformer used:</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>AMQP Message</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>JMS Message</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Notes</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>JMS_AMQP_NATIVE</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Will be set to&#160;<strong><code>true</code></strong> if the transformer is&#160;<strong><code>native</code></strong> or <strong><code>raw</code></strong>,&#160;<strong><code>false</code></strong> otherwise.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>message-format</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>JMS_AMQP_MESSAGE_FORMAT</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr></tbody></table></div><p>The following header mappings apply when the transformer is either <strong><code>native</code></strong> or <strong><code>jms</code></strong>:</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>AMQP Message</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>JMS Message</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Notes</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>application-properties.JMSXGroupID</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>JMSXGroupID</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>application-properties.JMSXGroupSequence</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>JMSXGroupSequence</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>application-properties.JMSXUserID</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>JMSXUserID</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>application-properties.<u><strong>name</strong></u></code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><u><strong><code>name</code></strong></u></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>delivery-annotations.<u><strong>name</strong></u></code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>JMS_AMQP_DA_<u><strong>name</strong></u></code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>footer.<u><strong>name</strong></u></code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>JMS_AMQP_FT_<u><strong>name</strong></u></code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>header.deliveryCount</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>JMSXDeliveryCount</code></p></td><td colspan="1" rowspan="1" class="confluenceTd">&#160;</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>header.durable</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>JMSDeliveryMode</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong><code>javax.jms.Message.DEFAULT_DELIVERY_MODE</code></strong> if not set.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>header.first-acquirer</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>JMS_AMQP_FirstAcquirer</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>header.priority</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>JMSPriority</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong><code>javax.jms.Message.DEFAULT_PRIORITY</code></strong> if not set.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>header.ttl</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>JMSExpiration</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong><code>javax.jms.Message.DEFAULT_TIME_TO_LIVE</code></strong> if not set.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>message-annotations.<u><strong>name</strong></u></code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>JMS_AMQP_MA_<u><strong>name</strong></u></code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>message-annotations.x-opt-jms-type</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>JMSType</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>message-annotations.x-opt-reply-type</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Type of the&#160;<code>JMSReplyTo</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Comma separated list of <strong><code>queue</code></strong>, <strong><code>topic</code></strong>, or <strong><code>temporary</code></strong>. Defaults to&#160;<strong><code>queue</code></strong> if not set.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>message-annotations.x-opt-to-type</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Type of the&#160;<code>JMSDestination</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Comma separated list of <strong><code>queue</code></strong>, <strong><code>topic</code></strong>, or <strong><code>temporary</code></strong>. Defaults to&#160;<strong><code>queue</code></strong> if not set.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>properties.content-encoding</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>JMS_AMQP_ContentEncoding</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>properties.content-type</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>JMS_AMQP_ContentType</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>properties.correlation-id</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>JMSCorrelationID</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>properties.creation-time</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>JMSTimestamp</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>properties.group-sequence</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>JMSXGroupSequence</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>properties.message-id</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>JMSMessageID</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Auto generated if not set.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>properties.reply-to</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>JMSReplyTo</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The name of the&#160;<strong><code>JMSReplyTo</code></strong></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>properties.reply-to-group-id</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>JMS_AMQP_ReplyToGroupID</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>properties.subject</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>JMS_AMQP_Subject</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>properties.to</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>JMSDestination</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The name of the&#160;<strong><code>JMSDestination</code></strong></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>properties.user-id</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>JMSXUserID</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong><code>properties.user-id</code></strong> is decoded as a UTF-8 String.</p></td></tr></tbody></table></div><p>&#160;</p><p>AMQP property value types are converted as follows:</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>AMQP Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Java Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Notes</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>binary</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Hex encoding of the binary value</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>bool</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Boolean</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>byte</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Byte</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>double</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Double</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>float</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Float</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>int</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Integer</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>long</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Long</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>short</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Short</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>symbol</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>ubyte</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Byte</code> or&#160;<code>Short</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong><code>Short</code></strong> is used if: <strong><code>value &gt;</code></strong> <strong><code>Byte.MAX_VALUE</code></strong></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>uint</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Integer</code> or&#160;<code>Long</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong><code>Long</code></strong> is used if: <strong><code>value &gt;</code></strong> <strong><code>Integer.MAX_VALUE</code></strong></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>ulong</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Long</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>ushort</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Short</code> or&#160;<code>Integer</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong><code>Integer</code></strong> is used if:&#160;<strong><code>value &gt;</code></strong> <strong><code>Short.MAX_VALUE</code></strong></p></td></tr></tbody></table></div><h4 id="AMQP-HowaAMQPMessagesBodyisMappedtoaJMSMessage">How a AMQP Messages Body is Mapped to a JMS Message</h4><p>If the transformer is set to <strong><code>jms</code></strong> then the JMS message type will depend on the body type of the AMQP message.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Body Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>JMS Message Type</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>AmqpSequence</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>StreamMessage</code></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>AmqpValue</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>ObjectMessage</code></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>AmqpValue</code> holding a&#160;<code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Message</code></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>AmqpValue</code> holding a&#160;<code>String</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>TextMessage</code></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>AmqpValue</code> holding a&#160;<code>binary</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>BytesMessage</code></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>AmqpValue</code> holding a&#160;<code>list</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>StreamMessage</code></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Data</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>BytesMessage</code></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Message</code></p></td></tr></tbody></table></div><h3 id="AMQP-AMQP1.0clientlibrary">AMQP 1.0 client library</h3><p>You can use <a shape="rect" class="external-link" href="http://qpid.apache.org/proton/">Apache Qpid Proton</a>.</p></div>
</td>
<td valign="top">
<div class="navigation">
<div class="navigation_top">
<div class="navigation_bottom">
<h3 id="Navigation-Overviewhttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=35985"><a shape="rect" href="overview.html">Overview</a></h3><ul class="alternate"><li><a shape="rect" href="index.html">Index</a></li><li><a shape="rect" href="news.html">News</a></li><li><a shape="rect" href="new-features.html">New Features</a></li><li><a shape="rect" href="getting-started.html">Getting Started</a></li><li><a shape="rect" href="faq.html">FAQ</a></li><li><a shape="rect" href="articles.html">Articles</a></li><li><a shape="rect" href="books.html">Books</a></li><li><a shape="rect" href="download.html">Download</a></li><li><a shape="rect" class="external-link" href="http://www.apache.org/licenses/">License</a></li></ul><h3 id="Navigation-Search">Search</h3><div>
<form enctype="application/x-www-form-urlencoded" method="get" action="http://www.google.com/search" style="font-size: 10px;">
<input type="hidden" name="ie" value="UTF-8">
<input type="hidden" name="oe" value="UTF-8">
<input maxlength="255" type="text" name="q" size="15" value="value"><br clear="none">
<input type="submit" name="btnG" value="Search">
<input type="hidden" name="domains" value="activemq.apache.org">
<input type="hidden" name="sitesearch" value="activemq.apache.org">
</form>
</div>
<h3 id="Navigation-SubProjects">Sub Projects</h3><ul class="alternate"><li><a shape="rect" class="external-link" href="http://activemq.apache.org/artemis/">Artemis</a></li><li><a shape="rect" class="external-link" href="http://activemq.apache.org/apollo" title="ActiveMQ Apollo">Apollo</a></li><li><a shape="rect" class="external-link" href="http://activemq.apache.org/cms/">CMS</a></li><li><a shape="rect" class="external-link" href="http://activemq.apache.org/nms/" title="NMS is the .Net Messaging API">NMS</a></li></ul><h3 id="Navigation-Communityhttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=36130"><a shape="rect" href="community.html">Community</a></h3><ul class="alternate"><li><a shape="rect" href="support.html">Support</a></li><li><a shape="rect" href="contributing.html">Contributing</a></li><li><a shape="rect" href="discussion-forums.html">Discussion Forums</a></li><li><a shape="rect" href="mailing-lists.html">Mailing Lists</a></li><li><a shape="rect" href="irc.html">IRC</a></li><li><a shape="rect" class="external-link" href="http://javabot.evanchooly.com/logs/%23apache-activemq/today" rel="nofollow">IRC Log</a></li><li><a shape="rect" href="security-advisories.html">Security Advisories</a></li><li><a shape="rect" href="site.html">Site</a></li><li><a shape="rect" class="external-link" href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li><li><a shape="rect" href="projects-using-activemq.html">Projects Using ActiveMQ</a></li><li><a shape="rect" href="users.html">Users</a></li><li><a shape="rect" href="team.html">Team</a></li><li><a shape="rect" href="thanks.html">Thanks</a></li></ul><h3 id="Navigation-Featureshttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=35883"><a shape="rect" href="features.html">Features</a></h3><ul class="alternate"><li><a shape="rect" href="advisory-message.html">Advisory Message</a></li><li><a shape="rect" href="clustering.html">Clustering</a></li><li><a shape="rect" href="cross-language-clients.html">Cross Language Clients</a></li><li><a shape="rect" href="enterprise-integration-patterns.html">Enterprise Integration Patterns</a></li><li><a shape="rect" href="jmx.html">JMX</a></li><li><a shape="rect" href="jms-to-jms-bridge.html">JMS to JMS Bridge</a></li><li><a shape="rect" href="masterslave.html">MasterSlave</a></li><li><a shape="rect" href="message-groups.html">Message Groups</a></li><li><a shape="rect" href="networks-of-brokers.html">Networks of Brokers</a></li><li><a shape="rect" href="performance.html">Performance</a></li><li><a shape="rect" href="persistence.html">Persistence</a></li><li><a shape="rect" href="security.html">Security</a></li><li><a shape="rect" href="virtual-destinations.html">Virtual Destinations</a></li><li><a shape="rect" href="visualisation.html">Visualisation</a></li><li><a shape="rect" href="features.html">More ...</a></li></ul><h3 id="Navigation-Connectivityhttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=36167"><a shape="rect" href="connectivity.html">Connectivity</a></h3><ul class="alternate"><li><a shape="rect" href="ajax.html">Ajax</a></li><li><a shape="rect" href="amqp.html">AMQP</a></li><li><a shape="rect" href="axis-and-cxf-support.html">Axis and CXF Support</a></li><li><a shape="rect" href="c-integration.html">C Integration</a></li><li><a shape="rect" href="activemq-c-clients.html">C++</a></li><li><a shape="rect" class="external-link" href="http://activemq.apache.org/nms/">C# and .Net Integration</a></li><li><a shape="rect" class="external-link" href="http://activemq.apache.org/cms/">CMS</a></li><li><a shape="rect" href="j2ee.html">J2EE</a></li><li><a shape="rect" href="jboss-integration.html">JBoss Integration</a></li><li><a shape="rect" class="external-link" href="http://docs.codehaus.org/display/JETTY/Integrating+with+ActiveMQ" rel="nofollow">Jetty</a></li><li><a shape="rect" href="jndi-support.html">JNDI Support</a></li><li><a shape="rect" class="external-link" href="http://activemq.apache.org/nms/" title="NMS is the .Net Messaging API">NMS</a></li><li><a shape="rect" href="rest.html">REST</a></li><li><a shape="rect" href="rss-and-atom.html">RSS and Atom</a></li><li><a shape="rect" href="spring-support.html">Spring Support</a></li><li><a shape="rect" href="stomp.html">Stomp</a></li><li><a shape="rect" href="tomcat.html">Tomcat</a></li><li><a shape="rect" href="unix-service.html">Unix Service</a></li><li><a shape="rect" href="weblogic-integration.html">WebLogic Integration</a></li><li><a shape="rect" href="xmpp.html">XMPP</a></li><li><a shape="rect" href="connectivity.html">More ...</a></li></ul><h3 id="Navigation-UsingActiveMQ5https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=71176"><a shape="rect" href="using-activemq-5.html">Using ActiveMQ 5</a></h3><ul class="alternate"><li><a shape="rect" href="version-5-getting-started.html">Getting Started</a></li><li><a shape="rect" href="version-5-initial-configuration.html">Initial Configuration</a></li><li><a shape="rect" href="version-5-run-broker.html">Running a Broker</a></li><li><a shape="rect" href="how-do-i-embed-a-broker-inside-a-connection.html">Embedded Brokers</a></li><li><a shape="rect" href="activemq-command-line-tools-reference.html">Command Line Tools</a></li><li><a shape="rect" href="configuring-version-5-transports.html">Configuring Transports</a></li><li><a shape="rect" href="version-5-examples.html">Examples</a></li><li><a shape="rect" href="version-5-web-samples.html">Web Samples</a></li><li><a shape="rect" href="how-can-i-monitor-activemq.html">Monitoring the Broker</a></li><li><a shape="rect" href="version-5-xml-configuration.html">Xml Configuration</a></li><li><a shape="rect" href="xml-reference.html">Xml Reference</a></li><li><a shape="rect" href="using-activemq-5.html">More ...</a></li></ul><h3 id="Navigation-Toolshttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=35912"><a shape="rect" href="tools.html">Tools</a></h3><ul class="alternate"><li><a shape="rect" href="web-console.html">Web Console</a></li><li><a shape="rect" href="activemq-performance-module-users-manual.html">Maven2 Performance Plugin</a></li></ul><h3 id="Navigation-Supporthttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=35919"><a shape="rect" href="support.html">Support</a></h3><ul class="alternate"><li><a shape="rect" class="external-link" href="http://issues.apache.org/jira/browse/AMQ">Issues</a></li><li><a shape="rect" class="external-link" href="http://issues.apache.org/activemq/browse/AMQ?report=com.atlassian.jira.plugin.system.project:roadmap-panel">Roadmap</a></li><li><a shape="rect" class="external-link" href="http://issues.apache.org/activemq/browse/AMQ?report=com.atlassian.jira.plugin.system.project:changelog-panel">Change log</a></li></ul><h3 id="Navigation-Developershttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=35903"><a shape="rect" href="developers.html">Developers</a></h3><ul class="alternate"><li><a shape="rect" href="source.html">Source</a></li><li><a shape="rect" href="building.html">Building</a></li><li><a shape="rect" href="developer-guide.html">Developer Guide</a></li><li><a shape="rect" href="becoming-a-committer.html">Becoming a committer</a></li><li><a shape="rect" href="code-overview.html">Code Overview</a></li><li><a shape="rect" href="wire-protocol.html">Wire Protocol</a></li><li><a shape="rect" href="release-guide.html">Release Guide</a></li></ul><h3 id="Navigation-Tests">Tests</h3><ul class="alternate"><li><a shape="rect" href="activemq-performance-module-users-manual.html">Maven2 Performance Plugin</a></li><li><a shape="rect" href="benchmark-tests.html">Benchmark Tests</a></li><li><a shape="rect" href="jmeter-system-tests.html">JMeter System Tests</a></li><li><a shape="rect" href="jmeter-performance-tests.html">JMeter Performance Tests</a></li><li><a shape="rect" href="integration-tests.html">Integration Tests</a></li></ul><h3 id="Navigation-ProjectReports">Project Reports</h3><ul class="alternate"><li><a shape="rect" href="junit-reports.html">JUnit Reports</a></li><li><a shape="rect" href="source-xref.html">Source XRef</a></li><li><a shape="rect" href="test-source-xref.html">Test Source XRef</a></li><li><a shape="rect" href="xml-reference.html">Xml Reference</a></li></ul>
</div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<div class="bottom_red_bar"></div>
</div>
</div>
</div>
</div>
<div class="black_box">
<div class="footer">
<div class="footer_l">
<div class="footer_r">
<div>
<a href="http://activemq.apache.org/privacy-policy.html">Privacy Policy</a> -
(<a href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=36115">edit this page</a>)
</div>
</div>
</div>
</div>
</div>
</div>
<div class="design_attribution">
&copy; 2004-2011 The Apache Software Foundation.
<br/>
Apache ActiveMQ, ActiveMQ, Apache, the Apache feather logo, and the Apache ActiveMQ project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
<br/>
<a href="http://hiramchirino.com">Graphic Design By Hiram</a>
</div>
<!-- delay the loading of large javascript files to the end so that they don't interfere with the loading of page content -->
<span style="display: none">
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-1347593-1");
pageTracker._initData();
pageTracker._trackPageview();
</script>
</span>
</body>
</html>