<div class="wiki-content maincontent"><p>ActiveMQ supports the <a shape="rect" href="http://stomp.github.com/">Stomp</a> protocol and the Stomp - JMS mapping. This makes it easy to write a client in pure <link><page ri:content-title="Ruby"></page><plain-text-link-body>Ruby</plain-text-link-body></link>, <link><page ri:content-title="Perl"></page><plain-text-link-body>Perl</plain-text-link-body></link>, <link><page ri:content-title="Python"></page><plain-text-link-body>Python</plain-text-link-body></link> or <link><page ri:content-title="PHP"></page><plain-text-link-body>PHP</plain-text-link-body></link> for working with ActiveMQ.</p><p>Please see the <a shape="rect" href="http://stomp.github.io/">Stomp site</a> for more details</p><structured-macro ac:macro-id="ec1411e3-961d-47ce-9c02-a9f2a5678ad1" ac:name="info" ac:schema-version="1"><parameter ac:name="title">Spec Compliance</parameter><rich-text-body><p>ActiveMQ v5.6 implements the Stomp v1.1 spec except for allowing spaces at the beginning or end of message header keys, they are preserved in the header values however. In future releases this will not be the case, clients should be updated and user code checked to ensure that spaces in the headers are there intentionally and not as a accident or a client "feature".</p></rich-text-body></structured-macro><h3>Enabling the ActiveMQ Broker for Stomp</h3><p>To enable STOMP protocol support in the broker add a transport connector definition whose URI scheme is <strong><code>stomp</code></strong>.</p><p>Example:</p><structured-macro ac:macro-id="5355129f-14ce-402d-b6f5-97a47958697f" ac:name="code" ac:schema-version="1"><parameter ac:name="">xml</parameter><plain-text-body>&lt;transportConnectors&gt;
   &lt;transportConnector name="stomp" uri="stomp://localhost:61613"/&gt;
