summaryrefslogtreecommitdiff
path: root/qpid/doc/book/src/cpp-broker/Cheat-Sheet-for-configuring-Queue-Options.xml
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/doc/book/src/cpp-broker/Cheat-Sheet-for-configuring-Queue-Options.xml')
-rw-r--r--qpid/doc/book/src/cpp-broker/Cheat-Sheet-for-configuring-Queue-Options.xml198
1 files changed, 0 insertions, 198 deletions
diff --git a/qpid/doc/book/src/cpp-broker/Cheat-Sheet-for-configuring-Queue-Options.xml b/qpid/doc/book/src/cpp-broker/Cheat-Sheet-for-configuring-Queue-Options.xml
deleted file mode 100644
index 125372e463..0000000000
--- a/qpid/doc/book/src/cpp-broker/Cheat-Sheet-for-configuring-Queue-Options.xml
+++ /dev/null
@@ -1,198 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-
- 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><title>
- Cheat Sheet for configuring Queue Options
- </title>
-
- <section role="h2" id="CheatSheetforconfiguringQueueOptions-ConfiguringQueueOptions"><title>
- Configuring
- Queue Options
- </title>
-
- <para>
- The C++ Broker M4 or later supports the following additional
- Queue constraints.
- </para>
- <itemizedlist>
- <listitem><para>
- <xref linkend="CheatSheetforconfiguringQueueOptions-ConfiguringQueueOptions"/>
- </para></listitem>
- <listitem><para>
- <itemizedlist>
- <listitem><para>
- <xref linkend="CheatSheetforconfiguringQueueOptions-ApplyingQueueSizingConstraints"/>
- </para></listitem>
- <listitem><para>
- <xref linkend="CheatSheetforconfiguringQueueOptions-ChangingtheQueueorderingBehaviors-28FIFO-2FLVQ-29"/>
- </para></listitem>
- <listitem><para>
- <xref linkend="CheatSheetforconfiguringQueueOptions-Settingadditionalbehaviors"/>
- </para></listitem>
- <listitem><para>
- <itemizedlist>
- <listitem><para>
- <xref linkend="CheatSheetforconfiguringQueueOptions-Queueeventgeneration"/>
- </para></listitem>
- </itemizedlist>
- </para></listitem>
- <listitem><para>
- <xref linkend="CheatSheetforconfiguringQueueOptions-OtherClients"/>
- </para></listitem>
- </itemizedlist>
- </para></listitem>
- </itemizedlist>
-
- <para>
- The 0.10 C++ Broker supports the following additional Queue configuration options:
- </para>
- <itemizedlist>
- <listitem><para>
- <xref linkend="producer-flow-control"/>
- </para></listitem>
- </itemizedlist>
-
- <section role="h3" id="CheatSheetforconfiguringQueueOptions-ApplyingQueueSizingConstraints"><title>
- Applying Queue Sizing Constraints
- </title>
-
- <para>
- This allows to specify how to size a queue and what to do when
- the sizing constraints have been reached. The queue size can be
- limited by the number messages (message depth) or byte depth on
- the queue.
- </para><para>
- Once the Queue meets/ exceeds these constraints the follow
- policies can be applied
- </para><itemizedlist>
- <listitem><para>REJECT - Reject the published message
- </para></listitem>
- <listitem><para>FLOW_TO_DISK - Flow the messages to disk, to preserve memory
- </para></listitem>
- <listitem><para>RING - start overwriting messages in a ring based on sizing.
- If head meets tail, advance head
- </para></listitem>
- <listitem><para>RING_STRICT - start overwriting messages in a ring based on
- sizing. If head meets tail, AND the consumer has the tail message
- acquired it will reject
- </para></listitem>
- </itemizedlist><para>
- Examples:
- </para><para>
- Create a queue an auto delete queue that will support 100 000
- bytes, and then REJECT
- </para>
- <programlisting>
-#include "qpid/client/QueueOptions.h"
-
- QueueOptions qo;
- qo.setSizePolicy(REJECT,100000,0);
-
- session.queueDeclare(arg::queue=queue, arg::autoDelete=true, arg::arguments=qo);
-</programlisting>
- <para>
- Create a queue that will support 1000 messages into a RING buffer
- </para>
- <programlisting>
-#include "qpid/client/QueueOptions.h"
-
- QueueOptions qo;
- qo.setSizePolicy(RING,0,1000);
-
- session.queueDeclare(arg::queue=queue, arg::arguments=qo);
-</programlisting>
- <!--h3--></section>
- <section role="h3" id="CheatSheetforconfiguringQueueOptions-ChangingtheQueueorderingBehaviors-28FIFO-2FLVQ-29"><title>
- Changing the Queue ordering Behaviors (FIFO/LVQ)
- </title>
- <para>
- The default ordering in a queue in Qpid is FIFO. However
- additional ordering semantics can be used namely LVQ (Last Value
- Queue). Last Value Queue is define as follows.
- </para><para>
- If I publish symbols RHT, IBM, JAVA, MSFT, and then publish RHT
- before the consumer is able to consume RHT, that message will be
- over written in the queue and the consumer will receive the last
- published value for RHT.
- </para><para>
- Example:
- </para>
- <programlisting>
-#include "qpid/client/QueueOptions.h"
-
- QueueOptions qo;
- qo.setOrdering(LVQ);
-
- session.queueDeclare(arg::queue=queue, arg::arguments=qo);
-
- .....
- string key;
- qo.getLVQKey(key);
-
- ....
- for each message, set the into application headers before transfer
- message.getHeaders().setString(key,"RHT");
-
-</programlisting>
- <para>
- Notes:
- </para><itemizedlist>
- <listitem><para>Messages that are dequeued and the re-queued will have the
- following exceptions. a.) if a new message has been queued with
- the same key, the re-queue from the consumer, will combine these
- two messages. b.) If an update happens for a message of the same
- key, after the re-queue, it will not update the re-queued
- message. This is done to protect a client from being able to
- adversely manipulate the queue.
- </para></listitem>
- <listitem><para>Acquire: When a message is acquired from the queue, no matter
- it's position, it will behave the same as a dequeue
- </para></listitem>
- <listitem><para>LVQ does not support durable messages. If the queue or
- messages are declared durable on an LVQ, the durability will be
- ignored.
- </para></listitem>
- </itemizedlist><para>
- A fully worked <xref linkend="LVQ-Example"/> can be found here
- </para>
- <!--h3--></section>
- <section role="h3" id="CheatSheetforconfiguringQueueOptions-Settingadditionalbehaviors"><title>
- Setting additional behaviors
- </title>
- <!--h3--></section>
- <section role="h3" id="CheatSheetforconfiguringQueueOptions-OtherClients"><title>
- Other
- Clients
- </title>
- <para>
- Note that these options can be set from any client. QueueOptions
- just correctly formats the arguments passed to the QueueDeclare()
- method.
- </para>
-
- <!--h3--></section>
-
- <!--h2--></section>
-
-
-</section>