You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2012/08/12 21:19:53 UTC
svn commit: r1372183 [2/19] - in /qpid/site/docs/books/trunk_new: ./
AMQP-Messaging-Broker-CPP-Book/ AMQP-Messaging-Broker-CPP-Book/html/
AMQP-Messaging-Broker-CPP-Book/html/css/
AMQP-Messaging-Broker-CPP-Book/html/images/ AMQP-Messaging-Broker-CPP-Boo...
Added: qpid/site/docs/books/trunk_new/AMQP-Messaging-Broker-CPP-Book/html/ch01.html
URL: http://svn.apache.org/viewvc/qpid/site/docs/books/trunk_new/AMQP-Messaging-Broker-CPP-Book/html/ch01.html?rev=1372183&view=auto
==============================================================================
--- qpid/site/docs/books/trunk_new/AMQP-Messaging-Broker-CPP-Book/html/ch01.html (added)
+++ qpid/site/docs/books/trunk_new/AMQP-Messaging-Broker-CPP-Book/html/ch01.html Sun Aug 12 19:19:49 2012
@@ -0,0 +1,335 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter 1. Running the AMQP Messaging Broker</title><link rel="stylesheet" href="css/style.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.73.2"><link rel="start" href="index.html" title="AMQP Messaging Broker (Implemented in C++)"><link rel="up" href="index.html" title="AMQP Messaging Broker (Implemented in C++)"><link rel="prev" href="pr01.html" title="Introduction"><link rel="next" href="ch01s02.html" title="1.2. Cheat Sheet for configuring Queue Options"></head><body><div class="container" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><DIV class="header"><DIV class="logo"><H1>Apache Qpidâ¢</H1><H2>Open Source AMQP Messaging</H2></DIV></DIV><DIV class="menu_box"><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Apache Qpid</H3><UL><LI><A href="http://qpid.apache.org/index.html">Home</A></LI><LI><A h
ref="http://qpid.apache.org/download.html">Download</A></LI><LI><A href="http://qpid.apache.org/getting_started.html">Getting Started</A></LI><LI><A href="http://www.apache.org/licenses/">License</A></LI><LI><A href="https://cwiki.apache.org/qpid/faq.html">FAQ</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Documentation</H3><UL><LI><A href="http://qpid.apache.org/documentation.html#doc-release">0.14 Release</A></LI><LI><A href="http://qpid.apache.org/documentation.html#doc-trunk">Trunk</A></LI><LI><A href="http://qpid.apache.org/documentation.html#doc-archives">Archive</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Community</H3><UL><LI><A href="http://qpid.apache.org/getting_involved.html">Getting Involved</A></LI><LI><A href="http://qpid.apache.org/source_repository.html">Source Repository</A></LI><LI><A href="http://qpid.apache.org/ma
iling_lists.html">Mailing Lists</A></LI><LI><A href="https://cwiki.apache.org/qpid/">Wiki</A></LI><LI><A href="https://issues.apache.org/jira/browse/qpid">Issue Reporting</A></LI><LI><A href="http://qpid.apache.org/people.html">People</A></LI><LI><A href="http://qpid.apache.org/acknowledgements.html">Acknowledgements</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Developers</H3><UL><LI><A href="https://cwiki.apache.org/qpid/building.html">Building Qpid</A></LI><LI><A href="https://cwiki.apache.org/qpid/developer-pages.html">Developer Pages</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>About AMQP</H3><UL><LI><A href="http://qpid.apache.org/amqp.html">What is AMQP?</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>About Apache</H3><UL><LI><A href="http://www.apache.org">Ho
me</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="http://www.apache.org/security/">Security</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV></DIV><div class="main_text_area"><div class="main_text_area_top"></div><div class="main_text_area_body"><DIV class="breadcrumbs"><span class="breadcrumb-link"><a href="index.html">AMQP Messaging Broker (Implemented in C++)</a></span> > <span class="breadcrumb-node">
+ Running the AMQP Messaging Broker
+ </span></DIV><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="id2493045"></a>Chapter 1.Â
+ Running the AMQP Messaging Broker
+ </h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><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></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></dd><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-Security-Encryption_using_SSL">1.5.3. 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="chap-Messaging_User_Guide-Active_Active_Cluster.html">1.8. Active-active Messaging Clusters</a></span></dt><dd><dl><dt><span class="section"><a href="chap-Messaging_User_Guide-Active_Active_Cluster.html#sect-Messaging_User_Guide-High_Availability_Messaging_Clusters-Starting_a_Broker_in_a_Cluster">1.8.1. Starting a Broker in a Cluster</a></span></dt><dt><span class="section"><a href="chap-Messaging_User_Guide-Active_Active_Cluster.html#sect-Messaging_User_Guide-High_Availability_Messaging_Clusters-qpid_cluster">1.8.2. qpid-cluster</a></span></dt><dt><span class="section"><a href="chap-Messaging_User_Guide-Active_Active_Cluster.html#sect-Messaging_User_Guide-High_Availability_Messaging_Clusters-Failover_in_Clients">1.8.3. Failover in Clients</a></span></dt><dt><span class="section"><a href="chap-Messaging_User_Guide-Active_Active_Cluster.html#sect-Messaging_User_Guide-High_Availability_Messaging_Clusters-Error_ha
ndling_in_Clusters">1.8.4. Error handling in Clusters</a></span></dt><dt><span class="section"><a href="chap-Messaging_User_Guide-Active_Active_Cluster.html#sect-Messaging_User_Guide-High_Availability_Messaging_Clusters-Persistence_in_High_Availability_Message_Clusters">1.8.5. Persistence in High Availability Message Clusters</a></span></dt></dl></dd><dt><span class="section"><a href="producer-flow-control.html">1.9.
+ Producer Flow Control
+ </a></span></dt><dd><dl><dt><span class="section"><a href="producer-flow-control.html#producerflowcontrol-Overview">1.9.1.
+ Overview
+ </a></span></dt><dt><span class="section"><a href="producer-flow-control.html#producerflowcontrol-UserInterface">1.9.2.
+ User Interface
+ </a></span></dt></dl></dd><dt><span class="section"><a href="AMQP-Compatibility.html">1.10.
+ AMQP compatibility
+ </a></span></dt><dd><dl><dt><span class="section"><a href="AMQP-Compatibility.html#AMQPcompatibility-AMQPCompatibilityofQpidreleases-3A">1.10.1.
+ AMQP
+ Compatibility of Qpid releases:
+ </a></span></dt><dt><span class="section"><a href="AMQP-Compatibility.html#AMQPcompatibility-InteroptablebyAMQPspecificationversion">1.10.2.
+ Interop
+ table by AMQP specification version
+ </a></span></dt></dl></dd><dt><span class="section"><a href="QpidInteroperabilityDocumentation-QpidInteroperabilityDocumentation.html">1.11. Qpid Interoperability Documentation</a></span></dt><dd><dl><dt><span class="section"><a href="QpidInteroperabilityDocumentation-QpidInteroperabilityDocumentation.html#QpidInteroperabilityDocumentation-SASL">1.11.1.
+ SASL
+ </a></span></dt></dl></dd><dt><span class="section"><a href="Using-message-groups.html">1.12.
+ Using Message Groups
+ </a></span></dt><dd><dl><dt><span class="section"><a href="Using-message-groups.html#usingmessagegroups-Overview">1.12.1.
+ Overview
+ </a></span></dt><dt><span class="section"><a href="Using-message-groups.html#usingmessagegroups-GroupingMessages">1.12.2.
+ Grouping Messages
+ </a></span></dt><dt><span class="section"><a href="Using-message-groups.html#usingmessagegroups-BrokerRole">1.12.3.
+ The Role of the Broker
+ </a></span></dt><dt><span class="section"><a href="Using-message-groups.html#usingmessagegroups-ConsumerGuide">1.12.4.
+ Well Behaved Consumers
+ </a></span></dt><dt><span class="section"><a href="Using-message-groups.html#usingmessagegroups-BrokerConfig">1.12.5.
+ Broker Configuration
+ </a></span></dt></dl></dd><dt><span class="section"><a href="chap-Messaging_User_Guide-Active_Passive_Cluster.html">1.13. Active-passive Messaging Clusters</a></span></dt><dd><dl><dt><span class="section"><a href="chap-Messaging_User_Guide-Active_Passive_Cluster.html#id2539938">1.13.1. Overview</a></span></dt><dt><span class="section"><a href="chap-Messaging_User_Guide-Active_Passive_Cluster.html#id2502044">1.13.2. Virtual IP Addresses</a></span></dt><dt><span class="section"><a href="chap-Messaging_User_Guide-Active_Passive_Cluster.html#id2517968">1.13.3. Configuring the Brokers</a></span></dt><dt><span class="section"><a href="chap-Messaging_User_Guide-Active_Passive_Cluster.html#id2509198">1.13.4. The Cluster Resource Manager</a></span></dt><dt><span class="section"><a href="chap-Messaging_User_Guide-Active_Passive_Cluster.html#id2517989">1.13.5. Configuring <span class="command"><strong>rgmanager</strong></span> as resource manager</a></span></dt><dt><span class="s
ection"><a href="chap-Messaging_User_Guide-Active_Passive_Cluster.html#id2538828">1.13.6. Broker Administration Tools</a></span></dt><dt><span class="section"><a href="chap-Messaging_User_Guide-Active_Passive_Cluster.html#ha-creating-replicated">1.13.7. Creating replicated queues and exchanges</a></span></dt><dt><span class="section"><a href="chap-Messaging_User_Guide-Active_Passive_Cluster.html#id2506484">1.13.8. Client Connection and Fail-over</a></span></dt><dt><span class="section"><a href="chap-Messaging_User_Guide-Active_Passive_Cluster.html#id2534625">1.13.9. Security.</a></span></dt><dt><span class="section"><a href="chap-Messaging_User_Guide-Active_Passive_Cluster.html#id2513024">1.13.10. Integrating with other Cluster Resource Managers</a></span></dt></dl></dd><dt><span class="section"><a href="ch01s14.html">1.14. Queue Replication with the HA module</a></span></dt></dl></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name=
"section-Running-a-Qpid-CPP-Broker"></a>1.1.Â
+ Running a Qpid C++ Broker
+ </h2></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="RASC-BuildingtheCppBrokerandClientLibraries"></a>1.1.1.Â
+ Building the
+ C++ Broker and Client Libraries
+ </h3></div></div></div><p>
+ The root directory for the C++ distribution is named
+ qpidc-0.4. The README file in that directory gives
+ instructions for building the broker and client libraries. In
+ most cases you will do the following:
+ </p><pre class="programlisting">
+[qpidc-0.4]$ ./configure
+[qpidc-0.4]$ make
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="RASC-RunningtheCppBroker"></a>1.1.2.Â
+ Running the C++ Broker
+ </h3></div></div></div><p>
+ Once you have built the broker and client libraries, you can
+ start the broker from the command line:
+ </p><pre class="programlisting">
+[qpidc-0.4]$ src/qpidd
+</pre><p>
+ Use the --daemon option to run the broker as a daemon
+ process:
+ </p><pre class="programlisting">
+[qpidc-0.4]$ src/qpidd --daemon
+</pre><p>
+ You can stop a running daemon with the --quit option:
+ </p><pre class="programlisting">
+[qpidc-0.4]$ src/qpidd --quit
+</pre><p>
+ You can see all available options with the --help option
+ </p><pre class="programlisting">
+[qpidc-0.4]$ src/qpidd --help
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="RASC-Mostcommonquestionsgettingqpiddrunning"></a>1.1.3.Â
+ Most
+ common questions getting qpidd running
+ </h3></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="RASC-Errorwhenstartingbroker-3A-22nodatadirectory-22"></a>1.1.3.1.Â
+ Error
+ when starting broker: "no data directory"
+ </h4></div></div></div><p>
+ The qpidd broker requires you to set a data directory or specify
+ --no-data-dir (see help for more details). The data
+ directory is used for the journal, so it is important when
+ reliability counts. Make sure your process has write permission
+ to the data directory.
+ </p><p>
+ The default location is
+ </p><pre class="programlisting">
+/lib/var/qpidd
+</pre><p>
+ An alternate location can be set with --data-dir
+ </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="RASC-Errorwhenstartingbroker-3A-22thatprocessislocked-22"></a>1.1.3.2.Â
+ Error
+ when starting broker: "that process is locked"
+ </h4></div></div></div><p>
+ Note that when qpidd starts it creates a lock file is data
+ directory are being used. If you have a un-controlled exit,
+ please mail
+ the trace from the core to the dev@qpid.apache.org mailing list.
+ To clear the lock run
+ </p><pre class="programlisting">
+./qpidd -q
+</pre><p>
+ It should also be noted that multiple brokers can be run on the
+ same host. To do so set alternate data directories for each qpidd
+ instance.
+ </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="RASC-Usingaconfigurationfile"></a>1.1.3.3.Â
+ Using a configuration
+ file
+ </h4></div></div></div><p>
+ Each option that can be specified on the command line can also be
+ specified in a configuration file. To see available options, use
+ --help on the command line:
+ </p><pre class="programlisting">
+./qpidd --help
+</pre><p>
+ A configuration file uses name/value pairs, one on each line. To
+ convert a command line option to a configuration file entry:
+ </p><p>
+ a.) remove the '--' from the beginning of the option.
+ b.) place a '=' between the option and the value (use
+ <span class="emphasis"><em>yes</em></span> or <span class="emphasis"><em>true</em></span> to enable options that take no
+ value when specified on the command line).
+ c.) place one option per line.
+ </p><p>
+ For instance, the --daemon option takes no value, the
+ --log-to-syslog option takes the values yes or
+ no. The following configuration file sets these two
+ options:
+ </p><pre class="programlisting">
+daemon=yes
+log-to-syslog=yes
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="RASC-CanIuseanyLanguageclientwiththeCppBroker-3F"></a>1.1.3.4.Â
+ Can I use
+ any Language client with the C++ Broker?
+ </h4></div></div></div><p>
+ Yes, all the clients work with the C++ broker; it is written in
+ C+<span class="emphasis"><em>, but uses the AMQP wire protocol. Any broker can be used
+ with any client that uses the same AMQP version. When running the
+ C</em></span>+ broker, it is highly recommended to run AMQP 0-10.
+ </p><p>
+ Note that JMS also works with the C++ broker.
+ </p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="RASC-Authentication"></a>1.1.4.Â
+ Authentication
+ </h3></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="RASC-Linux"></a>1.1.4.1.Â
+ Linux
+ </h4></div></div></div><p>
+ The PLAIN authentication is done on a username+password, which is
+ stored in the sasldb_path file. Usernames and passwords can be
+ added to the file using the command:
+ </p><pre class="programlisting">
+saslpasswd2 -f /var/lib/qpidd/qpidd.sasldb -u <REALM> <USER>
+</pre><p>
+ The REALM is important and should be the same as the
+ --auth-realm
+ option to the broker. This lets the broker properly find the user
+ in
+ the sasldb file.
+ </p><p>
+ Existing user accounts may be listed with:
+ </p><pre class="programlisting">
+sasldblistusers2 -f /var/lib/qpidd/qpidd.sasldb
+</pre><p>
+ NOTE: The sasldb file must be readable by the user running the
+ qpidd daemon, and should be readable only by that user.
+ </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="RASC-Windows"></a>1.1.4.2.Â
+ Windows
+ </h4></div></div></div><p>
+ On Windows, the users are authenticated against the local
+ machine. You should add the appropriate users using the standard
+ Windows tools (Control Panel->User Accounts). To run many of
+ the examples, you will need to create a user "guest" with
+ password "guest".
+ </p><p>
+ If you cannot or do not want to create new users, you can run
+ without authentication by specifying the no-auth option to the
+ broker.
+ </p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="RASC-Slightlymorecomplexconfiguration"></a>1.1.5.Â
+ Slightly more
+ complex configuration
+ </h3></div></div></div><p>
+ The easiest way to get a full listing of the broker's options are
+ to use the --help command, run it locally for the latest set of
+ options. These options can then be set in the conf file for
+ convenience (see above)
+ </p><pre class="programlisting">
+./qpidd --help
+
+Usage: qpidd OPTIONS
+Options:
+ -h [ --help ] Displays the help message
+ -v [ --version ] Displays version information
+ --config FILE (/etc/qpidd.conf) Reads configuration from FILE
+
+Module options:
+ --module-dir DIR (/usr/lib/qpidd) Load all .so modules in this directory
+ --load-module FILE Specifies additional module(s) to be loaded
+ --no-module-dir Don't load modules from module directory
+
+Broker Options:
+ --data-dir DIR (/var/lib/qpidd) Directory to contain persistent data generated by the broker
+ --no-data-dir Don't use a data directory. No persistent
+ configuration will be loaded or stored
+ -p [ --port ] PORT (5672) Tells the broker to listen on PORT
+ --worker-threads N (3) Sets the broker thread pool size
+ --max-connections N (500) Sets the maximum allowed connections
+ --connection-backlog N (10) Sets the connection backlog limit for the
+ server socket
+ --staging-threshold N (5000000) Stages messages over N bytes to disk
+ -m [ --mgmt-enable ] yes|no (1) Enable Management
+ --mgmt-pub-interval SECONDS (10) Management Publish Interval
+ --ack N (0) Send session.ack/solicit-ack at least every
+ N frames. 0 disables voluntary ack/solitict
+ -ack
+
+Daemon options:
+ -d [ --daemon ] Run as a daemon.
+ -w [ --wait ] SECONDS (10) Sets the maximum wait time to initialize the
+ daemon. If the daemon fails to initialize, prints
+ an error and returns 1
+ -c [ --check ] Prints the daemon's process ID to stdout and
+ returns 0 if the daemon is running, otherwise
+ returns 1
+ -q [ --quit ] Tells the daemon to shut down
+Logging options:
+ --log-output FILE (stderr) Send log output to FILE. FILE can be a file name
+ or one of the special values:
+ stderr, stdout, syslog
+ -t [ --trace ] Enables all logging
+ --log-enable RULE (error+) Enables logging for selected levels and component
+ s. RULE is in the form 'LEVEL+:PATTERN'
+ Levels are one of:
+ trace debug info notice warning error critical
+ For example:
+ '--log-enable warning+' logs all warning, error
+ and critical messages.
+ '--log-enable debug:framing' logs debug messages
+ from the framing namespace. This option can be
+ used multiple times
+ --log-time yes|no (1) Include time in log messages
+ --log-level yes|no (1) Include severity level in log messages
+ --log-source yes|no (0) Include source file:line in log messages
+ --log-thread yes|no (0) Include thread ID in log messages
+ --log-function yes|no (0) Include function signature in log messages
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="RASC-Loadingextramodules"></a>1.1.6.Â
+ Loading extra modules
+ </h3></div></div></div><p>
+ By default the broker will load all the modules in the module
+ directory, however it will NOT display options for modules that
+ are not loaded. So to see the options for extra modules loaded
+ you need to load the module and then add the help command like
+ this:
+ </p><pre class="programlisting">
+./qpidd --load-module libbdbstore.so --help
+Usage: qpidd OPTIONS
+Options:
+ -h [ --help ] Displays the help message
+ -v [ --version ] Displays version information
+ --config FILE (/etc/qpidd.conf) Reads configuration from FILE
+
+
+ / .... non module options would be here ... /
+
+
+Store Options:
+ --store-directory DIR Store directory location for persistence (overrides
+ --data-dir)
+ --store-async yes|no (1) Use async persistence storage - if store supports
+ it, enables AIO O_DIRECT.
+ --store-force yes|no (0) Force changing modes of store, will delete all
+ existing data if mode is changed. Be SURE you want
+ to do this!
+ --num-jfiles N (8) Number of files in persistence journal
+ --jfile-size-pgs N (24) Size of each journal file in multiples of read
+ pages (1 read page = 64kiB)
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="RASC-message-timestamps"></a>1.1.7. Timestamping Received Messages</h3></div></div></div><p>
+ The AMQP 0-10 specification defines a <span class="emphasis"><em>timestamp</em></span> message delivery
+ property. The timestamp delivery property is a <span class="emphasis"><em>datetime</em></span> value
+ that is written to each message that arrives at the broker. See the description of
+ "message.delivery-properties" in the "Command Classes" section of the AMQP 0-10
+ specification for more detail.
+ </p><p>
+ See the <span class="emphasis"><em>Programming in Apache Qpid</em></span> documentation for
+ information regarding how clients may access the timestamp value in received
+ messages.
+ </p><p>
+ By default, this timestamping feature is disabled. To enable timestamping, use the
+ <span class="emphasis"><em>enable-timestamp</em></span> broker configuration option. Setting the
+ enable-timestamp option to 'yes' will enable message timestamping:
+ </p><pre class="programlisting">
+./qpidd --enable-timestamp yes
+ </pre><p>
+ Message timestamping can also be enabled (and disabled) without restarting the broker.
+ The QMF Broker management object defines two methods for accessing the timestamp
+ configuration:
+ </p><div class="table"><a name="id2492834"></a><p class="title"><b>Table 1.1. QMF Management - Broker Methods for Managing the Timestamp Configuration</b></p><div class="table-contents"><table summary="QMF Management - Broker Methods for Managing the Timestamp Configuration" border="1"><colgroup><col><col></colgroup><thead><tr><th>Method</th><th>Description</th></tr></thead><tbody><tr><td>getTimestampConfig</td><td>Get the message timestamping configuration. Returns True if received messages are timestamped.</td></tr><tr><td>setTimestampConfig</td><td>Set the message timestamping configuration. Set True to enable timestamping received messages, False to disable timestamping.</td></tr></tbody></table></div></div><br class="table-break"><div class="example"><a name="id2492887"></a><p class="title"><b>Example 1.1. Enabling Message Timestamping via QMF - Python</b></p><div class="example-contents"><p>
+ The following code fragment uses these QMF method calls to enable message timestamping.
+ </p><pre class="programlisting">
+# get the state of the timestamp configuration
+broker = self.qmf.getObjects(_class="broker")[0]
+rc = broker.getTimestampConfig()
+self.assertEqual(rc.status, 0)
+self.assertEqual(rc.text, "OK")
+print("The timestamp setting is %s" % str(rc.receive))
+
+# try to enable it
+rc = broker.setTimestampConfig(True)
+self.assertEqual(rc.status, 0)
+self.assertEqual(rc.text, "OK")
+ </pre></div></div><br class="example-break"></div></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="pr01.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="ch01s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Introduction </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 1.2.Â
+ Cheat Sheet for configuring Queue Options
+ </td></tr></table></div><div class="main_text_area_bottom"></div></div></div></body></html>
Added: qpid/site/docs/books/trunk_new/AMQP-Messaging-Broker-CPP-Book/html/ch01s02.html
URL: http://svn.apache.org/viewvc/qpid/site/docs/books/trunk_new/AMQP-Messaging-Broker-CPP-Book/html/ch01s02.html?rev=1372183&view=auto
==============================================================================
--- qpid/site/docs/books/trunk_new/AMQP-Messaging-Broker-CPP-Book/html/ch01s02.html (added)
+++ qpid/site/docs/books/trunk_new/AMQP-Messaging-Broker-CPP-Book/html/ch01s02.html Sun Aug 12 19:19:49 2012
@@ -0,0 +1,199 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>1.2. Cheat Sheet for configuring Queue Options</title><link rel="stylesheet" href="css/style.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.73.2"><link rel="start" href="index.html" title="AMQP Messaging Broker (Implemented in C++)"><link rel="up" href="ch01.html" title="Chapter 1. Running the AMQP Messaging Broker"><link rel="prev" href="ch01.html" title="Chapter 1. Running the AMQP Messaging Broker"><link rel="next" href="ch01s03.html" title="1.3. Cheat Sheet for configuring Exchange Options"></head><body><div class="container" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><DIV class="header"><DIV class="logo"><H1>Apache Qpidâ¢</H1><H2>Open Source AMQP Messaging</H2></DIV></DIV><DIV class="menu_box"><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Apache Qpid</H3><UL><LI><A href="http://
qpid.apache.org/index.html">Home</A></LI><LI><A href="http://qpid.apache.org/download.html">Download</A></LI><LI><A href="http://qpid.apache.org/getting_started.html">Getting Started</A></LI><LI><A href="http://www.apache.org/licenses/">License</A></LI><LI><A href="https://cwiki.apache.org/qpid/faq.html">FAQ</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Documentation</H3><UL><LI><A href="http://qpid.apache.org/documentation.html#doc-release">0.14 Release</A></LI><LI><A href="http://qpid.apache.org/documentation.html#doc-trunk">Trunk</A></LI><LI><A href="http://qpid.apache.org/documentation.html#doc-archives">Archive</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Community</H3><UL><LI><A href="http://qpid.apache.org/getting_involved.html">Getting Involved</A></LI><LI><A href="http://qpid.apache.org/source_repository.html">Source Reposito
ry</A></LI><LI><A href="http://qpid.apache.org/mailing_lists.html">Mailing Lists</A></LI><LI><A href="https://cwiki.apache.org/qpid/">Wiki</A></LI><LI><A href="https://issues.apache.org/jira/browse/qpid">Issue Reporting</A></LI><LI><A href="http://qpid.apache.org/people.html">People</A></LI><LI><A href="http://qpid.apache.org/acknowledgements.html">Acknowledgements</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Developers</H3><UL><LI><A href="https://cwiki.apache.org/qpid/building.html">Building Qpid</A></LI><LI><A href="https://cwiki.apache.org/qpid/developer-pages.html">Developer Pages</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>About AMQP</H3><UL><LI><A href="http://qpid.apache.org/amqp.html">What is AMQP?</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>About Apac
he</H3><UL><LI><A href="http://www.apache.org">Home</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="http://www.apache.org/security/">Security</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV></DIV><div class="main_text_area"><div class="main_text_area_top"></div><div class="main_text_area_body"><DIV class="breadcrumbs"><span class="breadcrumb-link"><a href="index.html">AMQP Messaging Broker (Implemented in C++)</a></span> > <span class="breadcrumb-link"><a href="ch01.html">
+ Running the AMQP Messaging Broker
+ </a></span> > <span class="breadcrumb-node">
+ Cheat Sheet for configuring Queue Options
+ </span></DIV><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="id2251606"></a>1.2.Â
+ Cheat Sheet for configuring Queue Options
+ </h2></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="CheatSheetforconfiguringQueueOptions-ConfiguringQueueOptions"></a>1.2.1.Â
+ Configuring
+ Queue Options
+ </h3></div></div></div><p>
+ The C++ Broker M4 or later supports the following additional
+ Queue constraints.
+ </p><div class="itemizedlist"><ul><li><p>
+ <a class="xref" href="ch01s02.html#CheatSheetforconfiguringQueueOptions-ConfiguringQueueOptions" title="1.2.1. Configuring Queue Options">Section 1.2.1, â
+ Configuring
+ Queue Options
+ â</a>
+ </p></li><li><p>
+ </p><div class="itemizedlist"><ul><li><p>
+ <a class="xref" href="ch01s02.html#CheatSheetforconfiguringQueueOptions-ApplyingQueueSizingConstraints" title="1.2.1.1. Applying Queue Sizing Constraints">Section 1.2.1.1, â
+ Applying Queue Sizing Constraints
+ â</a>
+ </p></li><li><p>
+ <a class="xref" href="ch01s02.html#CheatSheetforconfiguringQueueOptions-ChangingtheQueueorderingBehaviors-28FIFO-2FLVQ-29" title="1.2.1.2. Changing the Queue ordering Behaviors (FIFO/LVQ)">Section 1.2.1.2, â
+ Changing the Queue ordering Behaviors (FIFO/LVQ)
+ â</a>
+ </p></li><li><p>
+ <a class="xref" href="ch01s02.html#CheatSheetforconfiguringQueueOptions-Settingadditionalbehaviors" title="1.2.1.3. Setting additional behaviors">Section 1.2.1.3, â
+ Setting additional behaviors
+ â</a>
+ </p></li><li><p>
+ </p><div class="itemizedlist"><ul><li><p>
+ <a class="xref" href="ch01s02.html#CheatSheetforconfiguringQueueOptions-PersistLastNode" title="Persist Last Node">the section called â
+ Persist
+ Last Node
+ â</a>
+ </p></li><li><p>
+ <a class="xref" href="ch01s02.html#CheatSheetforconfiguringQueueOptions-Queueeventgeneration" title="Queue event generation">the section called â
+ Queue
+ event generation
+ â</a>
+ </p></li></ul></div><p>
+ </p></li><li><p>
+ <a class="xref" href="ch01s02.html#CheatSheetforconfiguringQueueOptions-OtherClients" title="1.2.1.4. Other Clients">Section 1.2.1.4, â
+ Other
+ Clients
+ â</a>
+ </p></li></ul></div><p>
+ </p></li></ul></div><p>
+ The 0.10 C++ Broker supports the following additional Queue configuration options:
+ </p><div class="itemizedlist"><ul><li><p>
+ <a class="xref" href="producer-flow-control.html" title="1.9. Producer Flow Control">Section 1.9, â
+ Producer Flow Control
+ â</a>
+ </p></li></ul></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="CheatSheetforconfiguringQueueOptions-ApplyingQueueSizingConstraints"></a>1.2.1.1.Â
+ Applying Queue Sizing Constraints
+ </h4></div></div></div><p>
+ 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.
+ </p><p>
+ Once the Queue meets/ exceeds these constraints the follow
+ policies can be applied
+ </p><div class="itemizedlist"><ul><li><p>REJECT - Reject the published message
+ </p></li><li><p>FLOW_TO_DISK - Flow the messages to disk, to preserve memory
+ </p></li><li><p>RING - start overwriting messages in a ring based on sizing.
+ If head meets tail, advance head
+ </p></li><li><p>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
+ </p></li></ul></div><p>
+ Examples:
+ </p><p>
+ Create a queue an auto delete queue that will support 100 000
+ bytes, and then REJECT
+ </p><pre class="programlisting">
+#include "qpid/client/QueueOptions.h"
+
+ QueueOptions qo;
+ qo.setSizePolicy(REJECT,100000,0);
+
+ session.queueDeclare(arg::queue=queue, arg::autoDelete=true, arg::arguments=qo);
+</pre><p>
+ Create a queue that will support 1000 messages into a RING buffer
+ </p><pre class="programlisting">
+#include "qpid/client/QueueOptions.h"
+
+ QueueOptions qo;
+ qo.setSizePolicy(RING,0,1000);
+
+ session.queueDeclare(arg::queue=queue, arg::arguments=qo);
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="CheatSheetforconfiguringQueueOptions-ChangingtheQueueorderingBehaviors-28FIFO-2FLVQ-29"></a>1.2.1.2.Â
+ Changing the Queue ordering Behaviors (FIFO/LVQ)
+ </h4></div></div></div><p>
+ 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.
+ </p><p>
+ 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.
+ </p><p>
+ Example:
+ </p><pre class="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");
+
+</pre><p>
+ Notes:
+ </p><div class="itemizedlist"><ul><li><p>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.
+ </p></li><li><p>Acquire: When a message is acquired from the queue, no matter
+ it's position, it will behave the same as a dequeue
+ </p></li><li><p>LVQ does not support durable messages. If the queue or
+ messages are declared durable on an LVQ, the durability will be
+ ignored.
+ </p></li></ul></div><p>
+ A fully worked <a class="xref" href="ch01s06.html#LVQ-Example" title="1.6.3. LVQ Example">Section 1.6.3, âLVQ Exampleâ</a> can be found here
+ </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="CheatSheetforconfiguringQueueOptions-Settingadditionalbehaviors"></a>1.2.1.3.Â
+ Setting additional behaviors
+ </h4></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="CheatSheetforconfiguringQueueOptions-PersistLastNode"></a>
+ Persist
+ Last Node
+ </h5></div></div></div><p>
+ This option is used in conjunction with clustering. It allows for
+ a queue configured with this option to persist transient messages
+ if the cluster fails down to the last node. If additional nodes
+ in the cluster are restored it will stop persisting transient
+ messages.
+ </p><p>
+ Note
+ </p><div class="itemizedlist"><ul><li><p>if a cluster is started with only one active node, this mode
+ will not be triggered. It is only triggered the first time the
+ cluster fails down to 1 node.
+ </p></li><li><p>The queue MUST be configured durable
+ </p></li></ul></div><p>
+ Example:
+ </p><pre class="programlisting">
+#include "qpid/client/QueueOptions.h"
+
+ QueueOptions qo;
+ qo.clearPersistLastNode();
+
+ session.queueDeclare(arg::queue=queue, arg::durable=true, arg::arguments=qo);
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="CheatSheetforconfiguringQueueOptions-Queueeventgeneration"></a>
+ Queue
+ event generation
+ </h5></div></div></div><p>
+ This option is used to determine whether enqueue/dequeue events
+ representing changes made to queue state are generated. These
+ events can then be processed by plugins such as that used for
+ <a class="xref" href="queue-state-replication.html" title="1.7. Queue State Replication">Section 1.7, â
+ Queue State Replication
+ â</a>.
+ </p><p>
+ Example:
+ </p><pre class="programlisting">
+#include "qpid/client/QueueOptions.h"
+
+ QueueOptions options;
+ options.enableQueueEvents(1);
+ session.queueDeclare(arg::queue="my-queue", arg::arguments=options);
+</pre><p>
+ The boolean option indicates whether only enqueue events should
+ be generated. The key set by this is
+ 'qpid.queue_event_generation' and the value is and integer value
+ of 1 (to replicate only enqueue events) or 2 (to replicate both
+ enqueue and dequeue events).
+ </p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="CheatSheetforconfiguringQueueOptions-OtherClients"></a>1.2.1.4.Â
+ Other
+ Clients
+ </h4></div></div></div><p>
+ Note that these options can be set from any client. QueueOptions
+ just correctly formats the arguments passed to the QueueDeclare()
+ method.
+ </p></div></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch01.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch01.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch01s03.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 1.Â
+ Running the AMQP Messaging Broker
+ Â </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">Â 1.3.Â
+ Cheat Sheet for configuring Exchange Options
+ </td></tr></table></div><div class="main_text_area_bottom"></div></div></div></body></html>
Added: qpid/site/docs/books/trunk_new/AMQP-Messaging-Broker-CPP-Book/html/ch01s03.html
URL: http://svn.apache.org/viewvc/qpid/site/docs/books/trunk_new/AMQP-Messaging-Broker-CPP-Book/html/ch01s03.html?rev=1372183&view=auto
==============================================================================
--- qpid/site/docs/books/trunk_new/AMQP-Messaging-Broker-CPP-Book/html/ch01s03.html (added)
+++ qpid/site/docs/books/trunk_new/AMQP-Messaging-Broker-CPP-Book/html/ch01s03.html Sun Aug 12 19:19:49 2012
@@ -0,0 +1,98 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>1.3. Cheat Sheet for configuring Exchange Options</title><link rel="stylesheet" href="css/style.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.73.2"><link rel="start" href="index.html" title="AMQP Messaging Broker (Implemented in C++)"><link rel="up" href="ch01.html" title="Chapter 1. Running the AMQP Messaging Broker"><link rel="prev" href="ch01s02.html" title="1.2. Cheat Sheet for configuring Queue Options"><link rel="next" href="chap-Messaging_User_Guide-Broker_Federation.html" title="1.4. Broker Federation"></head><body><div class="container" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><DIV class="header"><DIV class="logo"><H1>Apache Qpidâ¢</H1><H2>Open Source AMQP Messaging</H2></DIV></DIV><DIV class="menu_box"><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Apache Qpid</H3><UL><LI><A
href="http://qpid.apache.org/index.html">Home</A></LI><LI><A href="http://qpid.apache.org/download.html">Download</A></LI><LI><A href="http://qpid.apache.org/getting_started.html">Getting Started</A></LI><LI><A href="http://www.apache.org/licenses/">License</A></LI><LI><A href="https://cwiki.apache.org/qpid/faq.html">FAQ</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Documentation</H3><UL><LI><A href="http://qpid.apache.org/documentation.html#doc-release">0.14 Release</A></LI><LI><A href="http://qpid.apache.org/documentation.html#doc-trunk">Trunk</A></LI><LI><A href="http://qpid.apache.org/documentation.html#doc-archives">Archive</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Community</H3><UL><LI><A href="http://qpid.apache.org/getting_involved.html">Getting Involved</A></LI><LI><A href="http://qpid.apache.org/source_repository.html">So
urce Repository</A></LI><LI><A href="http://qpid.apache.org/mailing_lists.html">Mailing Lists</A></LI><LI><A href="https://cwiki.apache.org/qpid/">Wiki</A></LI><LI><A href="https://issues.apache.org/jira/browse/qpid">Issue Reporting</A></LI><LI><A href="http://qpid.apache.org/people.html">People</A></LI><LI><A href="http://qpid.apache.org/acknowledgements.html">Acknowledgements</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Developers</H3><UL><LI><A href="https://cwiki.apache.org/qpid/building.html">Building Qpid</A></LI><LI><A href="https://cwiki.apache.org/qpid/developer-pages.html">Developer Pages</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>About AMQP</H3><UL><LI><A href="http://qpid.apache.org/amqp.html">What is AMQP?</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><
H3>About Apache</H3><UL><LI><A href="http://www.apache.org">Home</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="http://www.apache.org/security/">Security</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV></DIV><div class="main_text_area"><div class="main_text_area_top"></div><div class="main_text_area_body"><DIV class="breadcrumbs"><span class="breadcrumb-link"><a href="index.html">AMQP Messaging Broker (Implemented in C++)</a></span> > <span class="breadcrumb-link"><a href="ch01.html">
+ Running the AMQP Messaging Broker
+ </a></span> > <span class="breadcrumb-node">
+ Cheat Sheet for configuring Exchange Options
+ </span></DIV><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="id2493696"></a>1.3.Â
+ Cheat Sheet for configuring Exchange Options
+ </h2></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="CheatSheetforconfiguringExchangeOptions-ConfiguringExchangeOptions"></a>1.3.1.Â
+ Configuring Exchange Options
+ </h3></div></div></div><p>
+ The C++ Broker M4 or later supports the following additional
+ Exchange options in addition to the standard AMQP define options
+ </p><div class="itemizedlist"><ul><li><p>Exchange Level Message sequencing
+ </p></li><li><p>Initial Value Exchange
+ </p></li></ul></div><p>
+ Note that these features can be used on any exchange type, that
+ has been declared with the options set.
+ </p><p>
+ It also supports an additional option to the bind operation on a
+ direct exchange
+ </p><div class="itemizedlist"><ul><li><p>Exclusive binding for key
+ </p></li></ul></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="CheatSheetforconfiguringExchangeOptions-ExchangeLevelMessagesequencing"></a>1.3.1.1.Â
+ Exchange Level Message sequencing
+ </h4></div></div></div><p>
+ This feature can be used to place a sequence number into each
+ message's headers, based on the order they pass through an
+ exchange. The sequencing starts at 0 and then wraps in an AMQP
+ int64 type.
+ </p><p>
+ The field name used is "qpid.msg_sequence"
+ </p><p>
+ To use this feature an exchange needs to be declared specifying
+ this option in the declare
+ </p><pre class="programlisting">
+....
+ FieldTable args;
+ args.setInt("qpid.msg_sequence",1);
+
+...
+ // now declare the exchange
+ session.exchangeDeclare(arg::exchange="direct", arg::arguments=args);
+</pre><p>
+ Then each message passing through that exchange will be numbers
+ in the application headers.
+ </p><pre class="programlisting">
+ unit64_t seqNo;
+ //after message transfer
+ seqNo = message.getHeaders().getAsInt64("qpid.msg_sequence");
+</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="CheatSheetforconfiguringExchangeOptions-InitialValueExchange"></a>1.3.1.2.Â
+ Initial
+ Value Exchange
+ </h4></div></div></div><p>
+ This feature caches a last message sent to an exchange. When a
+ new binding is created onto the exchange it will then attempt to
+ route this cached messaged to the queue, based on the binding.
+ This allows for topics or the creation of configurations where a
+ new consumer can receive the last message sent to the broker,
+ with matching routing.
+ </p><p>
+ To use this feature an exchange needs to be declared specifying
+ this option in the declare
+ </p><pre class="programlisting">
+....
+ FieldTable args;
+ args.setInt("qpid.ive",1);
+
+...
+ // now declare the exchange
+ session.exchangeDeclare(arg::exchange="direct", arg::arguments=args);
+</pre><p>
+ now use the exchange in the same way you would use any other
+ exchange.
+ </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="CheatSheetforconfiguringExchangeOptions-Exclusivebindingforkey"></a>1.3.1.3.Â
+ Exclusive
+ binding for key
+ </h4></div></div></div><p>
+ Direct exchanges in qpidd support a qpid.exclusive-binding option
+ on the bind operation that causes the binding specified to be the
+ only one for the given key. I.e. if there is already a binding at
+ this exchange with this key it will be atomically updated to bind
+ the new queue. This means that the binding can be changed
+ concurrently with an incoming stream of messages and each message
+ will be routed to exactly one queue.
+ </p><pre class="programlisting">
+....
+ FieldTable args;
+ args.setInt("qpid.exclusive-binding",1);
+
+ //the following will cause the only binding from amq.direct with 'my-key'
+ //to be the one to 'my-queue'; if there were any previous bindings for that
+ //key they will be removed. This is atomic w.r.t message routing through the
+ //exchange.
+ session.exchangeBind(arg::exchange="amq.direct", arg::queue="my-queue",
+ arg::bindingKey="my-key", arg::arguments=args);
+
+...
+</pre></div></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch01s02.html">Prev</a>Â </td><td width="20%" align="center"><a accesskey="u" href="ch01.html">Up</a></td><td width="40%" align="right">Â <a accesskey="n" href="chap-Messaging_User_Guide-Broker_Federation.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">1.2.Â
+ Cheat Sheet for configuring Queue Options
+  </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 1.4. Broker Federation</td></tr></table></div><div class="main_text_area_bottom"></div></div></div></body></html>
Added: qpid/site/docs/books/trunk_new/AMQP-Messaging-Broker-CPP-Book/html/ch01s06.html
URL: http://svn.apache.org/viewvc/qpid/site/docs/books/trunk_new/AMQP-Messaging-Broker-CPP-Book/html/ch01s06.html?rev=1372183&view=auto
==============================================================================
--- qpid/site/docs/books/trunk_new/AMQP-Messaging-Broker-CPP-Book/html/ch01s06.html (added)
+++ qpid/site/docs/books/trunk_new/AMQP-Messaging-Broker-CPP-Book/html/ch01s06.html Sun Aug 12 19:19:49 2012
@@ -0,0 +1,107 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>1.6. LVQ - Last Value Queue</title><link rel="stylesheet" href="css/style.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.73.2"><link rel="start" href="index.html" title="AMQP Messaging Broker (Implemented in C++)"><link rel="up" href="ch01.html" title="Chapter 1. Running the AMQP Messaging Broker"><link rel="prev" href="chap-Messaging_User_Guide-Security.html" title="1.5. Security"><link rel="next" href="queue-state-replication.html" title="1.7. Queue State Replication"></head><body><div class="container" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><DIV class="header"><DIV class="logo"><H1>Apache Qpidâ¢</H1><H2>Open Source AMQP Messaging</H2></DIV></DIV><DIV class="menu_box"><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Apache Qpid</H3><UL><LI><A href="http://qpid.apache.org/index.html">Ho
me</A></LI><LI><A href="http://qpid.apache.org/download.html">Download</A></LI><LI><A href="http://qpid.apache.org/getting_started.html">Getting Started</A></LI><LI><A href="http://www.apache.org/licenses/">License</A></LI><LI><A href="https://cwiki.apache.org/qpid/faq.html">FAQ</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Documentation</H3><UL><LI><A href="http://qpid.apache.org/documentation.html#doc-release">0.14 Release</A></LI><LI><A href="http://qpid.apache.org/documentation.html#doc-trunk">Trunk</A></LI><LI><A href="http://qpid.apache.org/documentation.html#doc-archives">Archive</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Community</H3><UL><LI><A href="http://qpid.apache.org/getting_involved.html">Getting Involved</A></LI><LI><A href="http://qpid.apache.org/source_repository.html">Source Repository</A></LI><LI><A href="http:/
/qpid.apache.org/mailing_lists.html">Mailing Lists</A></LI><LI><A href="https://cwiki.apache.org/qpid/">Wiki</A></LI><LI><A href="https://issues.apache.org/jira/browse/qpid">Issue Reporting</A></LI><LI><A href="http://qpid.apache.org/people.html">People</A></LI><LI><A href="http://qpid.apache.org/acknowledgements.html">Acknowledgements</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Developers</H3><UL><LI><A href="https://cwiki.apache.org/qpid/building.html">Building Qpid</A></LI><LI><A href="https://cwiki.apache.org/qpid/developer-pages.html">Developer Pages</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>About AMQP</H3><UL><LI><A href="http://qpid.apache.org/amqp.html">What is AMQP?</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>About Apache</H3><UL><LI><A href="http:/
/www.apache.org">Home</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="http://www.apache.org/security/">Security</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV></DIV><div class="main_text_area"><div class="main_text_area_top"></div><div class="main_text_area_body"><DIV class="breadcrumbs"><span class="breadcrumb-link"><a href="index.html">AMQP Messaging Broker (Implemented in C++)</a></span> > <span class="breadcrumb-link"><a href="ch01.html">
+ Running the AMQP Messaging Broker
+ </a></span> > <span class="breadcrumb-node">LVQ - Last Value Queue</span></DIV><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="id2523601"></a>1.6. LVQ - Last Value Queue</h2></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="LVQ-UnderstandingLVQ"></a>1.6.1. Understanding LVQ</h3></div></div></div><p>
+ A Last Value Queue is configured with the name of a message header that
+ is used as a key. The queue behaves as a normal FIFO queue with the
+ exception that when a message is enqueued, any other message in the
+ queue with the same value in the key header is removed and discarded.
+ Thus, for any given key value, the queue holds only the most recent
+ message.
+ </p><p>
+ The following example illustrates the operation of a Last Value Queue.
+ The example shows an empty queue with no consumers and a sequence of
+ produced messages. The numbers represent the key for each message.
+ </p><pre class="programlisting">
+ <empty queue>
+ 1 =>
+ 1
+ 2 =>
+ 1 2
+ 3 =>
+ 1 2 3
+ 4 =>
+ 1 2 3 4
+ 2 =>
+ 1 3 4 2
+ 1 =>
+ 3 4 2 1
+ </pre><p>
+ Note that the first four messages are enqueued normally in FIFO order.
+ The fifth message has key '2' and is also enqueued on the tail of the
+ queue. However the message already in the queue with the same key is
+ discarded.
+ </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
+ If the set of keys used in the messages in a LVQ is constrained, the
+ number of messages in the queue shall not exceed the number of
+ distinct keys in use.
+ </p></div><p>
+ </p><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="LVQ-UnderstandingLVQ-UseCases"></a>1.6.1.1. Common Use-Cases</h4></div></div></div><div class="itemizedlist"><ul><li><p>
+ LVQ with zero or one consuming subscriptions - In this case, if
+ the consumer drops momentarily or is slower than the producer(s),
+ it will only receive current information relative to the message
+ keys.
+ </p></li><li><p>
+ LVQ with zero or more browsing subscriptions - A browsing consumer
+ can subscribe to the LVQ and get an immediate dump of all of the
+ "current" messages and track updates thereafter. Any number of
+ independent browsers can subscribe to the same LVQ with the same
+ effect. Since messages are never consumed, they only disappear
+ when replaced with a newer message with the same key or when their
+ TTL expires.
+ </p></li></ul></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="LVQ-Creating"></a>1.6.2. Creating a Last Value Queue</h3></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="LVQ-Creating-Address"></a>1.6.2.1. Using Addressing Syntax</h4></div></div></div><p>
+ A LVQ may be created using directives in the API's address syntax.
+ The important argument is "qpid.last_value_queue_key". The following
+ Python example shows how a producer of stock price updates can create
+ a LVQ to hold the latest stock prices for each ticker symbol. The
+ message header used to hold the ticker symbol is called "ticker".
+ </p><pre class="programlisting">
+ conn = Connection(url)
+ conn.open()
+ sess = conn.session()
+ tx = sess.sender("prices;{create:always, node:{type:queue, x-declare:{arguments:{'qpid.last_value_queue_key':'ticker'}}}}")
+ </pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="LVQ-Creating-Tool"></a>1.6.2.2. Using qpid-config</h4></div></div></div><p>
+ The same LVQ as shown in the previous example can be created using the
+ qpid-config utility:
+ </p><pre class="programlisting">
+ $ qpid-config add queue prices --lvq-key ticker
+ </pre></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="LVQ-Example"></a>1.6.3. LVQ Example</h3></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="LVQ-Example-Sender"></a>1.6.3.1. LVQ Sender</h4></div></div></div><pre class="programlisting">
+ from qpid.messaging import Connection, Message
+
+ def send(sender, key, message):
+ message.properties["ticker"] = key
+ sender.send(message)
+
+ conn = Connection("localhost")
+ conn.open()
+ sess = conn.session()
+ tx = sess.sender("prices;{create:always, node:{type:queue,x-declare:{arguments:{'qpid.last_value_queue_key':ticker}}}}")
+
+ msg = Message("Content")
+ send(tx, "key1", msg);
+ send(tx, "key2", msg);
+ send(tx, "key3", msg);
+ send(tx, "key4", msg);
+ send(tx, "key2", msg);
+ send(tx, "key1", msg);
+
+ conn.close()
+ </pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="LVQ-Example-Receiver"></a>1.6.3.2. LVQ Browsing Receiver</h4></div></div></div><pre class="programlisting">
+ from qpid.messaging import Connection, Message
+
+ conn = Connection("localhost")
+ conn.open()
+ sess = conn.session()
+ rx = sess.receiver("prices;{mode:browse}")
+
+ while True:
+ msg = rx.fetch()
+ sess.acknowledge()
+ print msg
+ </pre></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="LVQ-Deprecated"></a>1.6.4. Deprecated LVQ Modes</h3></div></div></div><p>
+ There are two legacy modes (still implemented as of Qpid 0.14)
+ controlled by the qpid.last_value_queue and
+ qpid.last_value_queue_no_browse argument values. These modes are
+ deprecated and should not be used.
+ </p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="chap-Messaging_User_Guide-Security.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch01.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="queue-state-replication.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">1.5. Security </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 1.7.Â
+ Queue State Replication
+ </td></tr></table></div><div class="main_text_area_bottom"></div></div></div></body></html>
Added: qpid/site/docs/books/trunk_new/AMQP-Messaging-Broker-CPP-Book/html/ch01s14.html
URL: http://svn.apache.org/viewvc/qpid/site/docs/books/trunk_new/AMQP-Messaging-Broker-CPP-Book/html/ch01s14.html?rev=1372183&view=auto
==============================================================================
--- qpid/site/docs/books/trunk_new/AMQP-Messaging-Broker-CPP-Book/html/ch01s14.html (added)
+++ qpid/site/docs/books/trunk_new/AMQP-Messaging-Broker-CPP-Book/html/ch01s14.html Sun Aug 12 19:19:49 2012
@@ -0,0 +1,30 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>1.14. Queue Replication with the HA module</title><link rel="stylesheet" href="css/style.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.73.2"><link rel="start" href="index.html" title="AMQP Messaging Broker (Implemented in C++)"><link rel="up" href="ch01.html" title="Chapter 1. Running the AMQP Messaging Broker"><link rel="prev" href="chap-Messaging_User_Guide-Active_Passive_Cluster.html" title="1.13. Active-passive Messaging Clusters"><link rel="next" href="chapter-Managing-CPP-Broker.html" title="Chapter 2. Managing the AMQP Messaging Broker"></head><body><div class="container" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><DIV class="header"><DIV class="logo"><H1>Apache Qpidâ¢</H1><H2>Open Source AMQP Messaging</H2></DIV></DIV><DIV class="menu_box"><DIV class="menu_box_top"></DIV><DIV class="menu_box_b
ody"><H3>Apache Qpid</H3><UL><LI><A href="http://qpid.apache.org/index.html">Home</A></LI><LI><A href="http://qpid.apache.org/download.html">Download</A></LI><LI><A href="http://qpid.apache.org/getting_started.html">Getting Started</A></LI><LI><A href="http://www.apache.org/licenses/">License</A></LI><LI><A href="https://cwiki.apache.org/qpid/faq.html">FAQ</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Documentation</H3><UL><LI><A href="http://qpid.apache.org/documentation.html#doc-release">0.14 Release</A></LI><LI><A href="http://qpid.apache.org/documentation.html#doc-trunk">Trunk</A></LI><LI><A href="http://qpid.apache.org/documentation.html#doc-archives">Archive</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Community</H3><UL><LI><A href="http://qpid.apache.org/getting_involved.html">Getting Involved</A></LI><LI><A href="http://qpid.a
pache.org/source_repository.html">Source Repository</A></LI><LI><A href="http://qpid.apache.org/mailing_lists.html">Mailing Lists</A></LI><LI><A href="https://cwiki.apache.org/qpid/">Wiki</A></LI><LI><A href="https://issues.apache.org/jira/browse/qpid">Issue Reporting</A></LI><LI><A href="http://qpid.apache.org/people.html">People</A></LI><LI><A href="http://qpid.apache.org/acknowledgements.html">Acknowledgements</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>Developers</H3><UL><LI><A href="https://cwiki.apache.org/qpid/building.html">Building Qpid</A></LI><LI><A href="https://cwiki.apache.org/qpid/developer-pages.html">Developer Pages</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top"></DIV><DIV class="menu_box_body"><H3>About AMQP</H3><UL><LI><A href="http://qpid.apache.org/amqp.html">What is AMQP?</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV><DIV class="menu_box_top
"></DIV><DIV class="menu_box_body"><H3>About Apache</H3><UL><LI><A href="http://www.apache.org">Home</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="http://www.apache.org/security/">Security</A></LI></UL></DIV><DIV class="menu_box_bottom"></DIV></DIV><div class="main_text_area"><div class="main_text_area_top"></div><div class="main_text_area_body"><DIV class="breadcrumbs"><span class="breadcrumb-link"><a href="index.html">AMQP Messaging Broker (Implemented in C++)</a></span> > <span class="breadcrumb-link"><a href="ch01.html">
+ Running the AMQP Messaging Broker
+ </a></span> > <span class="breadcrumb-node">Queue Replication with the HA module</span></DIV><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="id2507616"></a>1.14. Queue Replication 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
+ also allows you to replicate individual queues. 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><p>
+ To create a replica you need the HA module to be loaded on both the orignal and replica
+ brokers. Note that 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 HA 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 replca is not used
+ until it has been disconnected from the original.
+ </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>
+ </p><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><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="chap-Messaging_User_Guide-Active_Passive_Cluster.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch01.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="chapter-Managing-CPP-Broker.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">1.13. Active-passive Messaging Clusters </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 2.Â
+ Managing the AMQP Messaging Broker
+ </td></tr></table></div><div class="main_text_area_bottom"></div></div></div></body></html>
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org