&lt;/transportConnectors&gt;
</plain-text-body></structured-macro><p>To see a full example, try <a shape="rect" href="http://svn.apache.org/repos/asf/activemq/trunk/assembly/src/release/example/conf/activemq.xml">this XML</a>. If you save that XML as&#160;<strong><code>foo.xml</code></strong> then you can run stomp via the command line as</p><structured-macro ac:macro-id="99818d3e-990b-410b-a51b-68619d0ab5a7" ac:name="code" ac:schema-version="1"><parameter ac:name="">xml</parameter><plain-text-body>activemq xbean:foo.xml
</plain-text-body></structured-macro><p>For more help see <link><page ri:content-title="Run Broker"></page></link>.</p><h3>The Stomp Wire Format</h3><p>Stomp uses a text based wire format that can be configured with the following options. &#160;All options can be configured on a Brokers transport bind URI.</p><table><tbody><tr><th colspan="1" rowspan="1"><p>Parameter Name</p></th><th colspan="1" rowspan="1"><p>Default Value</p></th><th colspan="1" rowspan="1"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1"><p><code>maxDataLength</code></p></td><td colspan="1" rowspan="1"><p><code>104857600</code></p></td><td colspan="1" rowspan="1"><p>Maximum size of the message body (content) that can be sent.</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>maxFrameSize</code></p></td><td colspan="1" rowspan="1"><p><code>MAX_LONG</code></p></td><td colspan="1" rowspan="1"><p><strong>From ActiveMQ 5.12.0</strong>: maximum frame size that can be sent. A Stomp frame includes a command, optional headers, and an optional body. Can help help prevent OOM DOS attacks</p></td></tr></tbody></table><p>Example:</p><structured-macro ac:macro-id="97b90707-41d7-4520-94a7-7280cb5a58e7" ac:name="code" ac:schema-version="1"><parameter ac:name="">xml</parameter><plain-text-body>&lt;transportConnector name="stomp+ssl" uri="stomp+ssl://localhost:61612?wireFormat.maxFrameSize=1000000"/&gt;</plain-text-body></structured-macro><structured-macro ac:macro-id="5f63c58b-03ae-42b4-acb9-5129da2b15db" ac:name="warning" ac:schema-version="1"><parameter ac:name="title">Use the Correct Prefix!</parameter><rich-text-body><p>Wire format options must have the prefix&#160;<strong><code>wireFormat.</code></strong> to take effect, e.g.,&#160;<strong><code>wireFormat.<code>maxDataLength</code>=100000</code></strong>. Options missing this prefix will be ignored.</p></rich-text-body></structured-macro><h3>Security</h3><p><strong>From ActiveMQ 5.1</strong>: Stomp fully supports <link><page ri:content-title="Security"></page><plain-text-link-body>ActiveMQ's security</plain-text-link-body></link> mechanism. This means that the <strong><code>CONNECT</code></strong> command will return an <strong><code>ERROR</code></strong> STOMP frame on unsuccessful authentication. Also, the authorization policies will be applied when you try to access (read/write) certain destinations. If you use synchronous operations (by using <a shape="rect" href="http://stomp.github.com/stomp-specification-1.1.html#RECEIPT">receipts</a>), you can expect an <strong><code>ERROR</code></strong> frame in case of unauthorized access attempt. In other case, operations will be discarded but the client will not be informed of errors. This applies to all errors that can occur broker-side.</p><structured-macro ac:macro-id="be455380-400f-40a9-aa52-f47b0e260c9b" ac:name="tip" ac:schema-version="1"><parameter ac:name="title">SSL</parameter><rich-text-body><p>For additional security, you can use Stomp over SSL as described in the following section.</p></rich-text-body></structured-macro><h3>Enabling Stomp over NIO</h3><p><strong>From ActiveMQ 5.3</strong>: for better scalability and performance the Stomp protocol can be configured to be run over the NIO transport. The <a shape="rect" href="http://activemq.apache.org/configuring-transports.html#ConfiguringTransports-TheNIOTransport">NIO transport</a> will use far fewer threads than the corresponding TCP connector. This can help when support for a <a shape="rect" href="http://activemq.apache.org/how-do-i-configure-10s-of-1000s-of-queues-in-a-single-broker-.html">large number of queues</a> is required. To use NIO change the URI scheme of the transport connector to <strong><code>stomp+nio</code></strong>.</p><p>Example:</p><structured-macro ac:macro-id="72564ff3-2e70-4b20-b697-ad0b42803447" ac:name="code" ac:schema-version="1"><parameter ac:name="">xml</parameter><plain-text-body>&lt;transportConnector name="stomp+nio" uri="stomp+nio://localhost:61612"/&gt;
</plain-text-body></structured-macro><h3>Enabling Stomp over SSL</h3><p>To configure ActiveMQ to use Stomp over an SSL connection change the URI scheme to <strong><code>stomp+ssl</code></strong>.</p><p>Example:</p><structured-macro ac:macro-id="31b8598d-adce-464f-85dc-abef45539350" ac:name="code" ac:schema-version="1"><parameter ac:name="">xml</parameter><plain-text-body>&lt;transportConnector name="stomp+ssl" uri="stomp+ssl://localhost:61612"/&gt;
</plain-text-body></structured-macro><p>For more details on using SSL with ActiveMQ see the following article (<a shape="rect" href="http://activemq.apache.org/how-do-i-use-ssl.html">How do I use SSL</a>). An example of using Stomp over SSL on the client side can be found in the <a shape="rect" href="http://stomp.fusesource.org/documentation/php/book.html#SSL">PHP Stomp client example</a>.</p><h3>Heart-Beat Grace Period</h3><p>The STOMP protocol (version 1.1 or greater) <a shape="rect" href="http://stomp.github.io/stomp-specification-1.2.html#Heart-beating">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. ActiveMQ supports STOMP heart beating provided the client is using version 1.1 (or greater) of the protocol.</p><p><strong>Before ActiveMQ 5.9.0</strong>: 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><strong>From ActiveMQ 5.9.0</strong>: the timeout enforcement for read heart-beats is now configurable via a new transport option&#160;<strong><code>transport.hbGracePeriodMultiplier</code></strong>:</p><structured-macro ac:macro-id="2ff83a5d-31fd-42cc-b253-459be6666a92" ac:name="code" ac:schema-version="1"><parameter ac:name="">xml</parameter><plain-text-body>&lt;transportConnectors&gt;
   &lt;transportConnector name="stomp" uri="stomp://localhost:61613?transport.hbGracePeriodMultiplier=1.5"/&gt;
