blob: 26d6c8d184e878f72fbd7fad6f3e6c7633f2745a [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en" >
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Queue Attributes | ActiveMQ Artemis Documentation</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content="">
<meta name="generator" content="GitBook 2.1.0">
<meta name="HandheldFriendly" content="true"/>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<link rel="apple-touch-icon-precomposed" sizes="152x152" href="gitbook/images/apple-touch-icon-precomposed-152.png">
<link rel="shortcut icon" href="gitbook/images/favicon.ico" type="image/x-icon">
<link rel="stylesheet" href="gitbook/style.css">
<link rel="next" href="./scheduled-messages.html" />
<link rel="prev" href="./paging.html" />
</head>
<body>
<div class="book" data-level="26" data-basepath="." data-revision="Wed Sep 23 2015 12:51:51 GMT+0100 (BST)">
<div class="book-summary">
<div class="book-search">
<input type="text" placeholder="Type to search" class="form-control" />
</div>
<ul class="summary">
<li class="chapter " data-level="0" data-path="index.html">
<a href="./index.html">
<i class="fa fa-check"></i>
Introduction
</a>
</li>
<li class="chapter " data-level="1" data-path="notice.html">
<a href="./notice.html">
<i class="fa fa-check"></i>
<b>1.</b>
Legal Notice
</a>
</li>
<li class="chapter " data-level="2" data-path="preface.html">
<a href="./preface.html">
<i class="fa fa-check"></i>
<b>2.</b>
Preface
</a>
</li>
<li class="chapter " data-level="3" data-path="project-info.html">
<a href="./project-info.html">
<i class="fa fa-check"></i>
<b>3.</b>
Project Info
</a>
</li>
<li class="chapter " data-level="4" data-path="messaging-concepts.html">
<a href="./messaging-concepts.html">
<i class="fa fa-check"></i>
<b>4.</b>
Messaging Concepts
</a>
</li>
<li class="chapter " data-level="5" data-path="architecture.html">
<a href="./architecture.html">
<i class="fa fa-check"></i>
<b>5.</b>
Architecture
</a>
</li>
<li class="chapter " data-level="6" data-path="using-server.html">
<a href="./using-server.html">
<i class="fa fa-check"></i>
<b>6.</b>
Using the Server
</a>
</li>
<li class="chapter " data-level="7" data-path="using-jms.html">
<a href="./using-jms.html">
<i class="fa fa-check"></i>
<b>7.</b>
Using JMS
</a>
</li>
<li class="chapter " data-level="8" data-path="using-core.html">
<a href="./using-core.html">
<i class="fa fa-check"></i>
<b>8.</b>
Using Core
</a>
</li>
<li class="chapter " data-level="9" data-path="jms-core-mapping.html">
<a href="./jms-core-mapping.html">
<i class="fa fa-check"></i>
<b>9.</b>
Mapping JMS Concepts to the Core API
</a>
</li>
<li class="chapter " data-level="10" data-path="client-classpath.html">
<a href="./client-classpath.html">
<i class="fa fa-check"></i>
<b>10.</b>
The Client Classpath
</a>
</li>
<li class="chapter " data-level="11" data-path="examples.html">
<a href="./examples.html">
<i class="fa fa-check"></i>
<b>11.</b>
Examples
</a>
</li>
<li class="chapter " data-level="12" data-path="wildcard-routing.html">
<a href="./wildcard-routing.html">
<i class="fa fa-check"></i>
<b>12.</b>
Routing Messages With Wild Cards
</a>
</li>
<li class="chapter " data-level="13" data-path="wildcard-syntax.html">
<a href="./wildcard-syntax.html">
<i class="fa fa-check"></i>
<b>13.</b>
Understanding the Apache ActiveMQ Artemis Wildcard Syntax
</a>
</li>
<li class="chapter " data-level="14" data-path="filter-expressions.html">
<a href="./filter-expressions.html">
<i class="fa fa-check"></i>
<b>14.</b>
Filter Expressions
</a>
</li>
<li class="chapter " data-level="15" data-path="persistence.html">
<a href="./persistence.html">
<i class="fa fa-check"></i>
<b>15.</b>
Persistence
</a>
</li>
<li class="chapter " data-level="16" data-path="configuring-transports.html">
<a href="./configuring-transports.html">
<i class="fa fa-check"></i>
<b>16.</b>
Configuring Transports
</a>
</li>
<li class="chapter " data-level="17" data-path="connection-ttl.html">
<a href="./connection-ttl.html">
<i class="fa fa-check"></i>
<b>17.</b>
Detecting Dead Connections
</a>
</li>
<li class="chapter " data-level="18" data-path="slow-consumers.html">
<a href="./slow-consumers.html">
<i class="fa fa-check"></i>
<b>18.</b>
Detecting Slow Consumers
</a>
</li>
<li class="chapter " data-level="19" data-path="transaction-config.html">
<a href="./transaction-config.html">
<i class="fa fa-check"></i>
<b>19.</b>
Resource Manager Configuration
</a>
</li>
<li class="chapter " data-level="20" data-path="flow-control.html">
<a href="./flow-control.html">
<i class="fa fa-check"></i>
<b>20.</b>
Flow Control
</a>
</li>
<li class="chapter " data-level="21" data-path="send-guarantees.html">
<a href="./send-guarantees.html">
<i class="fa fa-check"></i>
<b>21.</b>
Guarantees of sends and commits
</a>
</li>
<li class="chapter " data-level="22" data-path="undelivered-messages.html">
<a href="./undelivered-messages.html">
<i class="fa fa-check"></i>
<b>22.</b>
Message Redelivery and Undelivered Messages
</a>
</li>
<li class="chapter " data-level="23" data-path="message-expiry.html">
<a href="./message-expiry.html">
<i class="fa fa-check"></i>
<b>23.</b>
Message Expiry
</a>
</li>
<li class="chapter " data-level="24" data-path="large-messages.html">
<a href="./large-messages.html">
<i class="fa fa-check"></i>
<b>24.</b>
Large Messages
</a>
</li>
<li class="chapter " data-level="25" data-path="paging.html">
<a href="./paging.html">
<i class="fa fa-check"></i>
<b>25.</b>
Paging
</a>
</li>
<li class="chapter active" data-level="26" data-path="queue-attributes.html">
<a href="./queue-attributes.html">
<i class="fa fa-check"></i>
<b>26.</b>
Queue Attributes
</a>
</li>
<li class="chapter " data-level="27" data-path="scheduled-messages.html">
<a href="./scheduled-messages.html">
<i class="fa fa-check"></i>
<b>27.</b>
Scheduled Messages
</a>
</li>
<li class="chapter " data-level="28" data-path="last-value-queues.html">
<a href="./last-value-queues.html">
<i class="fa fa-check"></i>
<b>28.</b>
Last-Value Queues
</a>
</li>
<li class="chapter " data-level="29" data-path="message-grouping.html">
<a href="./message-grouping.html">
<i class="fa fa-check"></i>
<b>29.</b>
Message Grouping
</a>
</li>
<li class="chapter " data-level="30" data-path="pre-acknowledge.html">
<a href="./pre-acknowledge.html">
<i class="fa fa-check"></i>
<b>30.</b>
Extra Acknowledge Modes
</a>
</li>
<li class="chapter " data-level="31" data-path="management.html">
<a href="./management.html">
<i class="fa fa-check"></i>
<b>31.</b>
Management
</a>
</li>
<li class="chapter " data-level="32" data-path="security.html">
<a href="./security.html">
<i class="fa fa-check"></i>
<b>32.</b>
Security
</a>
</li>
<li class="chapter " data-level="33" data-path="resource-limits.html">
<a href="./resource-limits.html">
<i class="fa fa-check"></i>
<b>33.</b>
Resource Limits
</a>
</li>
<li class="chapter " data-level="34" data-path="jms-bridge.html">
<a href="./jms-bridge.html">
<i class="fa fa-check"></i>
<b>34.</b>
The JMS Bridge
</a>
</li>
<li class="chapter " data-level="35" data-path="client-reconnection.html">
<a href="./client-reconnection.html">
<i class="fa fa-check"></i>
<b>35.</b>
Client Reconnection and Session Reattachment
</a>
</li>
<li class="chapter " data-level="36" data-path="diverts.html">
<a href="./diverts.html">
<i class="fa fa-check"></i>
<b>36.</b>
Diverting and Splitting Message Flows
</a>
</li>
<li class="chapter " data-level="37" data-path="core-bridges.html">
<a href="./core-bridges.html">
<i class="fa fa-check"></i>
<b>37.</b>
Core Bridges
</a>
</li>
<li class="chapter " data-level="38" data-path="duplicate-detection.html">
<a href="./duplicate-detection.html">
<i class="fa fa-check"></i>
<b>38.</b>
Duplicate Message Detection
</a>
</li>
<li class="chapter " data-level="39" data-path="clusters.html">
<a href="./clusters.html">
<i class="fa fa-check"></i>
<b>39.</b>
Clusters
</a>
</li>
<li class="chapter " data-level="40" data-path="ha.html">
<a href="./ha.html">
<i class="fa fa-check"></i>
<b>40.</b>
High Availability and Failover
</a>
</li>
<li class="chapter " data-level="41" data-path="graceful-shutdown.html">
<a href="./graceful-shutdown.html">
<i class="fa fa-check"></i>
<b>41.</b>
Graceful Server Shutdown
</a>
</li>
<li class="chapter " data-level="42" data-path="libaio.html">
<a href="./libaio.html">
<i class="fa fa-check"></i>
<b>42.</b>
Libaio Native Libraries
</a>
</li>
<li class="chapter " data-level="43" data-path="thread-pooling.html">
<a href="./thread-pooling.html">
<i class="fa fa-check"></i>
<b>43.</b>
Thread management
</a>
</li>
<li class="chapter " data-level="44" data-path="logging.html">
<a href="./logging.html">
<i class="fa fa-check"></i>
<b>44.</b>
Logging
</a>
</li>
<li class="chapter " data-level="45" data-path="rest.html">
<a href="./rest.html">
<i class="fa fa-check"></i>
<b>45.</b>
REST Interface
</a>
</li>
<li class="chapter " data-level="46" data-path="embedding-activemq.html">
<a href="./embedding-activemq.html">
<i class="fa fa-check"></i>
<b>46.</b>
Embedding Apache ActiveMQ Artemis
</a>
</li>
<li class="chapter " data-level="47" data-path="spring-integration.html">
<a href="./spring-integration.html">
<i class="fa fa-check"></i>
<b>47.</b>
Spring Integration
</a>
</li>
<li class="chapter " data-level="48" data-path="aerogear-integration.html">
<a href="./aerogear-integration.html">
<i class="fa fa-check"></i>
<b>48.</b>
AeroGear Integration
</a>
</li>
<li class="chapter " data-level="49" data-path="vertx-integration.html">
<a href="./vertx-integration.html">
<i class="fa fa-check"></i>
<b>49.</b>
VertX Integration
</a>
</li>
<li class="chapter " data-level="50" data-path="intercepting-operations.html">
<a href="./intercepting-operations.html">
<i class="fa fa-check"></i>
<b>50.</b>
Intercepting Operations
</a>
</li>
<li class="chapter " data-level="51" data-path="protocols-interoperability.html">
<a href="./protocols-interoperability.html">
<i class="fa fa-check"></i>
<b>51.</b>
Protocols and Interoperability
</a>
</li>
<li class="chapter " data-level="52" data-path="tools.html">
<a href="./tools.html">
<i class="fa fa-check"></i>
<b>52.</b>
Tools
</a>
</li>
<li class="chapter " data-level="53" data-path="maven-plugin.html">
<a href="./maven-plugin.html">
<i class="fa fa-check"></i>
<b>53.</b>
Maven Plugin
</a>
</li>
<li class="chapter " data-level="54" data-path="perf-tuning.html">
<a href="./perf-tuning.html">
<i class="fa fa-check"></i>
<b>54.</b>
Troubleshooting and Performance Tuning
</a>
</li>
<li class="chapter " data-level="55" data-path="configuration-index.html">
<a href="./configuration-index.html">
<i class="fa fa-check"></i>
<b>55.</b>
Configuration Reference
</a>
</li>
<li class="divider"></li>
<li>
<a href="https://www.gitbook.com" target="blank" class="gitbook-link">
Published with GitBook
</a>
</li>
</ul>
</div>
<div class="book-body">
<div class="body-inner">
<div class="book-header">
<!-- Actions Left -->
<a href="#" class="btn pull-left toggle-summary" aria-label="Table of Contents"><i class="fa fa-align-justify"></i></a>
<a href="#" class="btn pull-left toggle-search" aria-label="Search"><i class="fa fa-search"></i></a>
<div id="font-settings-wrapper" class="dropdown pull-left">
<a href="#" class="btn toggle-dropdown" aria-label="Font Settings"><i class="fa fa-font"></i>
</a>
<div class="dropdown-menu font-settings">
<div class="dropdown-caret">
<span class="caret-outer"></span>
<span class="caret-inner"></span>
</div>
<div class="buttons">
<button type="button" id="reduce-font-size" class="button size-2">A</button>
<button type="button" id="enlarge-font-size" class="button size-2">A</button>
</div>
<div class="buttons font-family-list">
<button type="button" data-font="0" class="button">Serif</button>
<button type="button" data-font="1" class="button">Sans</button>
</div>
<div class="buttons color-theme-list">
<button type="button" id="color-theme-preview-0" class="button size-3" data-theme="0">White</button>
<button type="button" id="color-theme-preview-1" class="button size-3" data-theme="1">Sepia</button>
<button type="button" id="color-theme-preview-2" class="button size-3" data-theme="2">Night</button>
</div>
</div>
</div>
<!-- Actions Right -->
<div class="dropdown pull-right">
<a href="#" class="btn toggle-dropdown" aria-label="Share"><i class="fa fa-share-alt"></i>
</a>
<div class="dropdown-menu font-settings dropdown-left">
<div class="dropdown-caret">
<span class="caret-outer"></span>
<span class="caret-inner"></span>
</div>
<div class="buttons">
<button type="button" data-sharing="twitter" class="button">
Share on Twitter
</button>
<button type="button" data-sharing="google-plus" class="button">
Share on Google
</button>
<button type="button" data-sharing="facebook" class="button">
Share on Facebook
</button>
<button type="button" data-sharing="weibo" class="button">
Share on Weibo
</button>
<button type="button" data-sharing="instapaper" class="button">
Share on Instapaper
</button>
</div>
</div>
</div>
<a href="#" target="_blank" class="btn pull-right google-plus-sharing-link sharing-link" data-sharing="google-plus" aria-label="Google"><i class="fa fa-google-plus"></i></a>
<a href="#" target="_blank" class="btn pull-right facebook-sharing-link sharing-link" data-sharing="facebook" aria-label="Facebook"><i class="fa fa-facebook"></i></a>
<a href="#" target="_blank" class="btn pull-right twitter-sharing-link sharing-link" data-sharing="twitter" aria-label="Twitter"><i class="fa fa-twitter"></i></a>
<!-- Title -->
<h1>
<i class="fa fa-circle-o-notch fa-spin"></i>
<a href="./" >ActiveMQ Artemis Documentation</a>
</h1>
</div>
<div class="page-wrapper" tabindex="-1">
<div class="page-inner">
<section class="normal" id="section-">
<h1 id="queue-attributes">Queue Attributes</h1>
<p>Queue attributes can be set in one of two ways. Either by configuring
them using the configuration file or by using the core API. This chapter
will explain how to configure each attribute and what effect the
attribute has.</p>
<h2 id="predefined-queues">Predefined Queues</h2>
<p>Queues can be predefined via configuration at a core level or at a JMS
level. Firstly let&apos;s look at a JMS level.</p>
<p>The following shows a queue predefined in the jms element of the <code>broker.xml</code>
configuration file.</p>
<pre><code>&lt;queue name=&quot;selectorQueue&quot;&gt;
&lt;entry name=&quot;/queue/selectorQueue&quot;/&gt;
&lt;selector string=&quot;color=&apos;red&apos;&quot;/&gt;
&lt;durable&gt;true&lt;/durable&gt;
&lt;/queue&gt;
</code></pre><p>This name attribute of queue defines the name of the queue. When we do
this at a jms level we follow a naming convention so the actual name of
the core queue will be <code>jms.queue.selectorQueue</code>.</p>
<p>The entry element configures the name that will be used to bind the
queue to JNDI. This is a mandatory element and the queue can contain
multiple of these to bind the same queue to different names.</p>
<p>The selector element defines what JMS message selector the predefined
queue will have. Only messages that match the selector will be added to
the queue. This is an optional element with a default of null when
omitted.</p>
<p>The durable element specifies whether the queue will be persisted. This
again is optional and defaults to true if omitted.</p>
<p>Secondly a queue can be predefined at a core level in the
<code>broker.xml</code> file. The following is an example.</p>
<pre><code>&lt;queues&gt;
&lt;queue name=&quot;jms.queue.selectorQueue&quot;&gt;
&lt;address&gt;jms.queue.selectorQueue&lt;/address&gt;
&lt;filter string=&quot;color=&apos;red&apos;&quot;/&gt;
&lt;durable&gt;true&lt;/durable&gt;
&lt;/queue&gt;
&lt;/queues&gt;
</code></pre><p>This is very similar to the JMS configuration, with 3 real differences
which are.</p>
<ol>
<li><p>The name attribute of queue is the actual name used for the queue
with no naming convention as in JMS.</p>
</li>
<li><p>The address element defines what address is used for routing
messages.</p>
</li>
<li><p>There is no entry element.</p>
</li>
<li><p>The filter uses the <em>Core filter syntax</em> (described in <a href="filter-expressions.html">filter Expressions</a>), <em>not</em> the
JMS selector syntax.</p>
</li>
</ol>
<h2 id="using-the-api">Using the API</h2>
<p>Queues can also be created using the core API or the management API.</p>
<p>For the core API, queues can be created via the
<code>org.apache.activemq.artemis.api.core.client.ClientSession</code> interface. There are
multiple <code>createQueue</code> methods that support setting all of the
previously mentioned attributes. There is one extra attribute that can
be set via this API which is <code>temporary</code>. setting this to true means
that the queue will be deleted once the session is disconnected.</p>
<p>Take a look at <a href="management.html">Management</a> for a description of the management API for creating
queues.</p>
<h2 id="configuring-queues-via-address-settings">Configuring Queues Via Address Settings</h2>
<p>There are some attributes that are defined against an address wildcard
rather than a specific queue. Here an example of an <code>address-setting</code>
entry that would be found in the <code>broker.xml</code> file.</p>
<pre><code>&lt;address-settings&gt;
&lt;address-setting match=&quot;jms.queue.exampleQueue&quot;&gt;
&lt;dead-letter-address&gt;jms.queue.deadLetterQueue&lt;/dead-letter-address&gt;
&lt;max-delivery-attempts&gt;3&lt;/max-delivery-attempts&gt;
&lt;redelivery-delay&gt;5000&lt;/redelivery-delay&gt;
&lt;expiry-address&gt;jms.queue.expiryQueue&lt;/expiry-address&gt;
&lt;last-value-queue&gt;true&lt;/last-value-queue&gt;
&lt;max-size-bytes&gt;100000&lt;/max-size-bytes&gt;
&lt;page-size-bytes&gt;20000&lt;/page-size-bytes&gt;
&lt;redistribution-delay&gt;0&lt;/redistribution-delay&gt;
&lt;send-to-dla-on-no-route&gt;true&lt;/send-to-dla-on-no-route&gt;
&lt;address-full-policy&gt;PAGE&lt;/address-full-policy&gt;
&lt;slow-consumer-threshold&gt;-1&lt;/slow-consumer-threshold&gt;
&lt;slow-consumer-policy&gt;NOTIFY&lt;/slow-consumer-policy&gt;
&lt;slow-consumer-check-period&gt;5&lt;/slow-consumer-check-period&gt;
&lt;auto-create-queues&gt;true&lt;/auto-create-queues&gt;
&lt;auto-delete-queues&gt;true&lt;/auto-delete-queues&gt;
&lt;/address-setting&gt;
&lt;/address-settings&gt;
</code></pre><p>The idea with address settings, is you can provide a block of settings
which will be applied against any addresses that match the string in the
<code>match</code> attribute. In the above example the settings would only be
applied to any addresses which exactly match the address
<code>jms.queue.exampleQueue</code>, but you can also use wildcards to apply sets
of configuration against many addresses. The wildcard syntax used is
described <a href="#wildcard-syntax">here</a>.</p>
<p>For example, if you used the <code>match</code> string <code>jms.queue.#</code> the settings
would be applied to all addresses which start with <code>jms.queue.</code> which
would be all JMS queues.</p>
<p>The meaning of the specific settings are explained fully throughout the
user manual, however here is a brief description with a link to the
appropriate chapter if available.</p>
<p><code>max-delivery-attempts</code> defines how many time a cancelled message can be
redelivered before sending to the <code>dead-letter-address</code>. A full
explanation can be found <a href="#undelivered-messages.configuring">here</a>.</p>
<p><code>redelivery-delay</code> defines how long to wait before attempting redelivery
of a cancelled message. see <a href="#undelivered-messages.delay">here</a>.</p>
<p><code>expiry-address</code> defines where to send a message that has expired. see
<a href="#message-expiry.configuring">here</a>.</p>
<p><code>expiry-delay</code> defines the expiration time that will be used for
messages which are using the default expiration time (i.e. 0). For
example, if <code>expiry-delay</code> is set to &quot;10&quot; and a message which is using
the default expiration time (i.e. 0) arrives then its expiration time of
&quot;0&quot; will be changed to &quot;10.&quot; However, if a message which is using an
expiration time of &quot;20&quot; arrives then its expiration time will remain
unchanged. Setting <code>expiry-delay</code> to &quot;-1&quot; will disable this feature. The
default is &quot;-1&quot;.</p>
<p><code>last-value-queue</code> defines whether a queue only uses last values or not.
see <a href="#last-value-queues">here</a>.</p>
<p><code>max-size-bytes</code> and <code>page-size-bytes</code> are used to set paging on an
address. This is explained <a href="#paging">here</a>.</p>
<p><code>redistribution-delay</code> defines how long to wait when the last consumer
is closed on a queue before redistributing any messages. see
<a href="#clusters">here</a>.</p>
<p><code>send-to-dla-on-no-route</code>. If a message is sent to an address, but the
server does not route it to any queues, for example, there might be no
queues bound to that address, or none of the queues have filters that
match, then normally that message would be discarded. However if this
parameter is set to true for that address, if the message is not routed
to any queues it will instead be sent to the dead letter address (DLA)
for that address, if it exists.</p>
<p><code>address-full-policy</code>. This attribute can have one of the following
values: PAGE, DROP, FAIL or BLOCK and determines what happens when an
address where <code>max-size-bytes</code> is specified becomes full. The default
value is PAGE. If the value is PAGE then further messages will be paged
to disk. If the value is DROP then further messages will be silently
dropped. If the value is FAIL then further messages will be dropped and
an exception will be thrown on the client-side. If the value is BLOCK
then client message producers will block when they try and send further
messages. See the following chapters for more info <a href="flow-control.html">Flow Control</a>, <a href="paging.html">Paging</a>.</p>
<p><code>slow-consumer-threshold</code>. The minimum rate of message consumption
allowed before a consumer is considered &quot;slow.&quot; Measured in
messages-per-second. Default is -1 (i.e. disabled); any other valid
value must be greater than 0.</p>
<p><code>slow-consumer-policy</code>. What should happen when a slow consumer is
detected. <code>KILL</code> will kill the consumer&apos;s connection (which will
obviously impact any other client threads using that same connection).
<code>NOTIFY</code> will send a CONSUMER_SLOW management notification which an
application could receive and take action with. See <a href="slow-consumers.html">slow consumers</a> for more details
on this notification.</p>
<p><code>slow-consumer-check-period</code>. How often to check for slow consumers on a
particular queue. Measured in minutes. Default is 5. See <a href="slow-consumers.html">slow consumers</a>
for more information about slow consumer detection.</p>
<p><code>auto-create-jms-queues</code>. Whether or not the broker should automatically
create a JMS queue when a JMS message is sent to a queue whose name fits
the address <code>match</code> (remember, a JMS queue is just a core queue which has
the same address and queue name) or a JMS consumer tries to connect to a
queue whose name fits the address <code>match</code>. Queues which are auto-created
are durable, non-temporary, and non-transient.</p>
<p><code>auto-delete-jms-queues</code>. Whether or not to the broker should automatically
delete auto-created JMS queues when they have both 0 consumers and 0 messages.</p>
</section>
</div>
</div>
</div>
<a href="./paging.html" class="navigation navigation-prev " aria-label="Previous page: Paging"><i class="fa fa-angle-left"></i></a>
<a href="./scheduled-messages.html" class="navigation navigation-next " aria-label="Next page: Scheduled Messages"><i class="fa fa-angle-right"></i></a>
</div>
</div>
<script src="gitbook/app.js"></script>
<script>
require(["gitbook"], function(gitbook) {
var config = {"fontSettings":{"theme":null,"family":"sans","size":2}};
gitbook.start(config);
});
</script>
</body>
</html>