http://git-wip-us.apache.org/repos/asf/qpid-site/blob/a39b425b/content/releases/qpid-0.26/cpp-broker/book/ha-queue-replication.html ---------------------------------------------------------------------- diff --git a/content/releases/qpid-0.26/cpp-broker/book/ha-queue-replication.html b/content/releases/qpid-0.26/cpp-broker/book/ha-queue-replication.html deleted file mode 100644 index 7830bc6..0000000 --- a/content/releases/qpid-0.26/cpp-broker/book/ha-queue-replication.html +++ /dev/null @@ -1,221 +0,0 @@ -<!DOCTYPE html> -<!-- - - - - 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. - - ---> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> - <head> - <title>1.13. Replicating Queues with the HA module - Apache Qpid™</title> - <meta http-equiv="X-UA-Compatible" content="IE=edge"/> - <meta name="viewport" content="width=device-width, initial-scale=1.0"/> - <link rel="stylesheet" href="/site.css" type="text/css" async="async"/> - <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/> - <script type="text/javascript">var _deferredFunctions = [];</script> - <script type="text/javascript" src="/deferred.js" defer="defer"></script> - <!--[if lte IE 8]> - <link rel="stylesheet" href="/ie.css" type="text/css"/> - <script type="text/javascript" src="/html5shiv.js"></script> - <![endif]--> - - <!-- Redirects for `go get` and godoc.org --> - <meta name="go-import" - content="qpid.apache.org git https://git-wip-us.apache.org/repos/asf/qpid-proton.git"/> - <meta name="go-source" - content="qpid.apache.org -https://github.com/apache/qpid-proton/blob/go1/README.md -https://github.com/apache/qpid-proton/tree/go1{/dir} -https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/> - </head> - <body> - <div id="-content"> - <div id="-top" class="panel"> - <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a> - - <a id="-search-link"><img width="22" height="16" src="" alt="Search"/></a> - - <ul id="-global-navigation"> - <li><a id="-logotype" href="/index.html">Apache Qpid<sup>™</sup></a></li> - <li><a href="/documentation.html">Documentation</a></li> - <li><a href="/download.html">Download</a></li> - <li><a href="/discussion.html">Discussion</a></li> - </ul> - </div> - - <div id="-menu" class="panel" style="display: none;"> - <div class="flex"> - <section> - <h3>Project</h3> - - <ul> - <li><a href="/overview.html">Overview</a></li> - <li><a href="/components/index.html">Components</a></li> - <li><a href="/releases/index.html">Releases</a></li> - </ul> - </section> - - <section> - <h3>Messaging APIs</h3> - - <ul> - <li><a href="/proton/index.html">Qpid Proton</a></li> - <li><a href="/components/jms/index.html">Qpid JMS</a></li> - <li><a href="/components/messaging-api/index.html">Qpid Messaging API</a></li> - </ul> - </section> - - <section> - <h3>Servers and tools</h3> - - <ul> - <li><a href="/components/java-broker/index.html">Broker for Java</a></li> - <li><a href="/components/cpp-broker/index.html">C++ broker</a></li> - <li><a href="/components/dispatch-router/index.html">Dispatch router</a></li> - </ul> - </section> - - <section> - <h3>Resources</h3> - - <ul> - <li><a href="/dashboard.html">Dashboard</a></li> - <li><a href="https://cwiki.apache.org/confluence/display/qpid/Index">Wiki</a></li> - <li><a href="/resources.html">More resources</a></li> - </ul> - </section> - </div> - </div> - - <div id="-search" class="panel" style="display: none;"> - <form action="http://www.google.com/search" method="get"> - <input type="hidden" name="sitesearch" value="qpid.apache.org"/> - <input type="text" name="q" maxlength="255" autofocus="autofocus" tabindex="1"/> - <button type="submit">Search</button> - <a href="/search.html">More ways to search</a> - </form> - </div> - - <div id="-middle" class="panel"> - <ul id="-path-navigation"><li><a href="/index.html">Home</a></li><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-0.26/index.html">Qpid 0.26</a></li><li><a href="/releases/qpid-0.26/cpp-broker/book/index.html">AMQP Messaging Broker (Implemented in C++)</a></li><li>1.13. Replicating Queues with the HA module</li></ul> - - <div id="-middle-content"> - <div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">1.13. Replicating Queues with the HA module</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="chapter-ha.html">Prev</a> </td><th align="center" width="60%">Chapter 1.  - Running the AMQP Messaging Broker - </th><td align="right" width="20%"> <a accesskey="n" href="chapter-Managing-CPP-Broker.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="ha-queue-replication"></a>1.13. Replicating Queues with the HA module</h2></div></div></div><p> - As well as support for an active-passive cluster, the - <code class="filename">HA</code> module allows you to replicate individual queues, - even if the brokers are not in a cluster. The <em class="firstterm">original</em> - queue is used as normal. The <em class="firstterm">replica</em> queue is - updated automatically as messages are added to or removed from the original - queue. - </p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p> - It is not safe to modify the replica queue - other than via the automatic updates from the original. Adding or removing - messages on the replica queue will make replication inconsistent and may - cause message loss. - The <code class="filename">HA</code> module does <span class="emphasis"><em>not</em></span> enforce - restricted access to the replica queue (as it does in the case of a cluster) - so it is up to the application to ensure the replica is not used until it has - been disconnected from the original. - </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm139836370633040"></a>1.13.1. Replicating queues</h3></div></div></div><p> - To create a replica queue, the <code class="filename">HA</code> module must be - loaded on both the original and replica brokers (it is loaded by default.) - You also need to set the configuration option: - </p><pre class="programlisting"> - ha-queue-replication=yes - </pre><p> - to enable this feature on a stand-alone broker. It is automatically - enabled for brokers that are part of a cluster. - </p><p> - Suppose that <span class="command"><strong>myqueue</strong></span> is a queue on - <span class="command"><strong>node1</strong></span> and we want to create a replica of - <span class="command"><strong>myqueue</strong></span> on <span class="command"><strong>node2</strong></span> (where both brokers - are using the default AMQP port.) This is accomplished by the command: - </p><pre class="programlisting"> - qpid-config --broker=node2 add queue --start-replica node1 myqueue - </pre><p> - If <span class="command"><strong>myqueue</strong></span> already exists on the replica - broker you can start replication from the original queue like this: - </p><pre class="programlisting"> - qpid-ha replicate -b node2 node1 myqueue - </pre><p> - </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm139836366148736"></a>1.13.2. Replicating queues between clusters</h3></div></div></div><p> - You can replicate queues between two standalone brokers, between a - standalone broker and a cluster, or between two clusters (see <a class="xref" href="chapter-ha.html" title="1.12. Active-Passive Messaging Clusters">Section 1.12, “Active-Passive Messaging Clusters”</a>.) For failover in a cluster there are two cases to - consider. - </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p> - When the <span class="emphasis"><em>original</em></span> queue is on the active node - of a cluster, failover is automatic. If the active node - fails, the replication link will automatically reconnect and the - replica will continue to be updated from the new primary. - </p></li><li class="listitem"><p> - When the <span class="emphasis"><em>replica</em></span> queue is on the active node of a - cluster, there is no automatic failover. However you can use the - following workaround. - </p></li></ol></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm139836366793888"></a>1.13.2.1. Work around for fail-over of replica queue in a cluster</h4></div></div></div><p> - When a primary broker fails the cluster resource manager calls a script - to promote a backup broker to be the new primary. By default this script - is <code class="filename">/etc/init.d/qpidd-primary</code> but you can modify - that in your <code class="filename">cluster.conf</code> file (see <a class="xref" href="chapter-ha.html#ha-rm-config" title="1.12.5. Configuring rgmanager as resource manager">Section 1.12.5, “Configuring <span class="command"><strong>rgmanager</strong></span> as resource manager”</a>.) - </p><p> - You can modify this script (on each host in your cluster) by adding - commands to create your replica queues just before the broker is - promoted, as indicated in the following exceprt from the script: - </p><pre class="programlisting"> -start() { - service qpidd start - echo -n $"Promoting qpid daemon to cluster primary: " - ################################ - #### Add your commands here #### - ################################ - $QPID_HA -b localhost:$QPID_PORT promote - [ "$?" -eq 0 ] && success || failure -} - </pre><p> - Your commands will be run, and your replicas created, whenever - the system fails over to a new primary. - </p></div></div></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="chapter-ha.html">Prev</a> </td><td align="center" width="20%"><a accesskey="u" href="ch01.html">Up</a></td><td align="right" width="40%"> <a accesskey="n" href="chapter-Managing-CPP-Broker.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">1.12. Active-Passive Messaging Clusters </td><td align="center" width="20%"><a accesskey="h" href="index.html">Home</a></td><td align="right" valign="top" width="40%"> Chapter 2.  - Managing the AMQP Messaging Broker - </td></tr></table></div></div> - - <hr/> - - <ul id="-apache-navigation"> - <li><a href="http://www.apache.org/">Apache</a></li> - <li><a href="http://www.apache.org/licenses/">License</a></li> - <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li> - <li><a href="http://www.apache.org/foundation/thanks.html">Thanks!</a></li> - <li><a href="/security.html">Security</a></li> - <li><a href="http://www.apache.org/"><img id="-apache-feather" width="48" height="14" src="" alt="Apache"/></a></li> - </ul> - - <p id="-legal"> - Apache Qpid, Messaging built on AMQP; Copyright © 2015 - The Apache Software Foundation; Licensed under - the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache - License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton, - Proton, Apache, the Apache feather logo, and the Apache Qpid - project logo are trademarks of The Apache Software - Foundation; All other marks mentioned may be trademarks or - registered trademarks of their respective owners - </p> - </div> - </div> - </div> - </body> -</html>
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/a39b425b/content/releases/qpid-0.26/cpp-broker/book/index.html ---------------------------------------------------------------------- diff --git a/content/releases/qpid-0.26/cpp-broker/book/index.html b/content/releases/qpid-0.26/cpp-broker/book/index.html deleted file mode 100644 index adb3d86..0000000 --- a/content/releases/qpid-0.26/cpp-broker/book/index.html +++ /dev/null @@ -1,251 +0,0 @@ -<!DOCTYPE html> -<!-- - - - - 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. - - ---> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> - <head> - <title>AMQP Messaging Broker (Implemented in C++) - Apache Qpid™</title> - <meta http-equiv="X-UA-Compatible" content="IE=edge"/> - <meta name="viewport" content="width=device-width, initial-scale=1.0"/> - <link rel="stylesheet" href="/site.css" type="text/css" async="async"/> - <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/> - <script type="text/javascript">var _deferredFunctions = [];</script> - <script type="text/javascript" src="/deferred.js" defer="defer"></script> - <!--[if lte IE 8]> - <link rel="stylesheet" href="/ie.css" type="text/css"/> - <script type="text/javascript" src="/html5shiv.js"></script> - <![endif]--> - - <!-- Redirects for `go get` and godoc.org --> - <meta name="go-import" - content="qpid.apache.org git https://git-wip-us.apache.org/repos/asf/qpid-proton.git"/> - <meta name="go-source" - content="qpid.apache.org -https://github.com/apache/qpid-proton/blob/go1/README.md -https://github.com/apache/qpid-proton/tree/go1{/dir} -https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/> - </head> - <body> - <div id="-content"> - <div id="-top" class="panel"> - <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a> - - <a id="-search-link"><img width="22" height="16" src="" alt="Search"/></a> - - <ul id="-global-navigation"> - <li><a id="-logotype" href="/index.html">Apache Qpid<sup>™</sup></a></li> - <li><a href="/documentation.html">Documentation</a></li> - <li><a href="/download.html">Download</a></li> - <li><a href="/discussion.html">Discussion</a></li> - </ul> - </div> - - <div id="-menu" class="panel" style="display: none;"> - <div class="flex"> - <section> - <h3>Project</h3> - - <ul> - <li><a href="/overview.html">Overview</a></li> - <li><a href="/components/index.html">Components</a></li> - <li><a href="/releases/index.html">Releases</a></li> - </ul> - </section> - - <section> - <h3>Messaging APIs</h3> - - <ul> - <li><a href="/proton/index.html">Qpid Proton</a></li> - <li><a href="/components/jms/index.html">Qpid JMS</a></li> - <li><a href="/components/messaging-api/index.html">Qpid Messaging API</a></li> - </ul> - </section> - - <section> - <h3>Servers and tools</h3> - - <ul> - <li><a href="/components/java-broker/index.html">Broker for Java</a></li> - <li><a href="/components/cpp-broker/index.html">C++ broker</a></li> - <li><a href="/components/dispatch-router/index.html">Dispatch router</a></li> - </ul> - </section> - - <section> - <h3>Resources</h3> - - <ul> - <li><a href="/dashboard.html">Dashboard</a></li> - <li><a href="https://cwiki.apache.org/confluence/display/qpid/Index">Wiki</a></li> - <li><a href="/resources.html">More resources</a></li> - </ul> - </section> - </div> - </div> - - <div id="-search" class="panel" style="display: none;"> - <form action="http://www.google.com/search" method="get"> - <input type="hidden" name="sitesearch" value="qpid.apache.org"/> - <input type="text" name="q" maxlength="255" autofocus="autofocus" tabindex="1"/> - <button type="submit">Search</button> - <a href="/search.html">More ways to search</a> - </form> - </div> - - <div id="-middle" class="panel"> - <ul id="-path-navigation"><li><a href="/index.html">Home</a></li><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-0.26/index.html">Qpid 0.26</a></li><li>AMQP Messaging Broker (Implemented in C++)</li></ul> - - <div id="-middle-content"> - <div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">AMQP Messaging Broker (Implemented in C++)</th></tr><tr><td align="left" width="20%"> </td><th align="center" width="60%"> </th><td align="right" width="20%"> <a accesskey="n" href="pr01.html">Next</a></td></tr></table><hr /></div><div class="book"><div class="titlepage"><div><div><h1 class="title"><a id="idm139836379306112"></a>AMQP Messaging Broker (Implemented in C++)</h1></div></div><hr /></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="preface"><a href="pr01.html">Introduction</a></span></dt><dt><span class="chapter"><a href="ch01.html">1. - Running the AMQP Messaging Broker - </a></span></dt><dd><dl><dt><span class="section"><a href="ch01.html#section-Running-a-Qpid-CPP-Broker">1.1. - Running a Qpid C++ Broker - </a></span></dt><dd><dl><dt><span class="section"><a href="ch01.html#RASC-BuildingtheCppBrokerandClientLibraries">1.1.1. - Building the - C++ Broker and Client Libraries - </a></span></dt><dt><span class="section"><a href="ch01.html#RASC-RunningtheCppBroker">1.1.2. - Running the C++ Broker - </a></span></dt><dt><span class="section"><a href="ch01.html#RASC-Mostcommonquestionsgettingqpiddrunning">1.1.3. - Most - common questions getting qpidd running - </a></span></dt><dt><span class="section"><a href="ch01.html#RASC-Authentication">1.1.4. - Authentication - </a></span></dt><dt><span class="section"><a href="ch01.html#RASC-Slightlymorecomplexconfiguration">1.1.5. - Slightly more - complex configuration - </a></span></dt><dt><span class="section"><a href="ch01.html#RASC-Loadingextramodules">1.1.6. - Loading extra modules - </a></span></dt><dt><span class="section"><a href="ch01.html#RASC-message-timestamps">1.1.7. Timestamping Received Messages</a></span></dt><dt><span class="section"><a href="ch01.html#RASC-logging-options">1.1.8. Logging Options</a></span></dt></dl></dd><dt><span class="section"><a href="ch01s02.html">1.2. - Cheat Sheet for configuring Queue Options - </a></span></dt><dd><dl><dt><span class="section"><a href="ch01s02.html#CheatSheetforconfiguringQueueOptions-ConfiguringQueueOptions">1.2.1. - Configuring - Queue Options - </a></span></dt></dl></dd><dt><span class="section"><a href="ch01s03.html">1.3. - Cheat Sheet for configuring Exchange Options - </a></span></dt><dd><dl><dt><span class="section"><a href="ch01s03.html#CheatSheetforconfiguringExchangeOptions-ConfiguringExchangeOptions">1.3.1. - Configuring Exchange Options - </a></span></dt></dl></dd><dt><span class="section"><a href="chap-Messaging_User_Guide-Broker_Federation.html">1.4. Broker Federation</a></span></dt><dd><dl><dt><span class="section"><a href="chap-Messaging_User_Guide-Broker_Federation.html#sect-Messaging_User_Guide-Broker_Federation-Message_Routes">1.4.1. Message Routes</a></span></dt><dt><span class="section"><a href="chap-Messaging_User_Guide-Broker_Federation.html#sect-Messaging_User_Guide-Broker_Federation-Federation_Topologies">1.4.2. Federation Topologies</a></span></dt><dt><span class="section"><a href="chap-Messaging_User_Guide-Broker_Federation.html#sect-Messaging_User_Guide-Broker_Federation-Federation_among_High_Availability_Message_Clusters">1.4.3. Federation among High Availability Message Clusters</a></span></dt><dt><span class="section"><a href="chap-Messaging_User_Guide-Broker_Federation.html#sect-Messaging_User_Guide-Broker_Federation-The_qpid_route_Utility">1.4.4. The qpid-route Utility</a></span></dt></dl></d d><dt><span class="section"><a href="chap-Messaging_User_Guide-Security.html">1.5. Security</a></span></dt><dd><dl><dt><span class="section"><a href="chap-Messaging_User_Guide-Security.html#sect-Messaging_User_Guide-Security-User_Authentication">1.5.1. User Authentication</a></span></dt><dt><span class="section"><a href="chap-Messaging_User_Guide-Security.html#sect-Messaging_User_Guide-Security-Authorization">1.5.2. Authorization</a></span></dt><dt><span class="section"><a href="chap-Messaging_User_Guide-Security.html#sect-Messaging_User_Guide-Authorization-Specifying_ACL_Quotas">1.5.3. User Connection and Queue Quotas</a></span></dt><dt><span class="section"><a href="chap-Messaging_User_Guide-Security.html#sect-Messaging_User_Guide-Security-Encryption_using_SSL">1.5.4. Encryption using SSL</a></span></dt></dl></dd><dt><span class="section"><a href="ch01s06.html">1.6. LVQ - Last Value Queue</a></span></dt><dd><dl><dt><span class="section"><a href="ch01s06.html#LVQ-UnderstandingLVQ"> 1.6.1. Understanding LVQ</a></span></dt><dt><span class="section"><a href="ch01s06.html#LVQ-Creating">1.6.2. Creating a Last Value Queue</a></span></dt><dt><span class="section"><a href="ch01s06.html#LVQ-Example">1.6.3. LVQ Example</a></span></dt><dt><span class="section"><a href="ch01s06.html#LVQ-Deprecated">1.6.4. Deprecated LVQ Modes</a></span></dt></dl></dd><dt><span class="section"><a href="queue-state-replication.html">1.7. - Queue State Replication - </a></span></dt><dd><dl><dt><span class="section"><a href="queue-state-replication.html#queuestatereplication-AsynchronousReplicationofQueueState">1.7.1. - Asynchronous - Replication of Queue State - </a></span></dt></dl></dd><dt><span class="section"><a href="producer-flow-control.html">1.8. - Producer Flow Control - </a></span></dt><dd><dl><dt><span class="section"><a href="producer-flow-control.html#producerflowcontrol-Overview">1.8.1. - Overview - </a></span></dt><dt><span class="section"><a href="producer-flow-control.html#producerflowcontrol-UserInterface">1.8.2. - User Interface - </a></span></dt></dl></dd><dt><span class="section"><a href="AMQP-Compatibility.html">1.9. - AMQP compatibility - </a></span></dt><dd><dl><dt><span class="section"><a href="AMQP-Compatibility.html#AMQPcompatibility-AMQPCompatibilityofQpidreleases-3A">1.9.1. - AMQP - Compatibility of Qpid releases: - </a></span></dt><dt><span class="section"><a href="AMQP-Compatibility.html#AMQPcompatibility-InteroptablebyAMQPspecificationversion">1.9.2. - Interop - table by AMQP specification version - </a></span></dt></dl></dd><dt><span class="section"><a href="QpidInteroperabilityDocumentation-QpidInteroperabilityDocumentation.html">1.10. Qpid Interoperability Documentation</a></span></dt><dd><dl><dt><span class="section"><a href="QpidInteroperabilityDocumentation-QpidInteroperabilityDocumentation.html#QpidInteroperabilityDocumentation-SASL">1.10.1. - SASL - </a></span></dt></dl></dd><dt><span class="section"><a href="Using-message-groups.html">1.11. - Using Message Groups - </a></span></dt><dd><dl><dt><span class="section"><a href="Using-message-groups.html#usingmessagegroups-Overview">1.11.1. - Overview - </a></span></dt><dt><span class="section"><a href="Using-message-groups.html#usingmessagegroups-GroupingMessages">1.11.2. - Grouping Messages - </a></span></dt><dt><span class="section"><a href="Using-message-groups.html#usingmessagegroups-BrokerRole">1.11.3. - The Role of the Broker - </a></span></dt><dt><span class="section"><a href="Using-message-groups.html#usingmessagegroups-ConsumerGuide">1.11.4. - Well Behaved Consumers - </a></span></dt><dt><span class="section"><a href="Using-message-groups.html#usingmessagegroups-BrokerConfig">1.11.5. - Broker Configuration - </a></span></dt></dl></dd><dt><span class="section"><a href="chapter-ha.html">1.12. Active-Passive Messaging Clusters</a></span></dt><dd><dl><dt><span class="section"><a href="chapter-ha.html#ha-overview">1.12.1. Overview</a></span></dt><dt><span class="section"><a href="chapter-ha.html#ha-virtual-ip">1.12.2. Virtual IP Addresses</a></span></dt><dt><span class="section"><a href="chapter-ha.html#ha-broker-config">1.12.3. Configuring the Brokers</a></span></dt><dt><span class="section"><a href="chapter-ha.html#ha-rm">1.12.4. The Cluster Resource Manager</a></span></dt><dt><span class="section"><a href="chapter-ha.html#ha-rm-config">1.12.5. Configuring <span class="command"><strong>rgmanager</strong></span> as resource manager</a></span></dt><dt><span class="section"><a href="chapter-ha.html#ha-broker-admin">1.12.6. Broker Administration Tools</a></span></dt><dt><span class="section"><a href="chapter-ha.html#ha-replicate-values">1.12.7. Controlling replication of queues and excha nges</a></span></dt><dt><span class="section"><a href="chapter-ha.html#ha-failover">1.12.8. Client Connection and Fail-over</a></span></dt><dt><span class="section"><a href="chapter-ha.html#ha-security">1.12.9. Security and Access Control.</a></span></dt><dt><span class="section"><a href="chapter-ha.html#ha-other-rm">1.12.10. Integrating with other Cluster Resource Managers</a></span></dt><dt><span class="section"><a href="chapter-ha.html#ha-store">1.12.11. Using a message store in a cluster</a></span></dt></dl></dd><dt><span class="section"><a href="ha-queue-replication.html">1.13. Replicating Queues with the HA module</a></span></dt><dd><dl><dt><span class="section"><a href="ha-queue-replication.html#idm139836370633040">1.13.1. Replicating queues</a></span></dt><dt><span class="section"><a href="ha-queue-replication.html#idm139836366148736">1.13.2. Replicating queues between clusters</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="chapter-Managing-CPP-Broker. html">2. - Managing the AMQP Messaging Broker - </a></span></dt><dd><dl><dt><span class="section"><a href="chapter-Managing-CPP-Broker.html#section-Managing-CPP-Broker">2.1. Managing the C++ Broker </a></span></dt><dd><dl><dt><span class="section"><a href="chapter-Managing-CPP-Broker.html#MgmtC-2B-2B-Usingqpidconfig">2.1.1. - Using qpid-config - </a></span></dt><dt><span class="section"><a href="chapter-Managing-CPP-Broker.html#MgmtC-2B-2B-Usingqpidroute">2.1.2. - Using qpid-route - </a></span></dt><dt><span class="section"><a href="chapter-Managing-CPP-Broker.html#MgmtC-2B-2B-Usingqpidtool">2.1.3. - Using qpid-tool - </a></span></dt><dt><span class="section"><a href="chapter-Managing-CPP-Broker.html#MgmtC-2B-2B-Usingqpidprintevents">2.1.4. - Using - qpid-printevents - </a></span></dt><dt><span class="section"><a href="chapter-Managing-CPP-Broker.html#idm139836367882816">2.1.5. Using qpid-ha</a></span></dt></dl></dd><dt><span class="section"><a href="ch02s02.html">2.2. - Qpid Management Framework - </a></span></dt><dd><dl><dt><span class="section"><a href="ch02s02.html#QpidManagementFramework-WhatIsQMF">2.2.1. - What Is QMF - </a></span></dt><dt><span class="section"><a href="ch02s02.html#QpidManagementFramework-GettingStartedwithQMF">2.2.2. - Getting - Started with QMF - </a></span></dt><dt><span class="section"><a href="ch02s02.html#QpidManagementFramework-QMFConcepts">2.2.3. - QMF Concepts - </a></span></dt><dt><span class="section"><a href="ch02s02.html#QpidManagementFramework-TheQMFProtocol">2.2.4. - The QMF - Protocol - </a></span></dt><dt><span class="section"><a href="ch02s02.html#QpidManagementFramework-HowtoWriteaQMFConsole">2.2.5. - How - to Write a QMF Console - </a></span></dt><dt><span class="section"><a href="ch02s02.html#QpidManagementFramework-HowtoWriteaQMFAgent">2.2.6. - How to - Write a QMF Agent - </a></span></dt></dl></dd><dt><span class="section"><a href="ch02s03.html">2.3. - QMF Python Console Tutorial - </a></span></dt><dd><dl><dt><span class="section"><a href="ch02s03.html#QMFPythonConsoleTutorial-PrerequisiteInstallQpidMessaging">2.3.1. - Prerequisite - - Install Qpid Messaging - </a></span></dt><dt><span class="section"><a href="ch02s03.html#QMFPythonConsoleTutorial-SynchronousConsoleOperations">2.3.2. - Synchronous - Console Operations - </a></span></dt><dt><span class="section"><a href="ch02s03.html#QMFPythonConsoleTutorial-AsynchronousConsoleOperations">2.3.3. - Asynchronous - Console Operations - </a></span></dt><dt><span class="section"><a href="ch02s03.html#QMFPythonConsoleTutorial-DiscoveringwhatKindsofObjectsareAvailable">2.3.4. - Discovering what Kinds of Objects are Available - </a></span></dt></dl></dd></dl></dd></dl></div><div class="list-of-tables"><p><strong>List of Tables</strong></p><dl><dt>1.1. <a href="ch01.html#idm139836371507184">QMF Management - Broker Methods for Managing the Timestamp Configuration</a></dt><dt>1.2. <a href="ch01.html#idm139836371494016">C++ Broker Log Severity Levels</a></dt><dt>1.3. <a href="ch01.html#idm139836371482384">C++ Broker Log Categories</a></dt><dt>1.4. <a href="ch01.html#idm139836371469520">C++ Broker Log Statement Attributes</a></dt><dt>1.5. <a href="ch01.html#idm139836371458016">C++ Broker Log Enable/Disable RULE Format</a></dt><dt>1.6. <a href="ch01.html#idm139836371447568">C++ Broker Log Enable/Disable Settings Tables</a></dt><dt>1.7. <a href="ch01.html#idm139836371436448">C++ Broker Log Statement Visibility Determination</a></dt><dt>1.8. <a href="ch01.html#idm139836371423152">QMF Management - Broker Methods for Managing the Log Enable/Disable Settings</a></dt><dt>1.9. <a href="chap-Messaging_User_Gui de-Broker_Federation.html#tabl-Messaging_User_Guide-The_qpid_route_Utility-qpid_route_options"><span class="command">qpid-route</span> options</a></dt><dt>1.10. <a href="chap-Messaging_User_Guide-Broker_Federation.html#tabl-Messaging_User_Guide-Resilient_Connections-State_values_in_qpid_route_list_connections">State values in <span class="command">$ qpid-route list connections</span></a></dt><dt>1.11. <a href="chap-Messaging_User_Guide-Security.html#tabl-Messaging_User_Guide-ACL_Syntax-ACL_Rules_permission">ACL Rules: permission</a></dt><dt>1.12. <a href="chap-Messaging_User_Guide-Security.html#tabl-Messaging_User_Guide-ACL_Syntax-ACL_Rulesaction">ACL Rules:action</a></dt><dt>1.13. <a href="chap-Messaging_User_Guide-Security.html#tabl-Messaging_User_Guide-ACL_Syntax-ACL_Rulesobject">ACL Rules:object</a></dt><dt>1.14. <a href="chap-Messaging_User_Guide-Security.html#tabl-Messaging_User_Guide-ACL_Syntax-ACL_Rulesproperty">ACL Rules:property</a></dt><dt>1.15. <a href="chap-Messaging_Us er_Guide-Security.html#tabl-Messaging_User_Guide-ACL_Syntax-ACL_ActionObject_properties">ACL Properties Allowed for each Action and Object</a></dt><dt>1.16. <a href="chap-Messaging_User_Guide-Security.html#tabl-Messaging_User_Guide-ACL_Syntax-ACL_UsernameSubstitution">ACL User Name and Domain Name Substitution Keywords</a></dt><dt>1.17. <a href="chap-Messaging_User_Guide-Security.html#tabl-Messaging_User_Guide-ACL_Syntax-ACL_TopicExchangeMatch">Topic Exchange Wildcard Match Examples</a></dt><dt>1.18. <a href="chap-Messaging_User_Guide-Security.html#tabl-Messaging_User_Guide-Enabling_SSL_in_Clients-SSL_Client_Environment_Variables_for_C_clients">SSL Client Environment Variables for C++ clients</a></dt><dt>1.19. <a href="producer-flow-control.html#idm139836368671264">Queue Declare Method Flow Control Arguments</a></dt><dt>1.20. <a href="producer-flow-control.html#idm139836367881168">Flow Control Statistics available in Queue's QMF Class</a></dt><dt>1.21. <a href="AMQP-Compatibility.ht ml#idm139836370246480">AMQP Version Support by Qpid Release</a></dt><dt>1.22. <a href="AMQP-Compatibility.html#idm139836367476928">AMQP Version Support - alternate format</a></dt><dt>1.23. <a href="QpidInteroperabilityDocumentation-QpidInteroperabilityDocumentation.html#idm139836369278416">SASL Mechanism Support</a></dt><dt>1.24. <a href="QpidInteroperabilityDocumentation-QpidInteroperabilityDocumentation.html#idm139836367533552">SASL Custom Mechanisms</a></dt><dt>1.25. <a href="Using-message-groups.html#idm139836370913376">qpid-config options for creating message group queues</a></dt><dt>1.26. <a href="Using-message-groups.html#idm139836366005776">Queue Declare/Address Syntax Message Group Configuration Arguments</a></dt><dt>1.27. <a href="chapter-ha.html#ha-broker-options">Broker Options for High Availability Messaging Cluster</a></dt><dt>1.28. <a href="chapter-ha.html#ha-security-options">HA Security Options</a></dt><dt>2.1. <a href="ch02s02.html#idm139836370849504">XML Attribute s for QMF Properties and Statistics</a></dt><dt>2.2. <a href="ch02s02.html#idm139836366661008">QMF Datatypes</a></dt><dt>2.3. <a href="ch02s02.html#idm139836366537536">XML Schema Mapping for QMF Types</a></dt><dt>2.4. <a href="ch02s03.html#idm139836370652160">QMF Python Console Class Methods</a></dt></dl></div><div class="list-of-examples"><p><strong>List of Examples</strong></p><dl><dt>1.1. <a href="ch01.html#idm139836371501216">Enabling Message Timestamping via QMF - Python</a></dt><dt>1.2. <a href="ch01.html#idm139836371415008"> - Querying Log Settings via qpid-ctrl utility - </a></dt><dt>1.3. <a href="ch01.html#idm139836371411152"> - Setting Log Settings via qpid-ctrl utility - </a></dt><dt>1.4. <a href="Using-message-groups.html#idm139836370827232">Creating a message group queue via qpid-config</a></dt><dt>1.5. <a href="Using-message-groups.html#idm139836368576240">Creating a message group queue using address syntax (C++)</a></dt><dt>1.6. <a href="Using-message-groups.html#idm139836369801984">Overriding the default message group identifier for the broker</a></dt></dl></div></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"> </td><td align="center" width="20%"> </td><td align="right" width="40%"> <a accesskey="n" href="pr01.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%"> </td><td align="center" width="20%"> </td><td align="right" valign="top" width="40%"> Introduction</td></tr></table></div></div> - - <hr/> - - <ul id="-apache-navigation"> - <li><a href="http://www.apache.org/">Apache</a></li> - <li><a href="http://www.apache.org/licenses/">License</a></li> - <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li> - <li><a href="http://www.apache.org/foundation/thanks.html">Thanks!</a></li> - <li><a href="/security.html">Security</a></li> - <li><a href="http://www.apache.org/"><img id="-apache-feather" width="48" height="14" src="" alt="Apache"/></a></li> - </ul> - - <p id="-legal"> - Apache Qpid, Messaging built on AMQP; Copyright © 2015 - The Apache Software Foundation; Licensed under - the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache - License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton, - Proton, Apache, the Apache feather logo, and the Apache Qpid - project logo are trademarks of The Apache Software - Foundation; All other marks mentioned may be trademarks or - registered trademarks of their respective owners - </p> - </div> - </div> - </div> - </body> -</html> http://git-wip-us.apache.org/repos/asf/qpid-site/blob/a39b425b/content/releases/qpid-0.26/cpp-broker/book/pr01.html ---------------------------------------------------------------------- diff --git a/content/releases/qpid-0.26/cpp-broker/book/pr01.html b/content/releases/qpid-0.26/cpp-broker/book/pr01.html deleted file mode 100644 index 3265d95..0000000 --- a/content/releases/qpid-0.26/cpp-broker/book/pr01.html +++ /dev/null @@ -1,149 +0,0 @@ -<!DOCTYPE html> -<!-- - - - - 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. - - ---> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> - <head> - <title>Introduction - Apache Qpid™</title> - <meta http-equiv="X-UA-Compatible" content="IE=edge"/> - <meta name="viewport" content="width=device-width, initial-scale=1.0"/> - <link rel="stylesheet" href="/site.css" type="text/css" async="async"/> - <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/> - <script type="text/javascript">var _deferredFunctions = [];</script> - <script type="text/javascript" src="/deferred.js" defer="defer"></script> - <!--[if lte IE 8]> - <link rel="stylesheet" href="/ie.css" type="text/css"/> - <script type="text/javascript" src="/html5shiv.js"></script> - <![endif]--> - - <!-- Redirects for `go get` and godoc.org --> - <meta name="go-import" - content="qpid.apache.org git https://git-wip-us.apache.org/repos/asf/qpid-proton.git"/> - <meta name="go-source" - content="qpid.apache.org -https://github.com/apache/qpid-proton/blob/go1/README.md -https://github.com/apache/qpid-proton/tree/go1{/dir} -https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/> - </head> - <body> - <div id="-content"> - <div id="-top" class="panel"> - <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a> - - <a id="-search-link"><img width="22" height="16" src="" alt="Search"/></a> - - <ul id="-global-navigation"> - <li><a id="-logotype" href="/index.html">Apache Qpid<sup>™</sup></a></li> - <li><a href="/documentation.html">Documentation</a></li> - <li><a href="/download.html">Download</a></li> - <li><a href="/discussion.html">Discussion</a></li> - </ul> - </div> - - <div id="-menu" class="panel" style="display: none;"> - <div class="flex"> - <section> - <h3>Project</h3> - - <ul> - <li><a href="/overview.html">Overview</a></li> - <li><a href="/components/index.html">Components</a></li> - <li><a href="/releases/index.html">Releases</a></li> - </ul> - </section> - - <section> - <h3>Messaging APIs</h3> - - <ul> - <li><a href="/proton/index.html">Qpid Proton</a></li> - <li><a href="/components/jms/index.html">Qpid JMS</a></li> - <li><a href="/components/messaging-api/index.html">Qpid Messaging API</a></li> - </ul> - </section> - - <section> - <h3>Servers and tools</h3> - - <ul> - <li><a href="/components/java-broker/index.html">Broker for Java</a></li> - <li><a href="/components/cpp-broker/index.html">C++ broker</a></li> - <li><a href="/components/dispatch-router/index.html">Dispatch router</a></li> - </ul> - </section> - - <section> - <h3>Resources</h3> - - <ul> - <li><a href="/dashboard.html">Dashboard</a></li> - <li><a href="https://cwiki.apache.org/confluence/display/qpid/Index">Wiki</a></li> - <li><a href="/resources.html">More resources</a></li> - </ul> - </section> - </div> - </div> - - <div id="-search" class="panel" style="display: none;"> - <form action="http://www.google.com/search" method="get"> - <input type="hidden" name="sitesearch" value="qpid.apache.org"/> - <input type="text" name="q" maxlength="255" autofocus="autofocus" tabindex="1"/> - <button type="submit">Search</button> - <a href="/search.html">More ways to search</a> - </form> - </div> - - <div id="-middle" class="panel"> - <ul id="-path-navigation"><li><a href="/index.html">Home</a></li><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-0.26/index.html">Qpid 0.26</a></li><li><a href="/releases/qpid-0.26/cpp-broker/book/index.html">AMQP Messaging Broker (Implemented in C++)</a></li><li>Introduction</li></ul> - - <div id="-middle-content"> - <div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">Introduction</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="index.html">Prev</a> </td><th align="center" width="60%"> </th><td align="right" width="20%"> <a accesskey="n" href="ch01.html">Next</a></td></tr></table><hr /></div><div class="preface"><div class="titlepage"><div><div><h1 class="title"><a id="idm139836371993712"></a>Introduction</h1></div></div></div><p>Qpid provides two AMQP messaging brokers:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Implemented in C++ - high performance, low latency, and RDMA support.</p></li><li class="listitem"><p>Implemented in Java - Fully JMS compliant, runs on any Java platform.</p></li></ul></div><p>Both AMQP messaging brokers support clients in multiple - languages, as long as the messaging client and the messaging - broker use the same version of AMQP. See <a class="link" href="AMQP-Compatibility.html" title="1.9.  AMQP compatibility">AMQP Compatibility</a> to see - which messaging clients work with each broker.</p><p>This manual contains information specific to the broker that is implemented in C++.</p></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="index.html">Prev</a> </td><td align="center" width="20%"> </td><td align="right" width="40%"> <a accesskey="n" href="ch01.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">AMQP Messaging Broker (Implemented in C++) </td><td align="center" width="20%"><a accesskey="h" href="index.html">Home</a></td><td align="right" valign="top" width="40%"> Chapter 1.  - Running the AMQP Messaging Broker - </td></tr></table></div></div> - - <hr/> - - <ul id="-apache-navigation"> - <li><a href="http://www.apache.org/">Apache</a></li> - <li><a href="http://www.apache.org/licenses/">License</a></li> - <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li> - <li><a href="http://www.apache.org/foundation/thanks.html">Thanks!</a></li> - <li><a href="/security.html">Security</a></li> - <li><a href="http://www.apache.org/"><img id="-apache-feather" width="48" height="14" src="" alt="Apache"/></a></li> - </ul> - - <p id="-legal"> - Apache Qpid, Messaging built on AMQP; Copyright © 2015 - The Apache Software Foundation; Licensed under - the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache - License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton, - Proton, Apache, the Apache feather logo, and the Apache Qpid - project logo are trademarks of The Apache Software - Foundation; All other marks mentioned may be trademarks or - registered trademarks of their respective owners - </p> - </div> - </div> - </div> - </body> -</html> http://git-wip-us.apache.org/repos/asf/qpid-site/blob/a39b425b/content/releases/qpid-0.26/cpp-broker/book/producer-flow-control.html ---------------------------------------------------------------------- diff --git a/content/releases/qpid-0.26/cpp-broker/book/producer-flow-control.html b/content/releases/qpid-0.26/cpp-broker/book/producer-flow-control.html deleted file mode 100644 index 41e3ddf..0000000 --- a/content/releases/qpid-0.26/cpp-broker/book/producer-flow-control.html +++ /dev/null @@ -1,334 +0,0 @@ -<!DOCTYPE html> -<!-- - - - - 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. - - ---> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> - <head> - <title>producer-flow-control.html - Apache Qpid™</title> - <meta http-equiv="X-UA-Compatible" content="IE=edge"/> - <meta name="viewport" content="width=device-width, initial-scale=1.0"/> - <link rel="stylesheet" href="/site.css" type="text/css" async="async"/> - <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/> - <script type="text/javascript">var _deferredFunctions = [];</script> - <script type="text/javascript" src="/deferred.js" defer="defer"></script> - <!--[if lte IE 8]> - <link rel="stylesheet" href="/ie.css" type="text/css"/> - <script type="text/javascript" src="/html5shiv.js"></script> - <![endif]--> - - <!-- Redirects for `go get` and godoc.org --> - <meta name="go-import" - content="qpid.apache.org git https://git-wip-us.apache.org/repos/asf/qpid-proton.git"/> - <meta name="go-source" - content="qpid.apache.org -https://github.com/apache/qpid-proton/blob/go1/README.md -https://github.com/apache/qpid-proton/tree/go1{/dir} -https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/> - </head> - <body> - <div id="-content"> - <div id="-top" class="panel"> - <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a> - - <a id="-search-link"><img width="22" height="16" src="" alt="Search"/></a> - - <ul id="-global-navigation"> - <li><a id="-logotype" href="/index.html">Apache Qpid<sup>™</sup></a></li> - <li><a href="/documentation.html">Documentation</a></li> - <li><a href="/download.html">Download</a></li> - <li><a href="/discussion.html">Discussion</a></li> - </ul> - </div> - - <div id="-menu" class="panel" style="display: none;"> - <div class="flex"> - <section> - <h3>Project</h3> - - <ul> - <li><a href="/overview.html">Overview</a></li> - <li><a href="/components/index.html">Components</a></li> - <li><a href="/releases/index.html">Releases</a></li> - </ul> - </section> - - <section> - <h3>Messaging APIs</h3> - - <ul> - <li><a href="/proton/index.html">Qpid Proton</a></li> - <li><a href="/components/jms/index.html">Qpid JMS</a></li> - <li><a href="/components/messaging-api/index.html">Qpid Messaging API</a></li> - </ul> - </section> - - <section> - <h3>Servers and tools</h3> - - <ul> - <li><a href="/components/java-broker/index.html">Broker for Java</a></li> - <li><a href="/components/cpp-broker/index.html">C++ broker</a></li> - <li><a href="/components/dispatch-router/index.html">Dispatch router</a></li> - </ul> - </section> - - <section> - <h3>Resources</h3> - - <ul> - <li><a href="/dashboard.html">Dashboard</a></li> - <li><a href="https://cwiki.apache.org/confluence/display/qpid/Index">Wiki</a></li> - <li><a href="/resources.html">More resources</a></li> - </ul> - </section> - </div> - </div> - - <div id="-search" class="panel" style="display: none;"> - <form action="http://www.google.com/search" method="get"> - <input type="hidden" name="sitesearch" value="qpid.apache.org"/> - <input type="text" name="q" maxlength="255" autofocus="autofocus" tabindex="1"/> - <button type="submit">Search</button> - <a href="/search.html">More ways to search</a> - </form> - </div> - - <div id="-middle" class="panel"> - <ul id="-path-navigation"><li><a href="/index.html">Home</a></li><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-0.26/index.html">Qpid 0.26</a></li><li><a href="/releases/qpid-0.26/cpp-broker/book/index.html">AMQP Messaging Broker (Implemented in C++)</a></li><li>producer-flow-control.html</li></ul> - - <div id="-middle-content"> - <div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">1.8.  - Producer Flow Control - </th></tr><tr><td align="left" width="20%"><a accesskey="p" href="queue-state-replication.html">Prev</a> </td><th align="center" width="60%">Chapter 1.  - Running the AMQP Messaging Broker - </th><td align="right" width="20%"> <a accesskey="n" href="AMQP-Compatibility.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="producer-flow-control"></a>1.8.  - Producer Flow Control - </h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="producerflowcontrol-Overview"></a>1.8.1.  - Overview - </h3></div></div></div><p> - As of release 0.10, the C++ broker supports the use of flow control to - throttle back message producers that are at risk of overflowing a - destination queue. - </p><p> - Each queue in the C++ broker has two threshold values associated with it: - </p><p> - Flow Stop Threshold: this is the level of queue resource - utilization above which flow control will be enabled. Once this - threshold is crossed, the queue is considered in danger of overflow. - </p><p> - Flow Resume Threshold - this is the level of queue resource utilization - below which flow control will be disabled. Once this threshold is - crossed, the queue is no longer considered in danger of overflow. - </p><p> - In the above description, queue resource utilization may be - defined as the total count of messages currently enqueued, or the total - sum of all message content in bytes. - </p><p> - The value for a queue's Flow Stop Threshold must be greater than or - equal to the value of the queue's Flow Resume Threshold. - </p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="producerflowcontrol-QueueThresholdsExample"></a>1.8.1.1.  - Example - </h4></div></div></div><p> - Let's consider a queue with a maximum limit set on the total number of - messages that may be enqueued to that queue. Assume this maximum - message limit is 1000 messages. Assume also that the user configures a - Flow Stop Threshold of 900 messages, and a Flow Resume Threshold of 500 - messages. Then the following holds: - </p><p> - The queue's initial flow control state is "OFF". - </p><p> - While the total number of enqueued messages is less than or equal to - 900, the queue's flow control state remains "OFF". - </p><p> - When the total number of enqueued messages is greater than 900, the - queue's flow control state transitions to "ON". - </p><p> - When the queue's flow control state is "ON", it remains "ON" until the - total number of enqueued messages is less than 500. At that point, the queue's - flow control state transitions to "OFF". - </p><p> - A similar example using total enqueued content bytes as the threshold - units are permitted. - </p></div><p> - Thresholds may be set using both total message counts and total byte - counts. In this case, the following rules apply: - </p><p> - 1) Flow control is "ON" when either stop threshold value is crossed. - </p><p> - 2) Flow control remains "ON" until both resume thresholds are satisfied. - </p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="producerflowcontro-MultiThresholdExample"></a>1.8.1.2.  - Example - </h4></div></div></div><p> - Let's consider a queue with a maximum size limit of 10K bytes, and 5000 - messages. A user may assign a Flow Stop Threshold based on a total - message count of 4000 messages. They may also assigne a Flow Stop - Threshold of 8K bytes. The queue's flow control state transitions to - "ON" if either threshold is crossed: (total-msgs greater-than 4000 OR total-bytes - greater-than 8K). - </p><p> - Assume the user has assigned Flow Resume threshold's of 3000 messages and - 6K bytes. Then the queue's flow control will remain active until both - thresholds are satified: (total-msg less-than 3000 AND total-bytes less-than 6K). - </p></div><p> - The Broker enforces flow control by delaying the completion of the - Message.Transfer command that causes a message to be delivered to a queue - with active flow control. The completion of the Message.Transfer command - is held off until flow control state transitions to "OFF" for all queues - that are a destination for that command. - </p><p> - A message producing client is permitted to have a finite number of - commands pending completion. When the total number of these outstanding - commands reaches the limit, the client must not issue further commands - until one or more of the outstanding commands have completed. This - window of outstanding commands is considered the sender's "capacity". - This allows any given producer to have a "capacity's" worth of messages - blocked due to flow control before the sender must stop sending further - messages. - </p><p> - This capacity window must be considered when determining a suitable - flow stop threshold for a given queue, as a producer may send its - capacity worth of messages _after_ a queue has reached the flow stop - threshold. Therefore, a flow stop threshould should be set such that - the queue can accomodate more messages without overflowing. - </p><p> - For example, assume two clients, C1 and C2, are producing messages to - one particular destination queue. Assume client C1 has a configured - capacity of 50 messages, and client C2's capacity is 15 messages. In - this example, assume C1 and C2 are the only clients queuing messages to - a given queue. If this queue has a Flow Stop Threshold of 100 - messages, then, worst-case, the queue may receive up to 165 messages - before clients C1 and C2 are blocked from sending further messages. - This is due to the fact that the queue will enable flow control on - receipt of its 101'st message - preventing the completion of the - Message.Transfer command that carried the 101'st message. However, C1 - and C2 are allowed to have a total of 65 (50 for C1 and 15 for C2) - messages pending completion of Message.Transfer before they will stop - producing messages. Thus, up to 65 messages may be enqueued beyond the - flow stop threshold before the producers will be blocked. - </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="producerflowcontrol-UserInterface"></a>1.8.2.  - User Interface - </h3></div></div></div><p> - By default, the C++ broker assigns a queue's flow stop and flow resume - thresholds when the queue is created. The C++ broker also allows the - user to manually specify the flow control thresholds on a per queue - basis. - </p><p> - However, queues that have been configured with a Limit Policy of type - RING or RING-STRICT do NOT have queue flow thresholds enabled by - default. The nature of a RING queue defines its behavior when its - capacity is reach: replace the oldest message. - </p><p> - The flow control state of a queue can be determined by the "flowState" - boolean in the queue's QMF management object. The queue's management - object also contains a counter that increments each time flow control - becomes active for the queue. - </p><p> - The broker applies a threshold ratio to compute a queue's default flow - control configuration. These thresholds are expressed as a percentage - of a queue's maximum capacity. There is one value for determining the - stop threshold, and another for determining the resume threshold. The - user may configure these percentages using the following broker - configuration options: - </p><pre class="programlisting"> - --default-flow-stop-threshold ("Queue capacity level at which flow control is activated.") - --default-flow-resume-threshold ("Queue capacity level at which flow control is de-activated.") - </pre><p> - For example: - </p><pre class="programlisting"> - qpidd --default-flow-stop-threshold=90 --default-flow-resume-threshold=75 - </pre><p> - Sets the default flow stop threshold to 90% of a queue's maximum - capacity and the flow resume threshold to 75% of the maximum capacity. - If a queue is created with a default-queue-limit of 10000 bytes, then - the default flow stop threshold would be 90% of 10000 = 9000 bytes and - the flow resume threshold would be 75% of 10000 = 7500. The same - computation is performed should a queue be created with a maximum size - expressed as a message count instead of a byte count. - </p><p> - If not overridden by the user, the value of the - default-flow-stop-threshold is 80% and the value of the - default-flow-resume-threshold is 70%. - </p><p> - The user may disable default queue flow control broker-wide by - specifying the value 0 for both of these configuration options. Note - that flow control may still be applied manually on a per-queue basis in - this case. - </p><p> - The user may manually set the flow thresholds when creating a queue. - The following options may be provided when adding a queue using the - <span class="command"><strong>qpid-config</strong></span> command line tool: - </p><pre class="programlisting"> - --flow-stop-size=<em class="replaceable"><code>N</code></em> Sets the queue's flow stop threshold to <em class="replaceable"><code>N</code></em> total bytes. - --flow-resume-size=<em class="replaceable"><code>N</code></em> Sets the queue's flow resume threshold to <em class="replaceable"><code>N</code></em> total bytes. - --flow-stop-count=<em class="replaceable"><code>N</code></em> Sets the queue's flow stop threshold to <em class="replaceable"><code>N</code></em> total messages. - --flow-resume-count=<em class="replaceable"><code>N</code></em> Sets the queue's flow resume threshold to <em class="replaceable"><code>N</code></em> total messages. - </pre><p> - Flow thresholds may also be specified in the - <span class="command"><strong>queue.declare</strong></span> method, via the - <span class="command"><strong>arguments</strong></span> parameter map. The following keys can be - provided in the arguments map for setting flow thresholds: - </p><div class="table"><a id="idm139836368671264"></a><p class="title"><strong>Table 1.19. Queue Declare Method Flow Control Arguments</strong></p><div class="table-contents"><table border="1" summary="Queue Declare Method Flow Control Arguments"><colgroup><col /><col /></colgroup><thead><tr><th>Key</th><th>Value</th></tr></thead><tbody><tr><td>qpid.flow_stop_size</td><td>integer - queue's flow stop threshold value in bytes</td></tr><tr><td>qpid.flow_resume_size</td><td>integer - queue's flow resume threshold value in bytes</td></tr><tr><td>qpid.flow_stop_count</td><td>integer - queue's flow stop threshold value as a message count</td></tr><tr><td>qpid.flow_resume_count</td><td>integer - queue's flow resume threshold value as a message count</td></tr></tbody></table></div></div><br class="table-break" /><p> - The user may disable flow control on a per queue basis by setting - the flow-stop-size and flow-stop-count to zero for the queue. - </p><p> - The current state of flow control for a given queue can be - determined by the "flowStopped" statistic. This statistic is - available in the queue's QMF management object. The value of - flowStopped is True when the queue's capacity has exceeded the - flow stop threshold. The value of flowStopped is False when the - queue is no longer blocking due to flow control. - </p><p> - A queue will also track the number of times flow control has been - activated. The "flowStoppedCount" statistic is incremented each time - the queue's capacity exceeds a flow stop threshold. This statistic can - be used to monitor the activity of flow control for any given queue - over time. - </p><div class="table"><a id="idm139836367881168"></a><p class="title"><strong>Table 1.20. Flow Control Statistics available in Queue's QMF Class</strong></p><div class="table-contents"><table border="1" summary="Flow Control Statistics available in Queue's QMF Class"><colgroup><col /><col /><col /></colgroup><thead><tr><th>Statistic Name</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>flowStopped</td><td>Boolean</td><td>If true, producers are blocked by flow control.</td></tr><tr><td>flowStoppedCount</td><td>count32</td><td>Number of times flow control was activated for this queue</td></tr></tbody></table></div></div><br class="table-break" /></div></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="queue-state-replication.html">Prev</a> </td><td align="center" width="20%"><a accesskey="u" href="ch01.html">Up</a></td><td align="right" width="40%"> <a acc esskey="n" href="AMQP-Compatibility.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">1.7.  - Queue State Replication -  </td><td align="center" width="20%"><a accesskey="h" href="index.html">Home</a></td><td align="right" valign="top" width="40%"> 1.9.  - AMQP compatibility - </td></tr></table></div></div> - - <hr/> - - <ul id="-apache-navigation"> - <li><a href="http://www.apache.org/">Apache</a></li> - <li><a href="http://www.apache.org/licenses/">License</a></li> - <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li> - <li><a href="http://www.apache.org/foundation/thanks.html">Thanks!</a></li> - <li><a href="/security.html">Security</a></li> - <li><a href="http://www.apache.org/"><img id="-apache-feather" width="48" height="14" src="" alt="Apache"/></a></li> - </ul> - - <p id="-legal"> - Apache Qpid, Messaging built on AMQP; Copyright © 2015 - The Apache Software Foundation; Licensed under - the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache - License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton, - Proton, Apache, the Apache feather logo, and the Apache Qpid - project logo are trademarks of The Apache Software - Foundation; All other marks mentioned may be trademarks or - registered trademarks of their respective owners - </p> - </div> - </div> - </div> - </body> -</html> http://git-wip-us.apache.org/repos/asf/qpid-site/blob/a39b425b/content/releases/qpid-0.26/cpp-broker/book/queue-state-replication.html ---------------------------------------------------------------------- diff --git a/content/releases/qpid-0.26/cpp-broker/book/queue-state-replication.html b/content/releases/qpid-0.26/cpp-broker/book/queue-state-replication.html deleted file mode 100644 index 5a2bfae..0000000 --- a/content/releases/qpid-0.26/cpp-broker/book/queue-state-replication.html +++ /dev/null @@ -1,372 +0,0 @@ -<!DOCTYPE html> -<!-- - - - - 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. - - ---> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> - <head> - <title>queue-state-replication.html - Apache Qpid™</title> - <meta http-equiv="X-UA-Compatible" content="IE=edge"/> - <meta name="viewport" content="width=device-width, initial-scale=1.0"/> - <link rel="stylesheet" href="/site.css" type="text/css" async="async"/> - <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/> - <script type="text/javascript">var _deferredFunctions = [];</script> - <script type="text/javascript" src="/deferred.js" defer="defer"></script> - <!--[if lte IE 8]> - <link rel="stylesheet" href="/ie.css" type="text/css"/> - <script type="text/javascript" src="/html5shiv.js"></script> - <![endif]--> - - <!-- Redirects for `go get` and godoc.org --> - <meta name="go-import" - content="qpid.apache.org git https://git-wip-us.apache.org/repos/asf/qpid-proton.git"/> - <meta name="go-source" - content="qpid.apache.org -https://github.com/apache/qpid-proton/blob/go1/README.md -https://github.com/apache/qpid-proton/tree/go1{/dir} -https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/> - </head> - <body> - <div id="-content"> - <div id="-top" class="panel"> - <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a> - - <a id="-search-link"><img width="22" height="16" src="" alt="Search"/></a> - - <ul id="-global-navigation"> - <li><a id="-logotype" href="/index.html">Apache Qpid<sup>™</sup></a></li> - <li><a href="/documentation.html">Documentation</a></li> - <li><a href="/download.html">Download</a></li> - <li><a href="/discussion.html">Discussion</a></li> - </ul> - </div> - - <div id="-menu" class="panel" style="display: none;"> - <div class="flex"> - <section> - <h3>Project</h3> - - <ul> - <li><a href="/overview.html">Overview</a></li> - <li><a href="/components/index.html">Components</a></li> - <li><a href="/releases/index.html">Releases</a></li> - </ul> - </section> - - <section> - <h3>Messaging APIs</h3> - - <ul> - <li><a href="/proton/index.html">Qpid Proton</a></li> - <li><a href="/components/jms/index.html">Qpid JMS</a></li> - <li><a href="/components/messaging-api/index.html">Qpid Messaging API</a></li> - </ul> - </section> - - <section> - <h3>Servers and tools</h3> - - <ul> - <li><a href="/components/java-broker/index.html">Broker for Java</a></li> - <li><a href="/components/cpp-broker/index.html">C++ broker</a></li> - <li><a href="/components/dispatch-router/index.html">Dispatch router</a></li> - </ul> - </section> - - <section> - <h3>Resources</h3> - - <ul> - <li><a href="/dashboard.html">Dashboard</a></li> - <li><a href="https://cwiki.apache.org/confluence/display/qpid/Index">Wiki</a></li> - <li><a href="/resources.html">More resources</a></li> - </ul> - </section> - </div> - </div> - - <div id="-search" class="panel" style="display: none;"> - <form action="http://www.google.com/search" method="get"> - <input type="hidden" name="sitesearch" value="qpid.apache.org"/> - <input type="text" name="q" maxlength="255" autofocus="autofocus" tabindex="1"/> - <button type="submit">Search</button> - <a href="/search.html">More ways to search</a> - </form> - </div> - - <div id="-middle" class="panel"> - <ul id="-path-navigation"><li><a href="/index.html">Home</a></li><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-0.26/index.html">Qpid 0.26</a></li><li><a href="/releases/qpid-0.26/cpp-broker/book/index.html">AMQP Messaging Broker (Implemented in C++)</a></li><li>queue-state-replication.html</li></ul> - - <div id="-middle-content"> - <div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">1.7.  - Queue State Replication - </th></tr><tr><td align="left" width="20%"><a accesskey="p" href="ch01s06.html">Prev</a> </td><th align="center" width="60%">Chapter 1.  - Running the AMQP Messaging Broker - </th><td align="right" width="20%"> <a accesskey="n" href="producer-flow-control.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="queue-state-replication"></a>1.7.  - Queue State Replication - </h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="queuestatereplication-AsynchronousReplicationofQueueState"></a>1.7.1.  - Asynchronous - Replication of Queue State - </h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="queuestatereplication-Overview"></a>1.7.1.1.  - Overview - </h4></div></div></div><p> - There is support in qpidd for selective asynchronous replication - of queue state. This is achieved by: - </p><p> - (a) enabling event generation for the queues in question - </p><p> - (b) loading a plugin on the 'source' broker to encode those - events as messages on a replication queue (this plugin is - called - replicating_listener.so) - </p><p> - (c) loading a custom exchange plugin on the 'backup' broker (this - plugin is called replication_exchange.so) - </p><p> - (d) creating an instance of the replication exchange type on the - backup broker - </p><p> - (e) establishing a federation bridge between the replication - queue on the source broker and the replication exchange on the - backup broker - </p><p> - The bridge established between the source and backup brokers for - replication (step (e) above) should have acknowledgements turned - on (this may be done through the --ack N option to qpid-route). - This ensures that replication events are not lost if the bridge - fails. - </p><p> - The replication protocol will also eliminate duplicates to ensure - reliably replicated state. Note though that only one bridge per - replication exchange is supported. If clients try to publish to - the replication exchange or if more than a the single required - bridge from the replication queue on the source broker is - created, replication will be corrupted. (Access control may be - used to restrict access and help prevent this). - </p><p> - The replicating event listener plugin (step (b) above) has the - following options: - </p><pre class="programlisting"> -Queue Replication Options: - --replication-queue QUEUE Queue on which events for - other queues are recorded - --replication-listener-name NAME (replicator) name by which to register the - replicating event listener - --create-replication-queue if set, the replication will - be created if it does not - exist - </pre><p> - The name of the queue is required. It can either point to a - durable queue whose definition has been previously recorded, or - the --create-replication-queue option can be specified in which - case the queue will be created a simple non-durable queue if it - does not already exist. - </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="queuestatereplication-UsewithClustering"></a>1.7.1.2.  - Use with - Clustering - </h4></div></div></div><p> - The source and/or backup brokers may also be clustered brokers. - In this case the federated bridge will be re-established between - replicas should either of the originally connected nodes fail. - There are however the following limitations at present: - </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>The backup site does not process membership updates after it - establishes the first connection. In order for newly added - members on a source cluster to be eligible as failover targets, - the bridge must be recreated after those members have been added - to the source cluster. - </p></li></ul></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>New members added to a backup cluster will not receive - information about currently established bridges. Therefore in - order to allow the bridge to be re-established from these members - in the event of failure of older nodes, the bridge must be - recreated after the new members have joined. - </p></li></ul></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Only a single URL can be passed to create the initial link - from backup site to the primary site. this means that at the time - of creating the initial connection the initial node in the - primary site to which the connection is made needs to be running. - Once connected the backup site will receive a membership update - of all the nodes in the primary site, and if the initial - connection node in the primary fails, the link will be - re-established on the next node that was started (time) on the - primary site. - </p></li></ul></div><p> - Due to the acknowledged transfer of events over the bridge (see - note above) manual recreation of the bridge and automatic - re-establishment of te bridge after connection failure (including - failover where either or both ends are clustered brokers) will - not result in event loss. - </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="queuestatereplication-OperationsonBackupQueues"></a>1.7.1.3.  - Operations - on Backup Queues - </h4></div></div></div><p> - When replicating the state of a queue to a backup broker it is - important to recognise that any other operations performed - directly on the backup queue may break the replication. - </p><p> - If the backup queue is to be an active (i.e. accessed by clients - while replication is on) only enqueues should be selected - for - replication. In this mode, any message enqueued on the source - brokers copy of the queue will also be enqueued on the backup - brokers copy. However not attempt will be made to remove messages - from the backup queue in response to removal of messages from the - source queue. - </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="queuestatereplication-SelectingQueuesforReplication"></a>1.7.1.4.  - Selecting - Queues for Replication - </h4></div></div></div><p> - Queues are selected for replication by specifying the types of - events they should generate (it is from these events that the - replicating plugin constructs messages which are then pulled and - processed by the backup site). This is done through options - passed to the initial queue-declare command that creates the - queue and may be done either through qpid-config or similar - tools, or by the application. - </p><p> - With qpid-config, the --generate-queue-events options is used: - </p><pre class="programlisting"> - --generate-queue-events N - If set to 1, every enqueue will generate an event that can be processed by - registered listeners (e.g. for replication). If set to 2, events will be - generated for enqueues and dequeues - </pre><p> - From an application, the arguments field of the queue-declare - AMQP command is used to convey this information. An entry should - be added to the map with key 'qpid.queue_event_generation' and an - integer value of 1 (to replicate only enqueue events) or 2 (to - replicate both enqueue and dequeue events). - </p><p> - Applications written using the c++ client API may fine the - qpid::client::QueueOptions class convenient. This has a - enableQueueEvents() method on it that can be used to set the - option (the instance of QueueOptions is then passed as the value - of the arguments field in the queue-declare command. The boolean - option to that method should be set to true if only enequeue - events should be replicated; by default it is false meaning that - both enqueues and dequeues will be replicated. E.g. - </p><pre class="programlisting"> - QueueOptions options; - options.enableQueueEvents(false); - session.queueDeclare(arg::queue="my-queue", arg::arguments=options); - </pre></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="queuestatereplication-Example"></a>1.7.1.5.  - Example - </h4></div></div></div><p> - Lets assume we will run the primary broker on host1 and the - backup on host2, have installed qpidd on both and have the - replicating_listener and replication_exchange plugins in qpidd's - module directory(*1). - </p><p> - On host1 we start the source broker and specifcy that a queue - called 'replication' should be used for storing the events until - consumed by the backup. We also request that this queue be - created (as transient) if not already specified: - </p><pre class="programlisting"> - qpidd --replication-queue replication-queue --create-replication-queue true --log-enable info+ - </pre><p> - On host2 we start up the backup broker ensuring that the - replication exchange module is loaded: - </p><pre class="programlisting"> - qpidd - </pre><p> - We can then create the instance of that replication exchange that - we will use to process the events: - </p><pre class="programlisting"> - qpid-config -a host2 add exchange replication replication-exchange - </pre><p> - If this fails with the message "Exchange type not implemented: - replication", it means the replication exchange module was - not - loaded. Check that the module is installed on your system and if - necessary provide the full path to the library. - </p><p> - We then connect the replication queue on the source broker with - the replication exchange on the backup broker using the - qpid-route command: - </p><pre class="programlisting"> - qpid-route --ack 50 queue add host2 host1 replication-exchange replication-queue -</pre><p> - The example above configures the bridge to acknowledge messages - in batches of 50. - </p><p> - Now create two queues (on both source and backup brokers), one - replicating both enqueues and dequeues (queue-a) and the - other - replicating only dequeues (queue-b): - </p><pre class="programlisting"> - qpid-config -a host1 add queue queue-a --generate-queue-events 2 - qpid-config -a host1 add queue queue-b --generate-queue-events 1 - - qpid-config -a host2 add queue queue-a - qpid-config -a host2 add queue queue-b - </pre><p> - We are now ready to use the queues and see the replication. - </p><p> - Any message enqueued on queue-a will be replicated to the backup - broker. When the message is acknowledged by a client connected to - host1 (and thus dequeued), that message will be removed from the - copy of the queue on host2. The state of queue-a on host2 will - thus mirror that of the equivalent queue on host1, albeit with a - small lag. (Note - however that we must not have clients connected to host2 publish - to-or consume from- queue-a or the state will fail to replicate - correctly due to conflicts). - </p><p> - Any message enqueued on queue-b on host1 will also be enqueued on - the equivalent queue on host2. However the acknowledgement and - consequent dequeuing of messages from queue-b on host1 will have - no effect on the state of queue-b on host2. - </p><p> - (*1) If not the paths in the above may need to be modified. E.g. - if using modules built from a qpid svn checkout, the following - would be added to the command line used to start qpidd on host1: - </p><pre class="programlisting"> - --load-module <path-to-qpid-dir>/src/.libs/replicating_listener.so - </pre><p> - and the following for the equivalent command line on host2: - </p><pre class="programlisting"> - --load-module <path-to-qpid-dir>/src/.libs/replication_exchange.so - </pre></div></div></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="ch01s06.html">Prev</a> </td><td align="center" width="20%"><a accesskey="u" href="ch01.html">Up</a></td><td align="right" width="40%"> <a accesskey="n" href="producer-flow-control.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">1.6. LVQ - Last Value Queue </td><td align="center" width="20%"><a accesskey="h" href="index.html">Home</a></td><td align="right" valign="top" width="40%"> 1.8.  - Producer Flow Control - </td></tr></table></div></div> - - <hr/> - - <ul id="-apache-navigation"> - <li><a href="http://www.apache.org/">Apache</a></li> - <li><a href="http://www.apache.org/licenses/">License</a></li> - <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li> - <li><a href="http://www.apache.org/foundation/thanks.html">Thanks!</a></li> - <li><a href="/security.html">Security</a></li> - <li><a href="http://www.apache.org/"><img id="-apache-feather" width="48" height="14" src="" alt="Apache"/></a></li> - </ul> - - <p id="-legal"> - Apache Qpid, Messaging built on AMQP; Copyright © 2015 - The Apache Software Foundation; Licensed under - the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache - License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton, - Proton, Apache, the Apache feather logo, and the Apache Qpid - project logo are trademarks of The Apache Software - Foundation; All other marks mentioned may be trademarks or - registered trademarks of their respective owners - </p> - </div> - </div> - </div> - </body> -</html> http://git-wip-us.apache.org/repos/asf/qpid-site/blob/a39b425b/content/releases/qpid-0.26/cpp-broker/cpp-broker-book.pdf ---------------------------------------------------------------------- diff --git a/content/releases/qpid-0.26/cpp-broker/cpp-broker-book.pdf b/content/releases/qpid-0.26/cpp-broker/cpp-broker-book.pdf deleted file mode 100644 index b9c5bf1..0000000 Binary files a/content/releases/qpid-0.26/cpp-broker/cpp-broker-book.pdf and /dev/null differ --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org