&lt;/transportConnectors&gt;
</plain-text-body></structured-macro><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&#160;<strong><code>CONNECT</code></strong> frame:</p><p><code>&#160; <strong>&lt;client specified read heart-beat interval&gt; * &lt;grace periodmultiplier&gt; == &lt;broker enforced read heart-beat timeout interval&gt;</strong></code></p><p>For backward compatibility, if the grace period multiplier is not configured the default enforcement mode remains strict, e.g.,&#160;<strong><code>transport.hbGracePeriodMultiplier=1.0</code></strong>. Attempts to configure the grace period multiplier to a value less than, or equal to&#160;<strong><code>1.0</code></strong> 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><p>Please check the <a shape="rect" href="http://stomp.github.io/stomp-specification-1.2.html#Heart-beating">STOMP specification</a> for the details on heart-beating</p></li><li><p>The JIRA that implemented this: <a shape="rect" 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></p></li></ul><h3>Working with Destinations with Stomp</h3><p>Note that the prefix in stomp <strong><code>/queue/</code></strong> or&#160;<strong><code>/topic/</code></strong> is removed from the string before passing it to ActiveMQ as a JMS destination. Also note that the default separator in MOM systems is&#160;<strong><code>.</code></strong> (dot). Whilst <strong><code>FOO.BAR</code></strong> is the normal syntax to identify a queue type destination the Stomp equivalent is <strong><code>/queue/FOO.BAR</code></strong></p><structured-macro ac:macro-id="24b131c7-cd50-4a3a-8351-be5eef6d513e" ac:name="warning" ac:schema-version="1"><parameter ac:name="title">Be careful about starting destinations with /</parameter><rich-text-body><p>If in Stomp world you use&#160;<strong><code>/queue/foo/bar</code></strong> then in a JMS world the queue would be called <strong><code>foo/bar</code></strong> not&#160;<strong><code>/foo/bar</code></strong>.</p></rich-text-body></structured-macro><structured-macro ac:macro-id="02cf3683-0949-41b0-8a12-e0e9b15f5f46" ac:name="info" ac:schema-version="1"><parameter ac:name="title">Persistent Messaging in STOMP</parameter><rich-text-body><p>STOMP messages are non-persistent by default. To use persistent messaging add the following STOMP header to all&#160;<strong><code>SEND</code></strong> requests: <strong><code>persistent:true</code></strong>. This default is the opposite of that for JMS messages.</p></rich-text-body></structured-macro><h3>Working with JMS Text/Bytes Messages and Stomp</h3><p>Stomp is a very simple protocol - that's part of the beauty of it! As such, it does not have knowledge of JMS messages such as&#160;<strong><code>TextMessage</code></strong>'s or <strong><code>BytesMessage</code></strong>'s. The protocol does however support a&#160;<strong><code>content-length</code></strong> header. To provide more robust interaction between STOMP and JMS clients, ActiveMQ keys off of the inclusion of this header to determine what message type to create when sending from Stomp to JMS. The logic is simple:</p><table><tbody><tr><th colspan="1" rowspan="1"><p>Inclusion of content-length header</p></th><th colspan="1" rowspan="1"><p>Resulting Message</p></th></tr><tr><td colspan="1" rowspan="1"><p>yes</p></td><td colspan="1" rowspan="1"><p><strong><code>BytesMessage</code></strong></p></td></tr><tr><td colspan="1" rowspan="1"><p>no</p></td><td colspan="1" rowspan="1"><p><strong><code>TextMessage</code></strong></p></td></tr></tbody></table><p>This same logic can be followed when going from JMS to Stomp, as well. A Stomp client could be written to key off of the inclusion of the&#160;<strong><code>content-length</code></strong> header to determine what type of message structure to provide to the user.</p><h3>Message Transformations</h3><p>The <strong><code>transformation</code></strong> message header on <strong><code>SEND</code></strong> and <strong><code>SUBSCRIBE</code></strong> messages could be used to instruct ActiveMQ to transform messages from text to the format of your desire. Currently, ActiveMQ comes with a transformer that can transform XML/JSON text to Java objects, but you can add your own transformers as well.</p><p>Here's a quick example of how to use built-in transformer (taken from test cases)</p><structured-macro ac:macro-id="d0aeb29a-a196-4013-be0d-838de37b159f" ac:name="code" ac:schema-version="1"><parameter ac:name="">java</parameter><plain-text-body>    private String xmlObject = "&lt;pojo&gt;\n" 
            + "  &lt;name&gt;Dejan&lt;/name&gt;\n"
            + "  &lt;city&gt;Belgrade&lt;/city&gt;\n" 
            + "&lt;/pojo&gt;";

    public void testTransformationReceiveXMLObject() throws Exception {
    	
        MessageProducer producer = session.createProducer(new ActiveMQQueue("USERS." + getQueueName()));
        ObjectMessage message = session.createObjectMessage(new SamplePojo("Dejan", "Belgrade"));
        producer.send(message);
    	
        String frame = "CONNECT\n" + "login: system\n" + "passcode: manager\n\n" + Stomp.NULL;
        stompConnection.sendFrame(frame);

        frame = stompConnection.receiveFrame();
        assertTrue(frame.startsWith("CONNECTED"));

        frame = "SUBSCRIBE\n" + "destination:/queue/USERS." + getQueueName() + "\n" + "ack:auto" + "\n" + "transformation:jms-object-xml\n\n" + Stomp.NULL;
        stompConnection.sendFrame(frame);
        
        frame = stompConnection.receiveFrame();

        assertTrue(frame.trim().endsWith(xmlObject));
        
        frame = "DISCONNECT\n" + "\n\n" + Stomp.NULL;
        stompConnection.sendFrame(frame);
    }     
