<?xml version="1.0"?>
<!--

 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.

-->

<section xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="Java-Broker-Management-Managing-Queues">
  <title>Queues</title>
  <para><link linkend="Java-Broker-Concepts-Queues">Queues</link> are named entities that
    hold/buffer messages for later delivery to consumer applications.</para>
  <para>Queues can be managed using the HTTP or AMQP channels.</para>
  <section xml:id="Java-Broker-Management-Managing-Queues-Types">
    <title>Types</title>
    <para>The Broker supports four different queue types, each with different delivery semantics.<itemizedlist>
        <listitem>
          <para><link linkend="Java-Broker-Concepts-Queues-Types-Standard">Standard</link> - a simple First-In-First-Out (FIFO) queue</para>
        </listitem>
        <listitem>
          <para><link linkend="Java-Broker-Concepts-Queues-Types-Priority">Priority</link> - delivery order depends on the priority of each message</para>
        </listitem>
        <listitem>
          <para><link linkend="Java-Broker-Concepts-Queues-Types-Sorted">Sorted</link> -
            delivery order depends on the value of the sorting key property in each message</para>
        </listitem>
        <listitem>
          <para><link linkend="Java-Broker-Concepts-Queues-Types-LVQ">Last Value
              Queue</link> - also known as an LVQ, retains only the last (newest) message received
            with a given LVQ key value</para>
        </listitem>
      </itemizedlist></para>
  </section>
  <section xml:id="Java-Broker-Management-Managing-Queues-Attributes">
    <title>Attributes</title>
    <para><itemizedlist>
        <listitem>
          <para><emphasis>Name of the queue</emphasis>. Message consumers and browsers refer to this
            name when they wish to subscribe to queue to receive messages from it.</para>
        </listitem>
        <listitem>
          <para><emphasis>Type of the queue</emphasis>. Can be either <link linkend="Java-Broker-Concepts-Queues-Types-Standard">standard</link>, <link linkend="Java-Broker-Concepts-Queues-Types-Priority">priority</link>, <link linkend="Java-Broker-Concepts-Queues-Types-Sorted">sorted</link>, or <link linkend="Java-Broker-Concepts-Queues-Types-LVQ">lvq</link>.</para>
        </listitem>
        <listitem>
          <para><emphasis>Durable</emphasis>. Whether the queue survives a restart. Messages on a
            non durable queue do not survive a restart even if they are marked persistent.</para>
        </listitem>
        <listitem>
          <para><emphasis>Maximum/Minimum TTL</emphasis>. Defines a maximum and minimum
            time-to-live. Messages arriving with ttl larger than the maximum will be overridden by
            the maximum. Similarly, messages arriving with tll less than the minimum (or no ttl at
            all), will be overridden by the minimum.</para>
          <para>Changing these values affects only new arrivals, existing messages already on the
            queue are not affected.</para>
        </listitem>
        <listitem>
          <para><emphasis>Message persistent override</emphasis>. Allow message persistent settings
            of incoming messages to be overridden. Changing this value affects only new arrivals,
            existing messages on the queue are not affected. </para>
        </listitem>
        <listitem>
          <para><emphasis>Queue capacity</emphasis>. Queues have the ability to limit the of the
            cumulative size of all the messages contained within the store. This feature is
            described in detail <xref linkend="Java-Broker-Runtime-Disk-Space-Management"/>.</para>
        </listitem>
        <listitem>
          <para><emphasis>Alerting Thresholds</emphasis>. Queues have the ability to alert on a
            variety of conditions: total queue depth exceeded a number or size, message age exceeded
            a threshold, message size exceeded a threshold. These thresholds are soft. See <xref linkend="Java-Broker-Appendix-Queue-Alerts"/></para>
        </listitem>
        <listitem>
          <para><emphasis>Maximum Delivery Count/Alternate Exchange</emphasis>. See <xref linkend="Java-Broker-Runtime-Handling-Undeliverable-Messages"/></para>
        </listitem>
        <listitem>
          <para><emphasis>Message Groups</emphasis>. See <xref linkend="Java-Broker-Concepts-Queues-Message-Grouping"/></para>
        </listitem>
      </itemizedlist></para>
  </section>
  <section xml:id="Java-Broker-Management-Managing-Queue-Children">
    <title>Children</title>
    <para>
      <itemizedlist>
        <listitem>
          <para>Binding</para>
        </listitem>
      </itemizedlist>
    </para>
  </section>
  <section xml:id="Java-Broker-Management-Managing-Queue-Lifecycle">
    <title>Lifecycle</title>
    <para>Not supported</para>
  </section>

</section>
