diff options
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.xml | 198 |
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> |