</plain-text-body></structured-macro><structured-macro ac:macro-id="0fcad07a-60de-4f13-a543-515b7486bb50" ac:name="info" ac:schema-version="1"><parameter ac:name="title">Dependencies</parameter><rich-text-body><p>ActiveMQ uses <a shape="rect" href="http://xstream.codehaus.org">XStream</a> for its transformation needs. Since it's the optional dependency you have to add it to broker's classpath by putting the appropriate JAR into the <strong><code>lib/</code></strong> folder. Additionally, if you plan to use JSON transformations you have to add <a shape="rect" href="http://jettison.codehaus.org/">Jettison</a> JSON parser to the classpath.</p></rich-text-body></structured-macro><p>In order to create your own transformer, you have to do the following:</p><ol><li><p>Build your transformer by implementing a <a shape="rect" href="http://activemq.apache.org/maven/activemq-core/apidocs/org/apache/activemq/transport/stomp/FrameTranslator.html">FrameTranslator</a> interface</p></li><li><p>Associate it with the appropriate header value by creating a file named as a value you want to use in the <strong><code>META-INF/services/org/apache/activemq/transport/frametranslator/</code></strong> folder of your JAR which will contain the value <strong><code>class=<em>fully qualified classname of your transformer</em></code></strong></p></li></ol><p>For example the built-in transformer contains the following value:</p><structured-macro ac:macro-id="1f17ea64-04cd-4063-94d9-ba08a9e0940a" ac:name="code" ac:schema-version="1"><plain-text-body>class=org.apache.activemq.transport.stomp.XStreamFrameTranslator</plain-text-body></structured-macro><p>in the <strong><code>META-INF/services/org/apache/activemq/transport/frametranslator/jms-xml</code></strong> file.</p><h3><span style="line-height: 1.5625;">Debugging</span></h3><p>In case you want to debug Stomp communication between broker and clients you should configure the Stomp connector with the <strong><code>trace</code></strong> parameter, like this:</p><structured-macro ac:macro-id="75e81c40-b1ae-4385-82f9-650f43c26a58" ac:name="code" ac:schema-version="1"><plain-text-body>&lt;transportConnectors&gt;
   &lt;transportConnector name="stomp" uri="stomp://localhost:61613?trace=true"/&gt;
&lt;/transportConnectors&gt;
</plain-text-body></structured-macro><p>This will instruct the broker to trace all packets it sends and receives.</p><p>Furthermore, you have to enable tracing for the appropriate log. You can achieve that by adding the following to your <strong><code>conf/log4j.properties</code></strong></p><structured-macro ac:macro-id="e99699a1-cd23-46f0-a4f1-7f9339f823cc" ac:name="code" ac:schema-version="1"><plain-text-body>log4j.logger.org.apache.activemq.transport.stomp=TRACE
</plain-text-body></structured-macro><p>Finally, you will probably want to keep these messages in the separate file instead of polluting the standard broker's log. You can achieve that with the following log4j configuration:</p><structured-macro ac:macro-id="dbd7b5c2-280a-4dcb-9372-0edbf7dbc8c2" ac:name="code" ac:schema-version="1"><plain-text-body>log4j.appender.stomp=org.apache.log4j.RollingFileAppender
log4j.appender.stomp.file=${activemq.base}/data/stomp.log
log4j.appender.stomp.maxFileSize=1024KB
log4j.appender.stomp.maxBackupIndex=5
log4j.appender.stomp.append=true
log4j.appender.stomp.layout=org.apache.log4j.PatternLayout
log4j.appender.stomp.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %m%n

log4j.logger.org.apache.activemq.transport.stomp=TRACE, stomp
log4j.additivity.org.apache.activemq.transport.stomp=false

# Enable these two lines and disable the above two if you want the frame IO ONLY (e.g., no heart beat messages, inactivity monitor etc).
#log4j.logger.org.apache.activemq.transport.stomp.StompIO=TRACE, stomp
#log4j.additivity.org.apache.activemq.transport.stomp.StompIO=false
</plain-text-body></structured-macro><p>After this, all your Stomp packets will be logged to the <strong><code>data/stomp.log</code></strong></p><h3>Java API</h3><p><strong>From ActiveMQ 5.2</strong>: there is a simple Java Stomp API distributed with ActiveMQ. Note that this API is provided purely for testing purposes and you should always consider using standard JMS API from Java instead of this one. The following code snippet provides a simple example of using this API:</p><structured-macro ac:macro-id="942bf7ca-70ee-4437-9a9f-6dc4c344af29" ac:name="code" ac:schema-version="1"><plain-text-body>StompConnection connection = new StompConnection();
connection.open("localhost", 61613);
		
connection.connect("system", "manager");
StompFrame connect = connection.receive();

if(!connect.getAction().equals(Stomp.Responses.CONNECTED)) {
	throw new Exception ("Not connected");
}
		
connection.begin("tx1");
connection.send("/queue/test", "message1", "tx1", null);
connection.send("/queue/test", "message2", "tx1", null);
connection.commit("tx1");
	
connection.subscribe("/queue/test", Subscribe.AckModeValues.CLIENT);
	
connection.begin("tx2");
	
StompFrame message = connection.receive();
System.out.println(message.getBody());
connection.ack(message, "tx2");
	
message = connection.receive();
System.out.println(message.getBody());
connection.ack(message, "tx2");
	
connection.commit("tx2");
		
connection.disconnect();
</plain-text-body></structured-macro><p>This example is part of the standard ActiveMQ distribution. You can run it from the&#160;<strong><code>./example</code></strong> folder with:</p><structured-macro ac:macro-id="afbce1e9-352a-434d-b1e6-14159bd18a7b" ac:name="code" ac:schema-version="1"><plain-text-body>ant stomp
</plain-text-body></structured-macro><h3>Stomp Extensions for JMS Message Semantics</h3><p>Note that STOMP is designed to be as simple as possible - so any scripting language/platform can message any other with minimal effort. STOMP allows pluggable headers on each request such as sending &amp; receiving messages. ActiveMQ has several extensions to the Stomp protocol, so that JMS semantics can be supported by Stomp clients. An OpenWire JMS producer can send messages to a Stomp consumer, and a Stomp producer can send messages to an OpenWire JMS consumer. And Stomp to Stomp configurations, can use the richer JMS message control.</p><p>STOMP supports the following standard JMS properties on&#160;<strong><code>SENT</code></strong> messages:</p><table><tbody><tr><th colspan="1" rowspan="1"><p>STOMP Header</p></th><th colspan="1" rowspan="1"><p>JMS Header</p></th><th colspan="1" rowspan="1"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1"><p><code>correlation-id</code></p></td><td colspan="1" rowspan="1"><p><code>JMSCorrelationID</code></p></td><td colspan="1" rowspan="1"><p>Good consumers will add this header to any responses they send.</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>expires</code></p></td><td colspan="1" rowspan="1"><p><code>JMSExpiration</code></p></td><td colspan="1" rowspan="1"><p>Expiration time of the message.</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>JMSXGroupID</code></p></td><td colspan="1" rowspan="1"><p><code>JMSXGroupID</code></p></td><td colspan="1" rowspan="1"><p>Specifies the <link><page ri:content-title="Message Groups"></page><plain-text-link-body>Message Groups.</plain-text-link-body></link></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>JMSXGroupSeq</code></p></td><td colspan="1" rowspan="1"><p><code>JMSXGroupSeq</code></p></td><td colspan="1" rowspan="1"><p>Optional header that specifies the sequence number in the <link><page ri:content-title="Message Groups"></page><plain-text-link-body>Message Groups.</plain-text-link-body></link></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>persistent</code></p></td><td colspan="1" rowspan="1"><p><code>JMSDeliveryMode</code></p></td><td colspan="1" rowspan="1"><p>Whether or not the message is persistent.</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>priority</code></p></td><td colspan="1" rowspan="1"><p><code>JMSPriority</code></p></td><td colspan="1" rowspan="1"><p>Priority on the message.</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>reply-to</code></p></td><td colspan="1" rowspan="1"><p><code>JMSReplyTo</code></p></td><td colspan="1" rowspan="1"><p>Destination you should send replies to.</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>type</code></p></td><td colspan="1" rowspan="1"><p><code>JMSType</code></p></td><td colspan="1" rowspan="1"><p>Type of the message.</p></td></tr></tbody></table><h3>ActiveMQ Extensions to STOMP</h3><p>You can add custom headers to STOMP commands to configure the ActiveMQ protocol. Here are some examples:</p><table><tbody><tr><th colspan="1" rowspan="1"><p>Verb</p></th><th colspan="1" rowspan="1"><p>Header</p></th><th colspan="1" rowspan="1"><p>Type</p></th><th colspan="1" rowspan="1"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1"><p><code>CONNECT</code></p></td><td colspan="1" rowspan="1"><p><code>client-id</code></p></td><td colspan="1" rowspan="1"><p><code>string</code></p></td><td colspan="1" rowspan="1"><p>Specifies the JMS clientID which is used in combination with the&#160;<strong><code>activemq.subcriptionName</code></strong> to denote a durable subscriber.</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>SUBSCRIBE</code></p></td><td colspan="1" rowspan="1"><p><code>activemq.dispatchAsync</code></p></td><td colspan="1" rowspan="1"><p><code>boolean</code></p></td><td colspan="1" rowspan="1"><p>Should messages be dispatched synchronously or asynchronously from the producer thread for non-durable topics in the broker?</p><p>For fast consumers set this to <strong><code>false</code></strong>.</p><p>For slow consumers set it to&#160;<strong><code>true</code></strong> so that dispatching will not block fast consumers.</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>SUBSCRIBE</code></p></td><td colspan="1" rowspan="1"><p><code>activemq.exclusive</code></p></td><td colspan="1" rowspan="1"><p><code>boolean</code></p></td><td colspan="1" rowspan="1"><p>I would like to be an <link><page ri:content-title="Exclusive Consumer"></page></link> on the queue.</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>SUBSCRIBE</code></p></td><td colspan="1" rowspan="1"><p><code>activemq.maximumPendingMessageLimit</code></p></td><td colspan="1" rowspan="1"><p><code>int</code></p></td><td colspan="1" rowspan="1"><p>For <link><page ri:content-title="Slow Consumer Handling"></page></link> on non-durable topics by dropping old messages - we can set a maximum-pending limit, such that once a slow consumer backs up to this high water mark we begin to discard old messages.</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>SUBSCRIBE</code></p></td><td colspan="1" rowspan="1"><p><code>activemq.noLocal</code></p></td><td colspan="1" rowspan="1"><p><code>boolean</code></p></td><td colspan="1" rowspan="1"><p>Specifies whether or not locally sent messages should be ignored for subscriptions.</p><p>Set to <strong><code>true</code></strong> to filter out locally sent messages.</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>SUBSCRIBE</code></p></td><td colspan="1" rowspan="1"><p><code>activemq.prefetchSize</code></p></td><td colspan="1" rowspan="1"><p><code>int</code></p></td><td colspan="1" rowspan="1"><p>Specifies the maximum number of pending messages that will be dispatched to the client. Once this maximum is reached no more messages are dispatched until the client acknowledges a message.</p><p>Set to a low value &gt; <strong>1</strong> for fair distribution of messages across consumers when processing messages can be slow</p><p><strong>Note</strong>: if your STOMP client is implemented using a dynamic scripting language like Ruby, say, then this parameter <strong><em>must</em></strong> be set to&#160;<strong><code>1</code></strong> as there is no notion of a client-side message size to be sized.</p><p>STOMP does not support a value of <strong><code>0</code></strong>.</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>SUBSCRIBE</code></p></td><td colspan="1" rowspan="1"><p><code>activemq.priority</code></p></td><td colspan="1" rowspan="1"><p><code>byte</code></p></td><td colspan="1" rowspan="1"><p>Sets the priority of the consumer so that dispatching can be weighted in priority order.</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>SUBSCRIBE</code></p></td><td colspan="1" rowspan="1"><p><code>activemq.retroactive</code></p></td><td colspan="1" rowspan="1"><p><code>boolean</code></p></td><td colspan="1" rowspan="1"><p>For non-durable topics make this subscription <link><page ri:content-title="Retroactive Consumer"></page><plain-text-link-body>retroactive</plain-text-link-body></link>.</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>SUBSCRIBE</code></p></td><td colspan="1" rowspan="1"><p><code>activemq.subscriptionName</code></p></td><td colspan="1" rowspan="1"><p><code>string</code></p></td><td colspan="1" rowspan="1"><p>For durable topic subscriptions you must specify the same&#160;<strong><code>activemq.client-id</code></strong> on the connection and <strong><code>activemq.subcriptionName</code></strong> on the subscribe prior to v5.7.0.</p><p><strong>Note</strong>: the spelling <strong><code>subcriptionName</code></strong> NOT <strong><code>subscriptionName</code></strong>. This is not intuitive, but it is how it is implemented in ActiveMQ 4.x.</p><p>For the 5.0 release of ActiveMQ, both&#160;<strong><code>subcriptionName</code></strong> and&#160;<strong><code>subscriptionName</code></strong> will be supported (<strong><code>subcriptionName</code></strong> was removed as of v5.6.0).</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>SUBSCRIBE</code></p></td><td colspan="1" rowspan="1"><p><code>selector</code></p></td><td colspan="1" rowspan="1"><p><code>string</code></p></td><td colspan="1" rowspan="1"><p>Specifies a JMS Selector using SQL 92 syntax as specified in the JMS 1.1 specification. This allows a filter to be applied to each message as part of the subscription.</p></td></tr></tbody></table></div>

