diff options
| author | Keith Wall <kwall@apache.org> | 2014-10-12 15:48:18 +0000 |
|---|---|---|
| committer | Keith Wall <kwall@apache.org> | 2014-10-12 15:48:18 +0000 |
| commit | 39b5bc8a8456235540730c88922f60855a16e46b (patch) | |
| tree | ed495f958ebe78b2559dbbbb0c4e292e1555250f | |
| parent | 71c395d26e425571573b0bda06e23e5f84c1ca2c (diff) | |
| download | qpid-python-39b5bc8a8456235540730c88922f60855a16e46b.tar.gz | |
QPID-6108: [Java Broker Documentation] Rewrite HA documentation to reflect the new model and the include multi-node support.
* Correct many spelling errors
* Improve web-console documentation around add/edit/delete entities, and the setting of context variables
* Extract new top level section for backup/recovery
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1631195 13f79535-47bb-0310-9956-ffa450edef68
52 files changed, 842 insertions, 1072 deletions
diff --git a/qpid/doc/book/src/java-broker/AMQP-Messaging-Broker-Java-Book.xml b/qpid/doc/book/src/java-broker/AMQP-Messaging-Broker-Java-Book.xml index 4075859fe9..f1158d077c 100644 --- a/qpid/doc/book/src/java-broker/AMQP-Messaging-Broker-Java-Book.xml +++ b/qpid/doc/book/src/java-broker/AMQP-Messaging-Broker-Java-Book.xml @@ -33,9 +33,10 @@ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Java-Broker-Security.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Java-Broker-Runtime.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Java-Broker-High-Availability.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Java-Broker-Miscellaneous.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Java-Broker-Backup-And-Recovery.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Java-Broker-Appendix-Environment-Variables.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Java-Broker-Appendix-System-Properties.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Java-Broker-Appendix-Operational-Logging-Messages.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Java-Broker-Appendix-Queue-Alerts.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Java-Broker-Appendix-Miscellaneous.xml"/> </book> diff --git a/qpid/doc/book/src/java-broker/Java-Broker-Miscellaneous.xml b/qpid/doc/book/src/java-broker/Java-Broker-Appendix-Miscellaneous.xml index c1fc9255d9..112dbeb39c 100644 --- a/qpid/doc/book/src/java-broker/Java-Broker-Miscellaneous.xml +++ b/qpid/doc/book/src/java-broker/Java-Broker-Appendix-Miscellaneous.xml @@ -24,7 +24,7 @@ --> -<chapter id="Java-Broker-Miscellaneous"> +<appendix id="Java-Broker-Miscellaneous"> <title>Miscellaneous</title> <section role="h2" id="Java-Broker-Miscellaneous-JVM-Verification"> @@ -77,7 +77,7 @@ copy <literal>driver</literal>.jar qpid-broker-&qpidCurrentRelease;\lib\opt</pro <title>Installing Oracle BDB JE</title> <para> The Oracle BDB JE is not distributed with Apache Qpid owing to license considerations.. </para> <para>If you wish to use a BDB Virtualhost Node, BDB Virtualhost, or BDB HA Virtualhost Node you - must make the BDB JE's JDBC 4.0 compatible drivers= available on the Broker's classpath. </para> + must make the BDB JE's JAR available on the Broker's classpath. </para> <para> Download the Oracle BDB JE &oracleBdbProductVersion; release <ulink url="&oracleJeDownloadUrl;">from the Oracle website.</ulink> </para> @@ -100,4 +100,4 @@ copy je-&oracleBdbProductVersion;.jar qpid-broker-&qpidCurrentRelease;\lib\opt</ -</chapter> +</appendix> diff --git a/qpid/doc/book/src/java-broker/Java-Broker-Appendix-Operational-Logging-Messages.xml b/qpid/doc/book/src/java-broker/Java-Broker-Appendix-Operational-Logging-Messages.xml index 7b7928fda0..7d3d62b075 100644 --- a/qpid/doc/book/src/java-broker/Java-Broker-Appendix-Operational-Logging-Messages.xml +++ b/qpid/doc/book/src/java-broker/Java-Broker-Appendix-Operational-Logging-Messages.xml @@ -28,7 +28,7 @@ <title>Operational Logging</title> <para>The Broker will, by default, produce structured log messages in response to key events in - the lives of objects within the Broker. These consise messages are designed to allow the user to + the lives of objects within the Broker. These concise messages are designed to allow the user to understand the actions of the Broker in retrospect. This is valuable for problem diagnosis and provides a useful audit trail.</para> <para>Each log message includes details of the entity causing the action (e.g. a management user @@ -1196,7 +1196,7 @@ </row> <row> <entry> - <para>The node is no longer reachanble. This may be as a result of the node being + <para>The node is no longer reachable. This may be as a result of the node being stopped or a network partition may be preventing it from being connected. The node is still a member of the group.</para> </entry> diff --git a/qpid/doc/book/src/java-broker/Java-Broker-Backup-And-Recovery.xml b/qpid/doc/book/src/java-broker/Java-Broker-Backup-And-Recovery.xml new file mode 100644 index 0000000000..670fc04829 --- /dev/null +++ b/qpid/doc/book/src/java-broker/Java-Broker-Backup-And-Recovery.xml @@ -0,0 +1,129 @@ +<?xml version="1.0"?> +<!DOCTYPE entities [ +<!ENTITY % entities SYSTEM "commonEntities.xml"> +%entities; +]> +<!-- + + 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. + +--> + +<chapter id="Java-Broker-Backup-And-Recovery"> + <title>Backup And Recovery</title> + <section id="Java-Broker-Backup-And-Recovery-Broker"> + <title>Broker</title> + <para>To perform a complete backup whilst the Broker is shutdown, simply copy all the files the + exist beneath <literal>${QPID_WORK}</literal>, assuming all virtualhost nodes and virtualhost + are in their standard location, this will copy all configuration and persistent message data. </para> + <para>There is currently no safe mechanism to take a complete copy of the entire Broker whilst + it is running.</para> + </section> + <section id="Java-Broker-Backup-And-Recovery-Virtualhost-Node"> + <title>Virtualhost Node</title> + <para>To perform a complete backup of a Virtualhost node whilst it is stopped (or Broker down), + simply copy all the files the exist beneath + <literal>${QPID_WORK}/<nodename>/config</literal>, assuming the virtualhost node is in + the standard location. This will copy all configuration that belongs to that virtualhost + node.</para> + <para>The technique for backing up a virtualhost node whilst it is running depends on its + type.</para> + <section id="Java-Broker-Backup-And-Recovery-Virtualhost-Node-BDB"> + <title>BDB</title> + <para>Qpid Broker distribution includes the "hot" backup utility <literal>backup.sh</literal> + which can be found at broker bin folder. This utility can perform the backup when broker is + running.</para> + <para><literal>backup.sh</literal> script invokes + <classname>org.apache.qpid.server.store.berkeleydb.BDBBackup</classname> to do the + job.</para> + <para>You can also run this class from command line like in an example below:</para> + <example> + <title>Performing store backup by using <classname>BDBBackup</classname> class + directly</title> + <command> java -cp qpid-bdbstore-&qpidCurrentRelease;.jar + org.apache.qpid.server.store.berkeleydb.BDBBackup -fromdir + ${QPID_WORK}/<nodename>/config -todir path/to/backup/folder</command> + </example> + <para>In the example above BDBBackup utility is called from + qpid-bdbstore-&qpidCurrentRelease;.jar to backup the store at + <literal>${QPID_WORK}/<nodename>/config</literal> and copy store logs into + <literal>path/to/backup/folder</literal>.</para> + <para>Linux and Unix users can take advantage of <literal>backup.sh</literal> bash script by + running this script in a similar way.</para> + <example> + <title>Performing store backup by using <classname>backup.sh</classname> bash script</title> + <command>backup.sh -fromdir ${QPID_WORK}/<nodename>/config -todir + path/to/backup/folder</command> + </example> + </section> + <section id="Java-Broker-Backup-And-Recovery-Virtualhost-Node-BDB-HA"> + <title>BDB</title> + <para>See <xref linkend="Java-Broker-Backup-And-Recovery-Virtualhost-Node-BDB"/></para> + </section> + <section id="Java-Broker-Backup-And-Recovery-Virtualhost-Node-Derby"> + <title>Derby</title> + <para>Not yet supported</para> + </section> + <section id="Java-Broker-Backup-And-Recovery-Virtualhost-Node-JDBC"> + <title>JDBC</title> + <para>The responsibility for backup is delegated to the database server itself. See the + documentation accompanying it. Any technique that takes a consistent snapshot of the + database is acceptable.</para> + </section> + <section id="Java-Broker-Backup-And-Recovery-Virtualhost-Node-JSON"> + <title>JSON</title> + <para>JSON stores its config in a single text file. It can be safely backed up using standard + command line tools.</para> + </section> + </section> + <section id="Java-Broker-Backup-And-Recovery-Virtualhost"> + <title>Virtualhost</title> + <para>To perform a complete backup of a Virtualhost whilst it is stopped (or Broker down), + simply copy all the files the exist beneath + <literal>${QPID_WORK}/<name>/messages</literal>, assuming the virtualhost is in the + standard location. This will copy all messages that belongs to that virtualhost.</para> + <para>The technique for backing up a virtualhost whilst it is running depends on its + type.</para> + <section id="Java-Broker-Backup-And-Recovery-Virtualhost-BDB"> + <title>BDB</title> + <para>Use the same backup utility described above, but use the path + <literal>${QPID_WORK}/<name>/messages</literal> instead.</para> + </section> + <section id="Java-Broker-Backup-And-Recovery-Virtualhost-Derby"> + <title>Derby</title> + <para>Not yet supported</para> + </section> + <section id="Java-Broker-Backup-And-Recovery-Virtualhost-JDBC"> + <title>JDBC</title> + <para>The responsibility for backup is delegated to the database server itself. See the + documentation accompanying it. Any technique that takes a consistent snapshot of the + database is acceptable.</para> + </section> + <section id="Java-Broker-Backup-And-Recovery-Virtualhost-Provided"> + <title>Provided</title> + <para>The contents of the virtualhost will be backed up as part of virtualhost node that + contains it.</para> + </section> + <section id="Java-Broker-Backup-And-Recovery-Virtualhost-BDBHA"> + <title>BDB-HA</title> + <para>The contents of the virtualhost will be backed up as part of virtualhost node that + contains it.</para> + </section> + </section> + +</chapter> diff --git a/qpid/doc/book/src/java-broker/Java-Broker-Close-On-No-Route.xml b/qpid/doc/book/src/java-broker/Java-Broker-Close-On-No-Route.xml index c19f42a2e3..7f871dcc20 100644 --- a/qpid/doc/book/src/java-broker/Java-Broker-Close-On-No-Route.xml +++ b/qpid/doc/book/src/java-broker/Java-Broker-Close-On-No-Route.xml @@ -33,7 +33,7 @@ an <emphasis>AMQNoRouteException</emphasis> through the configured ExceptionListener on the Connection. This does not cause channel or connection closure, however it requires a special exception handling on client side in order to deal with <emphasis>AMQNoRouteExceptions</emphasis>. - This could potentially be a problem when using various messaging frameworks (e.g Mule) + This could potentially be a problem when using various messaging frameworks (e.g. Mule) as they usually close the connection on receiving any JMSException. </para> <para> diff --git a/qpid/doc/book/src/java-broker/Java-Broker-High-Availability.xml b/qpid/doc/book/src/java-broker/Java-Broker-High-Availability.xml index d838bee626..9dfbbaf764 100644 --- a/qpid/doc/book/src/java-broker/Java-Broker-High-Availability.xml +++ b/qpid/doc/book/src/java-broker/Java-Broker-High-Availability.xml @@ -26,882 +26,530 @@ <chapter id="Java-Broker-High-Availability"> <title>High Availability</title> - <section role="h3" id="Java-Broker-High-Availability-GeneralIntroduction"> + <section id="Java-Broker-High-Availability-GeneralIntroduction"> <title>General Introduction</title> - <para>The term High Availability (HA) usually refers to having a number of instances of a service such as a Message Broker - available so that should a service unexpectedly fail, or requires to be shutdown for maintenance, users may quickly connect - to another instance and continue their work with minimal interuption. HA is one way to make a overall system more resilient - by eliminating a single point of failure from a system.</para> - <para>HA offerings are usually categorised as <emphasis role="bold">Active/Active</emphasis> or <emphasis role="bold">Active/Passive</emphasis>. - An Active/Active system is one where all nodes within the cluster are usuaully available for use by clients all of the time. In an - Active/Passive system, one only node within the cluster is available for use by clients at any one time, whilst the others are in - some kind of standby state, awaiting to quickly step-in in the event the active node becomes unavailable. - </para> + <para>The term High Availability (HA) usually refers to having a number of instances of a + service such as a Message Broker available so that should a service unexpectedly fail, or + requires to be shutdown for maintenance, users may quickly connect to another instance and + continue their work with minimal interruption. HA is one way to make a overall system more + resilient by eliminating a single point of failure from a system.</para> + <para>HA offerings are usually categorised as <emphasis role="bold">Active/Active</emphasis> or + <emphasis role="bold">Active/Passive</emphasis>. An Active/Active system is one where all + nodes within the group are usually available for use by clients all of the time. In an + Active/Passive system, one only node within the group is available for use by clients at any + one time, whilst the others are in some kind of standby state, awaiting to quickly step-in in + the event the active node becomes unavailable. </para> </section> - <section role="h3" id="Java-Broker-High-Availability-OfferingsOfJavaBroker"> - <title>HA offerings of the Java Broker</title> - <para>HA is provided by way of the HA features built into the <ulink url="&oracleBdbProductOverviewUrl;">Java Edition of the Berkley Database - (BDB JE)</ulink> and as such is currently only available to Java Broker users who use the optional BDB JE based persistence store. This - <emphasis role="bold">optional</emphasis> store requires the use of BDB JE which is licensed under the Sleepycat Licence, which is - not compatible with the Apache Licence and thus BDB JE is not distributed with Qpid. Users who elect to use this optional store for - the broker have to provide this dependency.</para> - <para>HA in the Java Broker provides an <emphasis role="bold">Active/Passive</emphasis> mode of operation with Virtual hosts being - the unit of replication. The Active node (referred to as the <emphasis role="bold">Master</emphasis>) accepts all work from all the clients. - The Passive nodes (referred to as <emphasis role="bold">Replicas</emphasis>) are unavailable for work: the only task they must perform is - to remain in synch with the Master node by consuming a replication stream containing all data and state.</para> - <para>If the Master node fails, a Replica node is elected to become the new Master node. All clients automatically failover - <footnote><para>The automatic failover feature is available only for AMQP connections from the Java client. Management connections (JMX) - do not current offer this feature.</para></footnote> to the new Master and continue their work.</para> - <para>The Java Broker HA solution is incompatible with the HA solution offered by the CPP Broker. It is not possible to co-locate Java and CPP - Brokers within the same cluster.</para> - <para>HA is not currently available for those using the the <emphasis role="bold">Derby Store</emphasis> or <emphasis role="bold">Memory - Message Store</emphasis>.</para> + <section id="Java-Broker-High-Availability-OverviewOfHA"> + <title>Overview of HA within the Java Broker</title> + <para>The Java Broker provides a HA implementation offering an <emphasis role="bold" + >Active/Passive</emphasis> mode of operation. When using HA, many instances of the Java + Broker work together to form an high availability group of two or more nodes.</para> + <para>The remainder of this section now talks about the specifics of how HA is achieved in terms + of the <link linkend="Java-Broker-Concepts">concepts</link> introduced earlier in this + book.</para> + <para>The <link linkend="Java-Broker-Concepts-Virtualhosts">Virtualhost</link> is the unit of + replication. This means that any <emphasis>durable</emphasis> queues, exchanges, and bindings + belonging to that virtualhost, any <emphasis>persistent</emphasis> messages contained within + the queues and any attribute settings applied to the virtualhost itself are automatically + replicated to all nodes within the group.<footnote> + <para>Transient messages and messages on non-durable queues are not replicated.</para> + </footnote></para> + <para>It is the <link linkend="Java-Broker-Concepts-Virtualhost-Nodes">Virtualhost Nodes</link> + (from different Broker instances) that join together to form a group. The virtualhost nodes + collectively to coordinate the group: they organise replication between the master and + replicas and conduct elections to determine who becomes the new master in the event of the old + failing.</para> + <para>When a virtualhost node is in the <emphasis>master</emphasis> role, the virtualhost + beneath it is available for messaging work. Any write operations sent to the virtualhost are + automatically replicated to all other nodes in group.</para> + <para>When a virtualhost node is in the <emphasis>replica</emphasis> role, the virtualhost + beneath it is always unavailable for message work. Any attempted connections to a virtualhost + in this state are automatically turned away, allowing a messaging client to discover where the + master currently resides. When in replica role, the node sole responsibility is to consume a + replication stream in order that it remains up to date with the master.</para> + <para>Messaging clients discover the active virtualhost.This can be achieved using a static + technique (for instance, a failover url (a feature of a Qpid Java Client)), or a dynamic one + utilising some kind of proxy or virtual IP (VIP).</para> + <para>The figure that follows illustrates a group formed of three virtualhost nodes from three + separate Broker instances. A client is connected to the virtualhost node that is in the master + role. The two virtualhost nodes <literal>weather1</literal> and <literal>weather3</literal> + are replicas and are receiving a stream of updates.</para> + <figure id="Java-Broker-High-Availability-OverviewOfHA-Figure"> + <title>3-node group deployed across three Brokers.</title> + <mediaobject> + <imageobject> + <imagedata fileref="images/HA-Overview.png" format="PNG" scalefit="1"/> + </imageobject> + <textobject> + <phrase>Diagram showing a 3 node group deployed across three Brokers</phrase> + </textobject> + </mediaobject> + </figure> + <para>Currently, the only virtualhost/virtualhost node type offering HA is BDB HA. Internally, + this leverages the HA capabilities of the Berkeley DB JE edition. BDB JE is an <link + linkend="Java-Broker-Miscellaneous-Installing-Oracle-BDB-JE">optional dependency</link> of + the Broker.</para> + <note> + <para>The Java Broker HA solution is incompatible with the HA solution offered by the CPP + Broker. It is not possible to co-locate Java and CPP Brokers within the same group.</para> + </note> </section> + <section id="Java-Broker-High-Availability-CreatingGroup"> + <title>Creating a group</title> + <para>This section describes how to create a group. At a high level, creating a group involves + first creating the first node standalone, then creating subsequent nodes referencing the first + node so the nodes can introduce themselves and gradually the group is built up.</para> + <para>A group is created through either <link + linkend="Java-Broker-Management-Channel-Web-Console">Web Management</link> or the <link + linkend="Java-Broker-Management-Channel-REST-API">REST API</link>. These instructions + presume you are using Web Management. To illustrate the example it builds the group + illustrated in figure <xref linkend="Java-Broker-High-Availability-OverviewOfHA-Figure" + /></para> + <para><orderedlist> + <listitem> + <para>Install a Broker on each machine that will be used to host the group. As messaging + clients will need to be able to connect to and authentication to all Brokers, it usually + makes sense to choose a common authentication mechanism e.g. Simple LDAP Authentication, + External with SSL client authentication or Kerberos.</para> + </listitem> + <listitem> + <para>Select one Broker instance to host the first node instance. This choice is an + arbitrary one. The node is special only whilst creating group. Once creation is complete, + all nodes will be considered equal.</para> + </listitem> + <listitem> + <para> + <para>Click the <literal>Add</literal> button on the Virtualhost Panel on the Broker + tab.</para> + <orderedlist> + <listitem> + <para>Give the Virtualhost node a unique name e.g. <literal>weather1</literal>. The + name must be unique within the group and unique to that Broker. It is best if the + node names are chosen from a different nomenclature than the machine names + themselves.</para> + </listitem> + <listitem> + <para>Choose <literal>BDB_HA</literal> and select <literal>New group</literal> + </para> + </listitem> + <listitem> + <para>Give the group a name e.g. <literal>weather</literal>. The group name must be + unique and will be the name also given to the virtualhost, so this is the name the + messaging clients will use in their connection url.</para> + </listitem> + <listitem> + <para>Give the address of this node. This is an address on this node's host that + will be used for replication purposes. The hostname <emphasis>must</emphasis> be + resolvable by all the other nodes in the group. This is separate from the address + used by messaging clients to connect to the Broker. It is usually best to choose a + symbolic name, rather than an IP address.</para> + </listitem> + <listitem> + <para>Now add the node addresses of all the other nodes that will form the group. In + our example we are building a three node group so we give the node addresses of + <literal>chaac:5000</literal> and <literal>indra:5000</literal>.</para> + </listitem> + <listitem> + <para>Click Add to create the node. The virtualhost node will be created with the + virtualhost. As there is only one node at this stage, the role will be + master.</para> + </listitem> + </orderedlist> + <para> + <figure> + <title>Creating 1st node in a group</title> + <mediaobject> + <imageobject> + <imagedata fileref="images/HA-Create-1.png" format="PNG" scalefit="1"/> + </imageobject> + <textobject> + <phrase>Creating 1st node in a group</phrase> + </textobject> + </mediaobject> + </figure> + </para> + </para> + </listitem> + <listitem> + <para> + <para>Now move to the second Broker to be the group. Click the <literal>Add</literal> + button on the Virtualhost Panel on the Broker tab of the second Broker.</para> + <orderedlist> + <listitem> + <para>Give the Virtualhost node a unique name e.g. + <literal>weather2</literal>.</para> + </listitem> + <listitem> + <para>Choose <literal>BDB_HA</literal> and choose <literal>Existing group</literal> + </para> + </listitem> + <listitem> + <para>Give the details of the <emphasis>existing node</emphasis>. Following our + example, specify <literal>weather</literal>, <literal>weather1</literal> and + <literal>thor:5000</literal></para> + </listitem> + <listitem> + <para>Give the address of this node.</para> + </listitem> + <listitem> + <para>Click Add to create the node. The node will use the existing details to + contact it and introduce itself into the group. At this stage, the group will have + two nodes, with the second node in the replica role.</para> + </listitem> + <listitem>Repeat these steps until you have added all the nodes to the + group.</listitem> + </orderedlist> + <para> + <figure> + <title>Adding subsequent nodes to the group</title> + <mediaobject> + <imageobject> + <imagedata fileref="images/HA-Create-2.png" format="PNG" scalefit="1"/> + </imageobject> + <textobject> + <phrase>Adding subsequent nodes to the group</phrase> + </textobject> + </mediaobject> + </figure> + </para> + </para> + </listitem> - <section role="h3" id="Java-Broker-High-Availability-TwoNodeCluster"> - <title>Two Node Cluster</title> - <section role="h4"> - <title>Overview</title> - <para>In this HA solution, a cluster is formed with two nodes. one node serves as - <emphasis role="bold">master</emphasis> and the other is a <emphasis role="bold">replica</emphasis>. - </para> - <para>All data and state required for the operation of the virtual host is automatically sent from the - master to the replica. This is called the replication stream. The master virtual host confirms each - message is on the replica before the client transaction completes. The exact way the client awaits - for the master and replica is gorverned by the <link linkend="Java-Broker-High-Availability-DurabilityGuarantee">durability</link> - configuration, which is discussed later. In this way, the replica remains ready to take over the - role of the master if the master becomes unavailable. - </para> - <para>It is important to note that there is an inherent limitation of two node clusters is that - the replica node cannot make itself master automatically in the event of master failure. This - is because the replica has no way to distinguish between a network partition (with potentially - the master still alive on the other side of the partition) and the case of genuine master failure. - (If the replica were to elect itself as master, the cluster would run the risk of a - <ulink url="http://en.wikipedia.org/wiki/Split-brain_(computing)">split-brain</ulink> scenario). - In the event of a master failure, a third party must designate the replica as primary. This process - is described in more detail later. - </para> - <para>Clients connect to the cluster using a <link linkend="Java-Broker-High-Availability-ClientFailover">failover url</link>. - This allows the client to maintain a connection to the master in a way that is transparent - to the client application.</para> - </section> - <section role="h4"> - <title>Depictions of cluster operation</title> - <para>In this section, the operation of the cluster is depicted through a series of figures - supported by explanatory text.</para> - <figure> - <title>Key for figures</title> + </orderedlist></para> + <para>The group is now formed and is ready for us. Looking at the virtualhost node of any of the + nodes shows a complete view of the whole group. <figure> + <title>View of group from one node</title> <mediaobject> <imageobject> - <imagedata fileref="images/HA-2N-Key.png" format="PNG" scalefit="1"/> + <imagedata fileref="images/HA-Create-3.png" format="PNG" scalefit="1"/> </imageobject> <textobject> - <phrase>Key to figures</phrase> + <phrase>View of group from one node</phrase> </textobject> </mediaobject> - </figure> - <section role="h5" id="Java-Broker-High-Availability-TwoNodeNormalOperation"> - <title>Normal Operation</title> - <para>The figure below illustrates normal operation. Clients connecting to the cluster by way - of the failover URL achieve a connection to the master. As clients perform work (message - production, consumption, queue creation etc), the master additionally sends this data to the - replica over the network.</para> - <figure> - <title>Normal operation of a two-node cluster</title> - <mediaobject> - <imageobject> - <imagedata fileref="images/HA-2N-Normal.png" format="PNG" scalefit="1"/> - </imageobject> - <textobject> - <phrase>Normal operation</phrase> - </textobject> - </mediaobject> - </figure> - </section> - <section role="h5" id="Java-Broker-High-Availability-TwoNodeMasterFailure"> - <title>Master Failure and Recovery</title> - <para>The figure below illustrates a sequence of events whereby the master suffers a failure - and the replica is made the master to allow the clients to continue to work. Later the - old master is repaired and comes back on-line in replica role.</para> - <para>The item numbers in this list apply to the numbered boxes in the figure below.</para> - <orderedlist> - <listitem> - <para>System operating normally</para> - </listitem> - <listitem> - <para>Master suffers a failure and disconnects all clients. Replica realises that it is no - longer in contact with master. Clients begin to try to reconnect to the cluster, although these - connection attempts will fail at this point.</para> - </listitem> + </figure></para> + </section> + + <section id="Java-Broker-High-Availability-Behaviour"> + <title>Behaviour of the Group</title> + <para>This section first describes the behaviour of the group in its default configuration. It + then goes on to talk about the various controls that are available to override it. It + describes the controls available that affect the <ulink + url="http://en.wikipedia.org/wiki/ACID#Durability">durability</ulink> of transactions and + the data consistency between the master and replicas and thus make trade offs between + performance and reliability.</para> + + <section id="Java-Broker-High-Availability-Behaviour-Default-Behaviour"> + <title>Default Behaviour</title> + <para>Let's first look at the behaviour of a group in default configuration.</para> + <para>In the default configuration, for any messaging work to be done, there must be at least + <emphasis>quorum</emphasis> nodes present. This means for example, in a three node group, + this means there must be at least two nodes available.</para> + <para>When a messaging client sends a transaction, it can be assured that, before the control + returns back to his application after the commit call that the following is true:</para> + <para><itemizedlist> <listitem> - <para>A third-party (an operator, a script or a combination of the two) verifies that the master has truely - failed <emphasis role="bold">and is no longer running</emphasis>. If it has truely failed, the decision is made - to designate the replica as primary, allowing it to assume the role of master despite the other node being down. - This primary designation is performed using <link linkend="Java-Broker-High-Availability-JMXAPI">JMX</link>.</para> + <para>At the master, the transaction is <emphasis>written to disk and OS level caches + are flushed</emphasis> meaning the data is on the storage device.</para> </listitem> <listitem> - <para>Client connections to the new master succeed and the <emphasis role="bold">service is restored - </emphasis>, albeit without a replica.</para> + <para>At least quorum minus 1 replicas, <emphasis>acknowledge the receipt of + transaction</emphasis>. The replicas will write the data to the storage device + sometime later.</para> </listitem> + </itemizedlist></para> + <para>If there were to be a master failure immediately after the transaction was committed, + the transaction would be held by at least quorum minus one replicas. For example, if we + had a group of three, then we would be assured that at least one replica held the + transaction.</para> + + <para>In the event of a master failure, if quorum nodes remain, those nodes hold an election. + The nodes will elect master the node with the most recent transaction. If two or more nodes + have the most recent transaction the group makes an arbitrary choice. If quorum number of + nodes does not remain, the nodes cannot elect a new master and will wait until nodes rejoin. + You will see later that manual controls are available allow service to be restored from + fewer than quorum nodes and to influence which node gets elected in the event of a + tie.</para> + + <para>Whenever a group has fewer than quorum nodes present, the virtualhost will be unavailable + and messaging connections will be refused. If quorum disappears at the very moment a + messaging client sends a transaction that transaction will fail.</para> + + <para>You will have noticed the difference in the synchronization policies applied the master + and the replicas. The replicas send the acknowledgement back before the data is written to + disk. The master synchronously writes the transaction to storage. This is an example of a + trade off between durability and performance. We will see more about how to control this + trade off later.</para> + </section> + <section id="Java-Broker-High-Availability-Behaviour-SynchronizationPolicy"> + <title>Synchronization Policy</title> + <para>The <emphasis>synchronization policy</emphasis> dictates what a node must do when it + receives a transaction before it acknowledges that transaction to the rest of the + group.</para> + <para>The following options are available: <itemizedlist> <listitem> - <para>The old master is repaired and brought back on-line. It automatically rejoins the cluster - in the <emphasis role="bold">replica</emphasis> role.</para> + <para><emphasis>SYNC</emphasis>. The node must write the transaction to disk and flush + any OS level buffers before sending the acknowledgement. SYNC is offers the highest + durability but offers the least performance.</para> </listitem> - </orderedlist> - <figure> - <title>Failure of master and recovery sequence</title> - <mediaobject> - <imageobject> - <imagedata fileref="images/HA-2N-MasterFail.png" format="PNG" scalefit="1"/> - </imageobject> - <textobject> - <phrase>Failure of master and subsequent recovery sequence</phrase> - </textobject> - </mediaobject> - </figure> - </section> - <section role="h5" id="Java-Broker-High-Availability-TwoNodeReplicaFailure"> - <title>Replica Failure and Recovery</title> - <para>The figure that follows illustrates a sequence of events whereby the replica suffers a failure - leaving the master to continue processing alone. Later the replica is repaired and is restarted. - It rejoins the cluster so that it is once again ready to take over in the event of master failure.</para> - <para>The behavior of the replica failure case is governed by the <varname>designatedPrimary</varname> - configuration item. If set true on the master, the master will continue to operate solo without outside - intervention when the replica fails. If false, a third-party must designate the master as primary in order - for it to continue solo.</para> - <para>The item numbers in this list apply to the numbered boxes in the figure below. This example assumes - that <varname>designatedPrimary</varname> is true on the original master node.</para> - <orderedlist> <listitem> - <para>System operating normally</para> + <para><emphasis>WRITE_NO_SYNC</emphasis>. The node must write the transaction to disk + before sending the acknowledgement. OS level buffers will be flush as some point + later. This typically provides an assurance against failure of the application but not + the operating system or hardware.</para> </listitem> <listitem> - <para>Replica suffers a failure. Master realises that replica longer in contact but as - <varname>designatedPrimary</varname> is true, master continues processing solo and thus client - connections are uninterrupted by the loss of the replica. System continues operating normally, albeit - with a single node.</para> + <para><emphasis>NO_SYNC</emphasis>. The node immediately sends the acknowledgement. The + transaction will be written and OS level buffers flushed as some point later. NO_SYNC + offers the highest performance but the lowest durability level. This synchronization + policy is sometimes known as <emphasis>commit to the network</emphasis>.</para> </listitem> + </itemizedlist></para> + <para>It is possible to assign a one policy to the master and a different policy to the + replicas. These are configured as <link + linkend="Java-Broker-Management-Managing-Virtualhost-Attributes">attributes on the + virtualhost</link>. By default the master uses <emphasis>SYNC</emphasis> and replicas use + <emphasis>NO_SYNC</emphasis>.</para> + </section> + <section id="Java-Broker-High-Availability-Behaviour-NodePriority"> + <title>Node Priority</title> + <para>Node priority can be used to influence the behaviour of the election algorithm. It is + useful in the case were you want to favour some nodes over others. For instance, if you wish + to favour nodes located in a particular data centre over those in a remote site. </para> + <para>The following options are available: <itemizedlist> <listitem> - <para>Replica is repaired.</para> + <para><emphasis>Highest</emphasis>. Nodes with this priority will be more favoured. In + the event of two or more nodes having the most recent transaction, the node with this + priority will be elected master. If two or more nodes have this priority the algorithm + will make an arbitrary choice.</para> </listitem> <listitem> - <para>After catching up with missed work, replica is once again ready to take over in the event of master failure.</para> + <para><emphasis>High</emphasis>. Nodes with this priority will be favoured but not as + much so as those with Highest.</para> </listitem> - </orderedlist> - <figure> - <title>Failure of replica and subsequent recovery sequence</title> - <mediaobject> - <imageobject> - <imagedata fileref="images/HA-2N-ReplicaFail.png" format="PNG" scalefit="1"/> - </imageobject> - <textobject> - <phrase>Failure of replica and subsequent recovery sequence</phrase> - </textobject> - </mediaobject> - </figure> - </section> - <section role="h5" id="Java-Broker-High-Availability-TwoNodeNetworkPartition"> - <title>Network Partition and Recovery</title> - <para>The figure below illustrates the sequence of events that would occur if the network between - master and replica were to suffer a partition, and the nodes were out of contact with one and other.</para> - <para>As with <link linkend="Java-Broker-High-Availability-TwoNodeReplicaFailure">Replica Failure and Recovery</link>, the - behaviour is governed by the <varname>designatedPrimary</varname>. - Only if <varname>designatedPrimary</varname> is true on the master, will the master continue solo.</para> - <para>The item numbers in this list apply to the numbered boxes in the figure below. This example assumes - that <varname>designatedPrimary</varname> is true on the original master node.</para> - <orderedlist> <listitem> - <para>System operating normally</para> + <para><emphasis>Normal</emphasis>. This is default election priority.</para> </listitem> <listitem> - <para>Network suffers a failure. Master realises that replica longer in contact but as - <varname>designatedPrimary</varname> is true, master continues processing solo and thus client - connections are uninterrupted by the network partition between master and replica.</para> + <para><emphasis>Never</emphasis>. The node will never be elected <emphasis>even if the + node has the most recent transaction</emphasis>. The node will still keep up to date + with the replication stream and will still vote itself, but can just never be + elected.</para> </listitem> + </itemizedlist> + </para> + <para>Node priority is configured as an <link + linkend="Java-Broker-Management-Managing-Virtualhost-Nodes-Attributes">attribute on the + virtualhost node</link> and can be changed at runtime and is effective immediately.</para> + <important> + <para>Use of the Never priority can lead to transaction loss. For example, consider a group + of three where replica-2 is marked as Never. If a transaction were to arrive and it be + acknowledged only by Master and Replica-2, the transaction would succeed. Replica 1 is + running behind for some reason (perhaps a full-GC). If a Master failure were to occur at + that moment, the replicas would elect Replica-1 even though Replica-2 had the most recent + transaction.</para> + </important> + </section> + <section id="Java-Broker-High-Availability-Behaviour-MinimumNumberOfNodes"> + <title>Required Minimum Number Of Nodes</title> + <para>This controls the required minimum number of nodes to complete a transaction and to + elect a new master. By default, the required number of nodes is set to + <emphasis>Default</emphasis> (which signifies quorum).</para> + <para>It is possible to reduce the required minimum number of nodes. The rationale for doing + this is normally to temporarily restore service from fewer than quorum nodes following an + extraordinary failure.</para> + <para>For example, consider a group of three. If one node were to fail, as quorum still + remained, the system would continue work without any intervention. If the failing node were + the master, a new master would be elected.</para> + <para>What if a further node were to fail? Quorum no longer remains, and the remaining node + would just wait. It cannot elect itself master. What if we wanted to restore service from + just this one node?</para> + <para>In this case, Required Number of Nodes can be reduced to 1 on the remain node, allowing + the node to elect itself and service to be restored from the singleton. Required minimum + number of nodes is configured as an <link + linkend="Java-Broker-Management-Managing-Virtualhost-Nodes-Attributes">attribute on the + virtualhost node</link> and can be changed at runtime and is effective immediately.</para> + <important> + <para>The attribute must be used cautiously. Careless use will lead to lost transactions and + can lead to a <ulink url="http://en.wikipedia.org/wiki/Split-brain_(computing)" + >split-brain</ulink> in the event of a network partition. If used to temporarily restore + service from fewer than quorum nodes, it is <emphasis>imperative</emphasis> to revert it + to the Default value as the failed nodes are restored.</para> + </important> + </section> + <section id="Java-Broker-High-Availability-Behaviour-DesignatedPrimary"> + <title>Designated Primary</title> + <para>This attribute applies to the groups of two only.</para> + <para> In a group of two, if a node were to fail then in default configuration work will cease + as quorum no longer exists. A single node cannot elect itself master. </para> + <para>The designated primary flag allows a node in a two node group to elect itself master and + to operate sole. Designated Primary is configured as an <link + linkend="Java-Broker-Management-Managing-Virtualhost-Nodes-Attributes">attribute on the + virtualhost node</link> and can be changed at runtime and is effective immediately.</para> + <para>For example, consider a group of two where the master fails. Service will be interrupted + as the remaining node cannot elect itself master. To allow it to become master, apply the + designated primary flag to it. It will elect itself master and work can continue, albeit + from one node.</para> + <important>It is imperative not to allow designated primary to be set on both nodes at once. + To do so will mean, in the event of a network partition, a <ulink + url="http://en.wikipedia.org/wiki/Split-brain_(computing)">split-brain</ulink> will occur. + </important> + </section> + </section> + <section id="Java-Broker-High-Availability-NodeOperations"> + <title>Node Operations</title> + <section id="Java-Broker-High-Availability-NodeOperations-Lifecycle"> + <title>Lifecycle</title> + <para>Virtualhost nodes can be stopped, started and deleted.</para> + <itemizedlist> + <listitem> + <para><emphasis>Stop</emphasis></para> + <para>Stopping a master node will cause the node to temporarily leave the group. Any + messaging clients will be disconnected and any in-flight transaction rollbacked. The + remaining nodes will elect a new master if quorum number of nodes still remains.</para> + <para>Stopping a replica node will cause the node to temporarily leave the group too. + Providing quorum still exists, the current master will continue without interruption. If + by leaving the group, quorum no longer exists, all the nodes will begin waiting, + disconnecting any messaging clients, and the virtualhost will become unavailable.</para> + <para>A stopped virtualhost node is still considered to be a member of the group.</para> + </listitem> + <listitem> + <para><emphasis>Start</emphasis></para> + <para>Starting a virtualhost node allows it to rejoin the group.</para> + <para>If the group already has a master, the node will catch up from the master and then + become a replica once it has done so.</para> + <para>If the group did not have quorum and so had no master, but the rejoining of this + node means quorum now exists, an election will take place. The node with the most up to + date transaction will become master unless influenced by the priority rules described + above.</para> + <note> + <para>The length of time taken to catch up will depend on how long the node has been + stopped. The worst case is where the node has been stopped for more than one hour. In + this case, the master will perform an automated <literal>network restore</literal>. + This involves streaming all the data held by the master over to the replica. This + could take considerable time.</para> + </note> + </listitem> + <listitem> + <para><emphasis>Delete</emphasis></para> + <para>A virtualhost node can be deleted. Deleting a node permanently removes the node + from the group. The data stored locally is removed but this does not affect the data + held by the remainder of the group.</para> + <note> + <para>The names of deleted virtualhost node cannot be reused within a group.</para> + </note> + </listitem> + </itemizedlist> + <para>It is also possible to add nodes to an existing group using the procedure described + above.</para> + </section> + <section id="Java-Broker-High-Availability-NodeOperations-TransferMaster"> + <title>Transfer Master</title> + <para>This operation allows the mastership to be moved from node to node. This is useful for + restoring a business as usual state after a failure.</para> + <para>When using this function, the following occurs. <orderedlist> <listitem> - <para>Network is repaired.</para> + <para>The system first gives time for the chosen new master to become reasonable up to + date. </para> </listitem> <listitem> - <para>After catching up with missed work, replica is once again ready to take over in the event of master failure. - System operating normally again.</para> + <para>It then suspends transactions on the old master and allows the chosen node to + become up to date.</para> </listitem> - </orderedlist> - <figure> - <title>Partition of the network separating master and replica</title> - <mediaobject> - <imageobject> - <imagedata fileref="images/HA-2N-NetworkPartition.png" format="PNG" scalefit="1"/> - </imageobject> - <textobject> - <phrase>Network Partition and Recovery</phrase> - </textobject> - </mediaobject> - </figure> - </section> - <section role="h5" id="Java-Broker-High-Availability-TwoNodeSplitBrain"> - <title>Split Brain</title> - <para>A <ulink url="http://en.wikipedia.org/wiki/Split-brain_(computing)">split-brain</ulink> - is a situation where the two node cluster has two masters. BDB normally strives to prevent - this situation arising by preventing two nodes in a cluster being master at the same time. - However, if the network suffers a partition, and the third-party intervenes incorrectly - and makes the replica a second master a split-brain will be formed and both masters will - proceed to perform work <emphasis role="bold">independently</emphasis> of one and other.</para> - <para>There is no automatic recovery from a split-brain.</para> - <para>Manual intervention will be required to choose which store will be retained as master - and which will be discarded. Manual intervention will be required to identify and repeat the - lost business transactions.</para> - <para>The item numbers in this list apply to the numbered boxes in the figure below.</para> - <orderedlist> <listitem> - <para>System operating normally</para> + <para>The suspended transactions are aborted and any messaging clients connected to the + old master are disconnected.</para> </listitem> <listitem> - <para>Network suffers a failure. Master realises that replica longer in contact but as - <varname>designatedPrimary</varname> is true, master continues processing solo. Client - connections are uninterrupted by the network partition.</para> - <para>A third-party <emphasis role="bold">erroneously</emphasis> designates the replica as primary while the - original master continues running (now solo).</para> + <para>The chosen master becomes the new master. The old master becomes a replica.</para> </listitem> <listitem> - <para>As the nodes cannot see one and other, both behave as masters. Clients may perform work against - both master nodes.</para> + <para>Messaging clients reconnect the new master.</para> </listitem> - </orderedlist> - <figure> - <title>Split Brain</title> - <mediaobject> - <imageobject> - <imagedata fileref="images/HA-2N-SplitBrain.png" format="PNG" scalefit="1"/> - </imageobject> - <textobject> - <phrase>Split Brain</phrase> - </textobject> - </mediaobject> - </figure> - </section> - </section> - </section> - - <section role="h3" id="Java-Broker-High-Availability-MultiNodeCluster"> - <title>Multi Node Cluster</title> - <para>Multi node clusters are now supported. TODO expand</para> - </section> - - <section role="h3" id="Java-Broker-High-Availability-Creating-A-Grouop"> - <title>Creating a Group</title> - <para>TODO</para> - </section> - <section role="h3" id="Java-Broker-High-Availability-DurabilityGuarantee"> - <title>Durability Guarantees</title> - <para>The term <ulink url="http://en.wikipedia.org/wiki/ACID#Durability">durability</ulink> is used to mean that once a - transaction is committed, it remains committed regardless of subsequent failures. A highly durable system is one where - loss of a committed transaction is extermely unlikely, whereas with a less durable system loss of a transaction is likely - in a greater number of scenarios. Typically, the more highly durable a system the slower and more costly it will be.</para> - <para>Qpid exposes the all the - <ulink url="&oracleBdbRepGuideUrl;txn-management.html#durabilitycontrols">durability controls</ulink> - offered by by BDB JE JA and a Qpid specific optimisation called <emphasis role="bold">coalescing-sync</emphasis> which defaults - to enabled.</para> - <section role="h4" id="Java-Broker-High-Availability-DurabilityGuarantee_BDBControls"> - <title>BDB Durability Controls</title> - <para>BDB expresses durability as a triplet with the following form:</para> - <programlisting><![CDATA[<master sync policy>,<replica sync policy>,<replica acknowledgement policy>]]></programlisting> - <para>The sync polices controls whether the thread performing the committing thread awaits the successful completion of the - write, or the write and sync before continuing. The master sync policy and replica sync policy need not be the same.</para> - <para>For master and replic sync policies, the available values are: - <ulink url="&oracleBdbJavaDocUrl;com/sleepycat/je/Durability.SyncPolicy.html#SYNC">SYNC</ulink>, - <ulink url="&oracleBdbJavaDocUrl;com/sleepycat/je/Durability.SyncPolicy.html#WRITE_NO_SYNC">WRITE_NO_SYNC</ulink>, - <ulink url="&oracleBdbJavaDocUrl;com/sleepycat/je/Durability.SyncPolicy.html#NO_SYNC">NO_SYNC</ulink>. SYNC - is offers the highest durability whereas NO_SYNC the lowest.</para> - <para>Note: the combination of a master sync policy of SYNC and <link linkend="Java-Broker-High-Availability-DurabilityGuarantee_CoalescingSync">coalescing-sync</link> - true would result in poor performance with no corresponding increase in durability guarantee. It cannot not be used.</para> - <para>The acknowledgement policy defines whether when a master commits a transaction, it also awaits for the replica(s) to - commit the same transaction before continuing. For the two-node case, ALL and SIMPLE_MAJORITY are equal.</para> - <para>For acknowledgement policy, the available value are: - <ulink url="&oracleBdbJavaDocUrl;com/sleepycat/je/Durability.ReplicaAckPolicy.html#ALL">ALL</ulink>, - <ulink url="&oracleBdbJavaDocUrl;com/sleepycat/je/Durability.ReplicaAckPolicy.html#SIMPLE_MAJORITY">SIMPLE_MAJORITY</ulink> - <ulink url="&oracleBdbJavaDocUrl;com/sleepycat/je/Durability.ReplicaAckPolicy.html#NONE">NONE</ulink>.</para> - </section> - <section role="h4" id="Java-Broker-High-Availability-DurabilityGuarantee_CoalescingSync"> - <title>Coalescing-sync</title> - <para>If enabled (the default) Qpid works to reduce the number of separate - <ulink url="&oracleJdkDocUrl;java/io/FileDescriptor.html#sync()">file-system sync</ulink> operations - performed by the <emphasis role="bold">master</emphasis> on the underlying storage device thus improving performance. It does - this coalescing separate sync operations arising from the different client commits operations occuring at approximately the same time. - It does this in such a manner not to reduce the ACID guarantees of the system.</para> - <para>Coalescing-sync has no effect on the behaviour of the replicas.</para> - </section> - <section role="h4" id="Java-Broker-High-Availability-DurabilityGuarantee_Default"> - <title>Default</title> - <para>The default durability guarantee is <constant>NO_SYNC, NO_SYNC, SIMPLE_MAJORITY</constant> with coalescing-sync enabled. The effect - of this combination is described in the table below. It offers a good compromise between durability guarantee and performance - with writes being guaranteed on the master and the additional guarantee that a majority of replicas have received the - transaction.</para> - </section> - <section role="h4" id="Java-Broker-High-Availability-DurabilityGuarantee_Examples"> - <title>Examples</title> - <para>Here are some examples illustrating the effects of the durability and coalescing-sync settings.</para> - <para> - <table> - <title>Effect of different durability guarantees</title> - <tgroup cols="4"> - <thead> - <row> - <entry/> - <entry>Durability</entry> - <entry>Coalescing-sync</entry> - <entry>Description</entry> - </row> - </thead> - <tbody> - <row> - <entry>1</entry> - <entry>NO_SYNC, NO_SYNC, SIMPLE_MAJORITY</entry> - <entry>true</entry> - <entry>Before the commit returns to the client, the transaction will be written/sync'd to the Master's disk (effect of - coalescing-sync) and a majority of the replica(s) will have acknowledged the <emphasis role="bold">receipt</emphasis> - of the transaction. The replicas will write and sync the transaction to their disk at a point in the future governed by - <ulink url="&oracleBdbJavaDocUrl;com/sleepycat/je/rep/ReplicationMutableConfig.html#LOG_FLUSH_TASK_INTERVAL">ReplicationMutableConfig#LOG_FLUSH_INTERVAL</ulink>. - </entry> - </row> - <row> - <entry>2</entry> - <entry>NO_SYNC, WRITE_NO_SYNC, SIMPLE_MAJORITY</entry> - <entry>true</entry> - <entry>Before the commit returns to the client, the transaction will be written/sync'd to the Master's disk (effect of - coalescing-sync and a majority of the replica(s) will have acknowledged the <emphasis role="bold">write</emphasis> of - the transaction to their disk. The replicas will sync the transaction to disk at a point in the future with an upper bound governed by - ReplicationMutableConfig#LOG_FLUSH_INTERVAL.</entry> - </row> - <row> - <entry>3</entry> - <entry>NO_SYNC, NO_SYNC, NONE</entry> - <entry>false</entry> - <entry>After the commit returns to the client, the transaction is neither guaranteed to be written to the disk of the master - nor received by any of the replicas. The master and replicas will write and sync the transaction to their disk at a point - in the future with an upper bound governed by ReplicationMutableConfig#LOG_FLUSH_INTERVAL. This offers the weakest durability guarantee.</entry> - </row> - </tbody> - </tgroup> - </table> - </para> + </orderedlist></para> </section> </section> <section id="Java-Broker-High-Availability-ClientFailover"> - <title>Client failover configuration</title> - <para>The details about format of Qpid connection URLs can be found at section - <ulink url="&qpidjmsdocClientConectionUrl;">Connection URLs</ulink> within the client documentation.</para> - <para>The failover policy option in the connection URL for the HA Cluster should be set to <emphasis>roundrobin</emphasis>. - The Master broker should be put into a first place in <emphasis>brokerlist</emphasis> URL option. - The recommended value for <emphasis>connectdelay</emphasis> option in broker URL should be set to - the value greater than 1000 milliseconds. If it is desired that clients re-connect automatically after a - master to replica failure, <varname>cyclecount</varname> should be tuned so that the retry period is longer than - the expected length of time to perform the failover.</para> - <example><title>Example of connection URL for the HA Cluster</title><para><![CDATA[ -amqp://guest:guest@clientid/test?brokerlist='tcp://localhost:5672?connectdelay='2000'&retries='3';tcp://localhost:5671?connectdelay='2000'&retries='3';tcp://localhost:5673?connectdelay='2000'&retries='3''&failover='roundrobin?cyclecount='30'' - ]]></para></example> + <title>Client failover</title> + <para>As mentioned above, the clients need to be able to find the location of the active + virtualhost within the group.</para> + <para>Clients can do this using a static technique, for example , utilising the <ulink + url="&qpidjmsdocClientConectionUrl;">failover feature of the Qpid connection url</ulink> + where the client has a list of all the nodes, and tries each node in sequence until it + discovers the node with the active virtualhost.</para> + <para>Another possibility is a dynamic technique utilising a proxy or Virtual IP (VIP). These + require other software and/or hardware and are outside the scope of this document.</para> </section> - - <section role="h3" id="Java-Broker-High-Availability-JMXAPI"> <title>Qpid JMX API for HA</title> - <para>Qpid exposes the BDB HA store information via its JMX interface and provides APIs to remove a Node from - the group, update a Node IP address, and assign a Node as the designated primary.</para> - <para>An instance of the <classname>BDBHAMessageStore</classname> MBean is instantiated by the broker for the each virtualhost using the HA store.</para> - <para>The reference to this MBean can be obtained via JMX API using an ObjectName like <emphasis>org.apache.qpid:type=BDBHAMessageStore,name="<virtualhost name>"</emphasis> - where <virtualhost name> is the name of a specific virtualhost on the broker.</para> - <table border="1"> - <title>Mbean <classname>BDBHAMessageStore</classname> attributes</title> - <thead> - <tr> - <td>Name</td> - <td>Type</td> - <td>Accessibility</td> - <td>Description</td> - </tr> - </thead> - <tbody> - <tr> - <td>GroupName</td> - <td>String</td> - <td>Read only</td> - <td>Name identifying the group</td> - </tr> - <tr> - <td>NodeName</td> - <td>String</td> - <td>Read only</td> - <td>Unique name identifying the node within the group</td> - </tr> - <tr> - <td>NodeHostPort</td> - <td>String</td> - <td>Read only</td> - <td>Host/port used to replicate data between this node and others in the group</td> - </tr> - <tr> - <td>HelperHostPort</td> - <td>String</td> - <td>Read only</td> - <td>Host/port used to allow a new node to discover other group members</td> - </tr> - <tr> - <td>NodeState</td> - <td>String</td> - <td>Read only</td> - <td>Current state of the node</td> - </tr> - <tr> - <td>ReplicationPolicy</td> - <td>String</td> - <td>Read only</td> - <td>Node replication durability</td> - </tr> - <tr id="JMXDesignatedPrimary"> - <td>DesignatedPrimary</td> - <td>boolean</td> - <td>Read/Write</td> - <td>Designated primary flag. Applicable to the two node case.</td> - </tr> - <tr> - <td>CoalescingSync</td> - <td>boolean</td> - <td>Read only</td> - <td>Coalescing sync flag. Applicable to the master sync policies NO_SYNC and WRITE_NO_SYNC only.</td> - </tr> - <tr> - <td>getAllNodesInGroup</td> - <td>TabularData</td> - <td>Read only</td> - <td>Get all nodes within the group, regardless of whether currently attached or not</td> - </tr> - </tbody> - </table> - - <table border="1"> - <title>Mbean <classname>BDBHAMessageStore</classname> operations</title> - <thead> - <tr> - <td>Operation</td> - <td>Parameters</td> - <td>Returns</td> - <td>Description</td> - </tr> - </thead> - <tbody> - <tr> - <td>removeNodeFromGroup</td> - <td> - <para><emphasis>nodeName</emphasis>, name of node, string</para> - </td> - <td>void</td> - <td>Remove an existing node from the group</td> - </tr> - <tr> - <td>updateAddress</td> - <td> - <itemizedlist> - <listitem> - <para><emphasis>nodeName</emphasis>, name of node, string</para> - </listitem> - <listitem> - <para><emphasis>newHostName</emphasis>, new host name, string</para> - </listitem> - <listitem> - <para><emphasis>newPort</emphasis>, new port number, int</para> - </listitem> - </itemizedlist> - </td> - <td>void</td> - <td>Update the address of another node. The node must be in a STOPPED state.</td> - </tr> - </tbody> - </table> - <figure> - <title>BDBHAMessageStore view from jconsole.</title> - <graphic fileref="images/HA-BDBHAMessageStore-MBean-jconsole.png"/> - </figure> - <example> - <title>Example of java code to get the node state value</title> - <programlisting language="java"><![CDATA[ -Map<String, Object> environment = new HashMap<String, Object>(); - -// credentials: user name and password -environment.put(JMXConnector.CREDENTIALS, new String[] {"admin","admin"}); -JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:9001/jmxrmi"); -JMXConnector jmxConnector = JMXConnectorFactory.connect(url, environment); -MBeanServerConnection mbsc = jmxConnector.getMBeanServerConnection(); - -ObjectName queueObjectName = new ObjectName("org.apache.qpid:type=BDBHAMessageStore,name=\"test\""); -String state = (String)mbsc.getAttribute(queueObjectName, "NodeState"); - -System.out.println("Node state:" + state); - ]]></programlisting> - <para>Example system output:</para> - <screen><![CDATA[Node state:MASTER]]></screen> - </example> - </section> - - <section id="Java-Broker-High-Availability-Monitoring-cluster"> - <title>Monitoring cluster</title> - <para>In order to discover potential issues with HA Cluster early, all nodes in the Cluster should be monitored on regular basis - using the following techniques:</para> - <itemizedlist> - <listitem> - <para>Broker log files scrapping for WARN or ERROR entries and operational log entries like:</para> - <itemizedlist> - <listitem> - <para><emphasis>MST-1007 :</emphasis> Store Passivated. It can indicate that Master virtual host has gone down.</para> - </listitem> - <listitem> - <para><emphasis>MST-1006 :</emphasis> Recovery Complete. It can indicate that a former Replica virtual host is up and became the Master.</para> - </listitem> - </itemizedlist> - </listitem> - <listitem> - <para>Disk space usage and system load using system tools.</para> - </listitem> - <listitem> - <para>Berkeley HA node status using <ulink url="&oracleBdbJavaDocUrl;com/sleepycat/je/rep/util/DbPing.html"><classname>DbPing</classname></ulink> utility.</para> - <example><title>Using <classname>DbPing</classname> utility for monitoring HA nodes.</title><command> -java -jar je-&oracleBdbProductVersion;.jar DbPing -groupName TestClusterGroup -nodeName Node-5001 -nodeHost localhost:5001 -socketTimeout 10000 -</command><screen> -Current state of node: Node-5001 from group: TestClusterGroup - Current state: MASTER - Current master: Node-5001 - Current JE version: &oracleBdbProductVersion; - Current log version: 8 - Current transaction end (abort or commit) VLSN: 165 - Current master transaction end (abort or commit) VLSN: 0 - Current active feeders on node: 0 - Current system load average: 0.35 -</screen></example> - <para>In the example above <classname>DbPing</classname> utility requested status of Cluster node with name - <emphasis>Node-5001</emphasis> from replication group <emphasis>TestClusterGroup</emphasis> running on host <emphasis>localhost:5001</emphasis>. - The state of the node was reported into a system output. - </para> - </listitem> - <listitem> - <para>Using Qpid broker JMX interfaces.</para> - <para>Mbean <classname>BDBHAMessageStore</classname> can be used to request the following node information:</para> - <itemizedlist> - <listitem> - <para><emphasis>NodeState</emphasis> indicates whether node is a Master or Replica.</para> - </listitem> - <listitem> - <para><emphasis>Durability</emphasis> replication durability.</para> - </listitem> - <listitem> - <para><emphasis>DesignatedPrimary</emphasis> indicates whether Master node is designated primary.</para> - </listitem> - <listitem> - <para><emphasis>GroupName</emphasis> replication group name.</para> - </listitem> - <listitem> - <para><emphasis>NodeName</emphasis> node name.</para> - </listitem> - <listitem> - <para><emphasis>NodeHostPort</emphasis> node host and port.</para> - </listitem> - <listitem> - <para><emphasis>HelperHostPort</emphasis> helper host and port.</para> - </listitem> - <listitem> - <para><emphasis>AllNodesInGroup</emphasis> lists of all nodes in the replication group including their names, hosts and ports.</para> - </listitem> - </itemizedlist> - <para>For more details about <classname>BDBHAMessageStore</classname> MBean please refer section <link linkend="Java-Broker-High-Availability-JMXAPI">Qpid JMX API for HA</link></para> - </listitem> - </itemizedlist> + <para>The Qpid JMX API for HA is now deprecated. New users are recommended to use the REST + API.</para> </section> <section id="Java-Broker-High-Availability-DiskSpace"> <title>Disk space requirements</title> - <para>Disk space is a critical resource for the HA Qpid broker.</para> - <para>In case when a Replica goes down (or falls behind the Master in 2 node cluster where the Master is designated primary) - and the Master continues running, the non-replicated store files are kept on the Masters disk for the period of time - as specified in <emphasis>je.rep.repStreamTimeout</emphasis> JE setting in order to replicate this data later - when the Replica is back. This setting is set to 1 hour by default by the broker.</para> - <para>Depending from the application publishing/consuming rates and message sizes, - the disk space might become overfull during this period of time due to preserved logs. - Please, make sure to allocate enough space on your disk to avoid this from happening. - </para> + <para>In the case where node in a group are down, the master must keep the data they are missing + for them to allow them to return to the replica role quickly.</para> + <para>By default, the master will retain up to 1hour of missed transactions. In a busy + production system, the disk space occupied could be considerable.</para> + <para>This setting is controlled by virtualhost context variable + <literal>je.rep.repStreamTimeout</literal>.</para> </section> <section id="Java-Broker-High-Availability-Network-Requirements"> <title>Network Requirements</title> - <para>The HA Cluster performance depends on the network bandwidth, its use by existing traffic, and quality of service.</para> - <para>In order to achieve the best performance it is recommended to use a separate network infrastructure for the Qpid HA Nodes - which might include installation of dedicated network hardware on Broker hosts, assigning a higher priority to replication ports, - installing a cluster in a separate network not impacted by any other traffic.</para> + <para>The HA Cluster performance depends on the network bandwidth, its use by existing traffic, + and quality of service.</para> + <para>In order to achieve the best performance it is recommended to use a separate network + infrastructure for the Qpid HA Nodes which might include installation of dedicated network + hardware on Broker hosts, assigning a higher priority to replication ports, installing a group + in a separate network not impacted by any other traffic.</para> </section> <section id="Java-Broker-High-Availability-Security"> <title>Security</title> - <para>At the moment Berkeley replication API supports only TCP/IP protocol to transfer replication data between Master and Replicas.</para> - <para>As result, the replicated data is unprotected and can be intercepted by anyone having access to the replication network.</para> - <para>Also, anyone who can access to this network can introduce a new node and therefore receive a copy of the data.</para> - <para>In order to reduce the security risks the entire HA cluster is recommended to run in a separate network protected from general access.</para> + <para>The replication stream between the master and the replicas is insecure and can be + intercepted by anyone having access to the replication network.</para> + <para>In order to reduce the security risks the entire HA group is recommended to run in a + separate network protected from general access and/or utilise SSH-tunnels/IPsec.</para> </section> <section id="Java-Broker-High-Availability-Backup"> <title>Backups</title> - <para>In order to protect the entire cluster from some cataclysms which might destroy all cluster nodes, - backups of the Master store should be taken on a regular basis.</para> - <para>Qpid Broker distribution includes the "hot" backup utility <emphasis>backup.sh</emphasis> which can be found at broker bin folder. - This utility can perform the backup when broker is running.</para> - <para><emphasis>backup.sh</emphasis> script invokes <classname>org.apache.qpid.server.store.berkeleydb.BDBBackup</classname> to do the job.</para> - <para>You can also run this class from command line like in an example below:</para> - <example><title>Performing store backup by using <classname>BDBBackup</classname> class directly</title><command> - java -cp qpid-bdbstore-&qpidCurrentRelease;.jar org.apache.qpid.server.store.berkeleydb.BDBBackup -fromdir path/to/store/folder -todir path/to/backup/folder</command> - </example> - <para>In the example above BDBBackup utility is called from qpid-bdbstore-&qpidCurrentRelease;.jar to backup the store at <emphasis>path/to/store/folder</emphasis> and copy store logs into <emphasis>path/to/backup/folder</emphasis>.</para> - <para>Linux and Unix users can take advantage of <emphasis>backup.sh</emphasis> bash script by running this script in a similar way.</para> - <example><title>Performing store backup by using <classname>backup.sh</classname> bash script</title> - <command>backup.sh -fromdir path/to/store/folder -todir path/to/backup/folder</command> - </example> - <note> - <para>Do not forget to ensure that the Master store is being backed up, in the event the Node elected Master changes during - the lifecycle of the cluster.</para> - </note> + <para>It is recommend to use the hot backup script to periodically backup every node in the + group. <xref linkend="Java-Broker-Backup-And-Recovery-Virtualhost-Node-BDB-HA"/>.</para> </section> - <section id="Java-Broker-High-Availability-MigrationFromNonHA"> - <title>Migration of a non-HA store to HA</title> - <para>Non HA stores starting from schema version 4 (0.14 Qpid release) can be automatically converted into HA store on broker startup if replication is first enabled with the <ulink url="&oracleBdbJavaDocUrl;com/sleepycat/je/rep/util/DbEnableReplication.html"><classname>DbEnableReplication</classname></ulink> utility from the BDB JE jar.</para> - <para>DbEnableReplication converts a non HA store into an HA store and can be used as follows:</para> - <example><title>Enabling replication</title><command> -java -jar je-&oracleBdbProductVersion;.jar DbEnableReplication -h /path/to/store -groupName MyReplicationGroup -nodeName MyNode1 -nodeHostPort localhost:5001 - </command></example> - <para>In the examples above, je jar of version &oracleBdbProductVersion; is used to convert store at <emphasis>/path/to/store</emphasis> into HA store having replication group name <emphasis>MyReplicationGroup</emphasis>, node name <emphasis>MyNode1</emphasis> and running on host <emphasis>localhost</emphasis> and port <emphasis>5001</emphasis>.</para> - <para>After running DbEnableReplication and updating the virtual host store to configuration to be an HA message store, like in example below, - on broker start up the store schema will be upgraded to the most recent version and the broker can be used as normal.</para> + + <section id="Java-Broker-High-Availability-Reset-Group-Infomational"> + <title>Reset Group Information</title> + <para>BDB JE internally stores details of the group within its database. There are some + circumstances when resetting this information is useful.<itemizedlist> + <listitem> + <para>Copying data between environments (e.g. production to UAT)</para> + </listitem> + <listitem> + <para>Some disaster recovery situations where a group must be recreated on new + hardware</para> + </listitem> + </itemizedlist></para> + <para>This is not an normal operation and is not usually required</para> + <para>The following command replaces the group table contained within the JE logs files with the + provided information. </para> <example> - <title>Example of XML configuration for HA message store</title> - <programlisting language="xml"><![CDATA[ -<store> - <class>org.apache.qpid.server.store.berkeleydb.BDBHAMessageStore</class> - <environment-path>/path/to/store</environment-path> - <highAvailability> - <groupName>MyReplicationGroup</groupName> - <nodeName>MyNode1</nodeName> - <nodeHostPort>localhost:5001</nodeHostPort> - <helperHostPort>localhost:5001</helperHostPort> - </highAvailability> -</store>]]></programlisting> + <title>Resetting of replication group with <classname>DbResetRepGroup</classname></title> + <command>java -cp je-&oracleBdbProductVersion;.jar com.sleepycat.je.rep.util.DbResetRepGroup + -h path/to/jelogfiles -groupName newgroupname -nodeName nodename -nodeHostPort + thor:5000</command> </example> - <para>The Replica nodes can be started with empty stores. The data will be automatically copied from Master to Replica on Replica start-up. - This will take a period of time determined by the size of the Masters store and the network bandwidth between the nodes.</para> - <note> - <para>Due to existing caveats in Berkeley JE with copying of data from Master into Replica it is recommended to restart the Master node after store schema upgrade is finished before starting the Replica nodes.</para> - </note> - </section> - - <section id="Java-Broker-High-Availability-DisasterRecovery"> - <title>Disaster Recovery</title> - <para>This section describes the steps required to restore HA broker cluster from backup.</para> - <para>The detailed instructions how to perform backup on replicated environment can be found <link linkend="Java-Broker-High-Availability-Backup">here</link>.</para> - <para>At this point we assume that backups are collected on regular basis from Master node.</para> - <para>Replication configuration of a cluster is stored internally in HA message store. - This information includes IP addresses of the nodes. - In case when HA message store needs to be restored on a different host with a different IP address - the cluster replication configuration should be reseted in this case</para> - <para>Oracle provides a command line utility <ulink url="&oracleBdbJavaDocUrl;com/sleepycat/je/rep/util/DbResetRepGroup.html"><classname>DbResetRepGroup</classname></ulink> - to reset the members of a replication group and replace the group with a new group consisting of a single new member - as described by the arguments supplied to the utility</para> - <para>Cluster can be restored with the following steps:</para> - <itemizedlist> - <listitem><para>Copy log files into the store folder from backup</para></listitem> - <listitem> - <para>Use <classname>DbResetRepGroup</classname> to reset an existing environment. See an example below</para> - <example> - <title>Reseting of replication group with <classname>DbResetRepGroup</classname></title><command> -java -cp je-&oracleBdbProductVersion;.jar com.sleepycat.je.rep.util.DbResetRepGroup -h ha-work/Node-5001/bdbstore -groupName TestClusterGroup -nodeName Node-5001 -nodeHostPort localhost:5001</command> - </example> - <para>In the example above <classname>DbResetRepGroup</classname> utility from Berkeley JE of version &oracleBdbProductVersion; is used to reset the store - at location <emphasis>ha-work/Node-5001/bdbstore</emphasis> and set a replication group to <emphasis>TestClusterGroup</emphasis> - having a node <emphasis>Node-5001</emphasis> which runs at <emphasis>localhost:5001</emphasis>.</para> - </listitem> - <listitem><para>Start a broker with HA store configured as specified on running of <classname>DbResetRepGroup</classname> utility.</para></listitem> - <listitem><para>Start replica nodes having the same replication group and a helper host port pointing to a new master. The store content will be copied into Replicas from Master on their start up.</para></listitem> - </itemizedlist> - </section> - - <section id="Java-Broker-High-Availability-Performance"> - <title>Performance</title> - <para>The aim of this section is not to provide exact performance metrics relating to HA, as this depends heavily on the test - environment, but rather showing an impact of HA on Qpid broker performance in comparison with the Non HA case.</para> - <para>For testing of impact of HA on a broker performance a special test script was written using Qpid performance test framework. - The script opened a number of connections to the Qpid broker, created producers and consumers on separate connections, - and published test messages with concurrent producers into a test queue and consumed them with concurrent consumers. - The table below shows the number of producers/consumers used in the tests. - The overall throughput was collected for each configuration. - </para> - <table border="1"> - <title>Number of producers/consumers in performance tests</title> - <thead> - <tr> - <th>Test</th> - <th>Number of producers</th> - <th>Number of consumers</th> - </tr> - </thead> - <tbody> - <tr> - <td>1</td> - <td>1</td> - <td>1</td> - </tr> - <tr> - <td>2</td> - <td>2</td> - <td>2</td> - </tr> - <tr> - <td>3</td> - <td>4</td> - <td>4</td> - </tr> - <tr> - <td>4</td> - <td>8</td> - <td>8</td> - </tr> - <tr> - <td>5</td> - <td>16</td> - <td>16</td> - </tr> - <tr> - <td>6</td> - <td>32</td> - <td>32</td> - </tr> - <tr> - <td>7</td> - <td>64</td> - <td>64</td> - </tr> - </tbody> - </table> - <para>The test was run against the following Qpid Broker configurations</para> - <itemizedlist> - <listitem> - <para>Non HA Broker</para> - </listitem> - <listitem> - <para>HA 2 Nodes Cluster with durability <emphasis>SYNC,SYNC,ALL</emphasis></para> - </listitem> - <listitem> - <para>HA 2 Nodes Cluster with durability <emphasis>WRITE_NO_SYNC,WRITE_NO_SYNC,ALL</emphasis></para> - </listitem> - <listitem> - <para>HA 2 Nodes Cluster with durability <emphasis>WRITE_NO_SYNC,WRITE_NO_SYNC,ALL</emphasis> and <emphasis>coalescing-sync</emphasis> Qpid mode</para> - </listitem> - <listitem> - <para>HA 2 Nodes Cluster with durability <emphasis>WRITE_NO_SYNC,NO_SYNC,ALL</emphasis> and <emphasis>coalescing-sync</emphasis> Qpid mode</para> - </listitem> - <listitem> - <para>HA 2 Nodes Cluster with durability <emphasis>NO_SYNC,NO_SYNC,ALL</emphasis> and <emphasis>coalescing-sync</emphasis> Qpid option</para> - </listitem> - </itemizedlist> - <para>The evironment used in testing consisted of 2 servers with 4 CPU cores (2x Intel(r) Xeon(R) CPU 5150@2.66GHz), 4GB of RAM - and running under OS Red Hat Enterprise Linux AS release 4 (Nahant Update 4). Network bandwidth was 1Gbit. - </para> - <para>We ran Master node on the first server and Replica and clients(both consumers and producers) on the second server.</para> - <para>In non-HA case Qpid Broker was run on a first server and clients were run on a second server.</para> - <para>The table below contains the test results we measured on this environment for different Broker configurations.</para> - <para>Each result is represented by throughput value in KB/second and difference in % between HA configuration and non HA case for the same number of clients.</para> - <table border="1"> - <title>Performance Comparison</title> - <thead> - <tr> - <td>Test/Broker</td> - <td>No HA</td> - <td>SYNC, SYNC, ALL</td> - <td>WRITE_NO_SYNC, WRITE_NO_SYNC, ALL</td> - <td>WRITE_NO_SYNC, WRITE_NO_SYNC, ALL - coalescing-sync</td> - <td>WRITE_NO_SYNC, NO_SYNC,ALL - coalescing-sync</td> - <td>NO_SYNC, NO_SYNC, ALL - coalescing-sync</td> - </tr> - </thead> - <tbody> - <tr> - <td>1 (1/1)</td> - <td>0.0%</td> - <td>-61.4%</td> - <td>117.0%</td> - <td>-16.02%</td> - <td>-9.58%</td> - <td>-25.47%</td> - </tr> - <tr> - <td>2 (2/2)</td> - <td>0.0%</td> - <td>-75.43%</td> - <td>67.87%</td> - <td>-66.6%</td> - <td>-69.02%</td> - <td>-30.43%</td> - </tr> - <tr> - <td>3 (4/4)</td> - <td>0.0%</td> - <td>-84.89%</td> - <td>24.19%</td> - <td>-71.02%</td> - <td>-69.37%</td> - <td>-43.67%</td> - </tr> - <tr> - <td>4 (8/8)</td> - <td>0.0%</td> - <td>-91.17%</td> - <td>-22.97%</td> - <td>-82.32%</td> - <td>-83.42%</td> - <td>-55.5%</td> - </tr> - <tr> - <td>5 (16/16)</td> - <td>0.0%</td> - <td>-91.16%</td> - <td>-21.42%</td> - <td>-86.6%</td> - <td>-86.37%</td> - <td>-46.99%</td> - </tr> - <tr> - <td>6 (32/32)</td> - <td>0.0%</td> - <td>-94.83%</td> - <td>-51.51%</td> - <td>-92.15%</td> - <td>-92.02%</td> - <td>-57.59%</td> - </tr> - <tr> - <td>7 (64/64)</td> - <td>0.0%</td> - <td>-94.2%</td> - <td>-41.84%</td> - <td>-89.55%</td> - <td>-89.55%</td> - <td>-50.54%</td> - </tr> - </tbody> - </table> - <para>The figure below depicts the graphs for the performance test results</para> - <figure> - <title>Test results</title> - <graphic fileref="images/HA-perftests-results.png"/> - </figure> - <para>On using durability <emphasis>SYNC,SYNC,ALL</emphasis> (without coalescing-sync) the performance drops significantly (by 62-95%) in comparison with non HA broker.</para> - <para>Whilst, on using durability <emphasis>WRITE_NO_SYNC,WRITE_NO_SYNC,ALL</emphasis> (without coalescing-sync) the performance drops by only half, but with loss of durability guarantee, so is not recommended.</para> - <para>In order to have better performance with HA, Qpid Broker comes up with the special mode called <link linkend="Java-Broker-High-Availability-DurabilityGuarantee_CoalescingSync">coalescing-sync</link>, - With this mode enabled, Qpid broker batches the concurrent transaction commits and syncs transaction data into Master disk in one go. - As result, the HA performance only drops by 25-60% for durability <emphasis>NO_SYNC,NO_SYNC,ALL</emphasis> and by 10-90% for <emphasis>WRITE_NO_SYNC,WRITE_NO_SYNC,ALL</emphasis>.</para> + <para>The modified log files can then by copied into + <literal>${QPID_WORK}/<nodename>/config</literal> directory of a target Broker. Then + start the Broker, and add a BDB HA Virtualhost node specify the same group name, node name + and node address. You will then have a group with a single node, ready to start re-adding + additional nodes as described above. </para> </section> </chapter> diff --git a/qpid/doc/book/src/java-broker/Java-Broker-Initial-Configuration.xml b/qpid/doc/book/src/java-broker/Java-Broker-Initial-Configuration.xml index ccdce918c6..ce461d32d7 100644 --- a/qpid/doc/book/src/java-broker/Java-Broker-Initial-Configuration.xml +++ b/qpid/doc/book/src/java-broker/Java-Broker-Initial-Configuration.xml @@ -27,11 +27,11 @@ <section id="Java-Broker-Initial-Configuration-Introduction"> <title>Introduction</title> <para>This section describes how to perform initial configuration on the command line. Once - the Broker is started, subsequent management is perfomed using the <link + the Broker is started, subsequent management is performed using the <link linkend="Java-Broker-Management-Channel">Management interfaces</link></para> <para> The configuration for each component is stored as an entry in the broker configuration store, currently implemented as a JSON file which persists changes to - disk, BDB or Derby databadse or an in-memory store which does not. The following + disk, BDB or Derby database or an in-memory store which does not. The following components configuration is stored there: <itemizedlist> <listitem> <para>Broker</para> @@ -95,7 +95,7 @@ $ ./qpid-server -sp ./my-broker-configuration.json <section id="Java-Broker-Initial-Configuration-Initial-Config-Location"> <title>'Initial Configuration' Location</title> - <para> The 'Initial Configuration' JSON file is used when initialiasing new broker + <para> The 'Initial Configuration' JSON file is used when initialising new broker configuration stores. The broker will default to using an internal file within its jar unless otherwise instructed. </para> <para> The command line argument <emphasis>-icp </emphasis> (or @@ -177,7 +177,7 @@ $ ./qpid-server -os -icp ./my-initial-configuration.json Configuration'</link> to provide the configuration to start the broker with. </para> <para> The command line argument <emphasis>-st</emphasis> (or <emphasis>--store-type</emphasis>) can be used to override the default - <emphasis>json</emphasis>)configuration store type and allow choosing an alterative, + <emphasis>json</emphasis>)configuration store type and allow choosing an alternative, such as <emphasis>memory</emphasis>) </para> <screen> $ ./qpid-server -st memory @@ -190,7 +190,7 @@ $ ./qpid-server -st memory <section id="Java-Broker-Initial-Configuration-Configuration-Properties"> <title>Customising Configuration using Configuration Properties</title> - <para> It is posible for 'Initial Configuration' (and Configuration Store) files to contain + <para> It is possible for 'Initial Configuration' (and Configuration Store) files to contain ${properties} that can be resolved to String values at startup, allowing a degree of customisation using a fixed file. Configuration Property values can be set either via Java System Properties, or by specifying ConfigurationPproperties on the broker command @@ -264,7 +264,7 @@ $ ./qpid-server -prop "qpid.amqp_port=10000" -prop "qpid.http_port=10001" </screen> <para> In the example above, property used to set the port number of the default AMQP port is specified with the value 10000, overriding the default value of 5672, and similarly - the vlaue 10001 is used to override the default HTTP port number of 8080. When using the + the value 10001 is used to override the default HTTP port number of 8080. When using the 'Initial Configuration' to initialise a new Configuration Store (either at first broker startup, when requesting to <link linkend="Java-Broker-Initial-Configuration-Location" >overwrite the configuration store</link>) these new values will be used for the @@ -341,7 +341,7 @@ $ ./qpid-server -prop "qpid.amqp_port=10000" -prop "qpid.http_port=10001" <listitem> <para> Virtualhost Node called default. On initial startup, it virtualHostInitialConfiguration will cause a virtualhost to be created - with the same name. The confiuration will be stored in a + with the same name. The configuration will be stored in a <emphasis>JSON</emphasis> configuration store, the message data will be stored in a <emphasis>DERBY</emphasis> message store.</para> </listitem> diff --git a/qpid/doc/book/src/java-broker/Java-Broker-Installation.xml b/qpid/doc/book/src/java-broker/Java-Broker-Installation.xml index a71c37d088..5a8b8d910c 100644 --- a/qpid/doc/book/src/java-broker/Java-Broker-Installation.xml +++ b/qpid/doc/book/src/java-broker/Java-Broker-Installation.xml @@ -83,7 +83,7 @@ <para>You can download the latest Java broker package from the <ulink url="&qpidDownloadUrl;" >Download Page</ulink>. </para> <para> It is recommended that you confirm the integrity of the download by verifying the PGP - signature matches that available on the site. Instrutions are given on the download page. + signature matches that available on the site. Instructions are given on the download page. </para> </section> </section> diff --git a/qpid/doc/book/src/java-broker/Java-Broker-Management-Channels.xml b/qpid/doc/book/src/java-broker/Java-Broker-Management-Channels.xml index 80fbb308bc..3a71f8c366 100644 --- a/qpid/doc/book/src/java-broker/Java-Broker-Management-Channels.xml +++ b/qpid/doc/book/src/java-broker/Java-Broker-Management-Channels.xml @@ -25,17 +25,17 @@ <para>The Broker can be managed over a number of different channels.</para> <itemizedlist> <listitem> - <para>HTTP - The primary channel for management. The HTTP interace comprises of a Web + <para>HTTP - The primary channel for management. The HTTP interface comprises of a Web Console and a REST API.</para> </listitem> <listitem> - <para>JMX - The Broker provides a JMX compilent management interface. This is not currently + <para>JMX - The Broker provides a JMX compliant management interface. This is not currently undergoing further development and is retained largely for backward compatibility. It is suggested the new users favour the Web Console/REST API.</para> </listitem> <listitem> <para>AMQP - The AMQP protocols 0-8..0-10 allow for some management of Exchanges, Queue and - Bindings. This will be superceded by AMQP 1.0 Management. It is suggested that new users + Bindings. This will be superseded by AMQP 1.0 Management. It is suggested that new users favour the Management facilities provided by the Web Console/REST API.</para> </listitem> </itemizedlist> diff --git a/qpid/doc/book/src/java-broker/Java-Broker-Management-Managing-Entities.xml b/qpid/doc/book/src/java-broker/Java-Broker-Management-Managing-Entities.xml index 82b14fb0a7..09f011ba2b 100644 --- a/qpid/doc/book/src/java-broker/Java-Broker-Management-Managing-Entities.xml +++ b/qpid/doc/book/src/java-broker/Java-Broker-Management-Managing-Entities.xml @@ -56,7 +56,7 @@ (e.g.<literal>${foo}</literal> or <literal>/data/${foo}/</literal>).</para> </listitem> <listitem> - <para>Each entity has own zero or more context variables.</para> + <para>Each entity has zero or more context variables.</para> </listitem> <listitem> <para>The System Context entity (the ultimate ancestor of all object) has a context too. diff --git a/qpid/doc/book/src/java-broker/Java-Broker-Runtime-Disk-Space-Management-Producer-Flow-Control.xml b/qpid/doc/book/src/java-broker/Java-Broker-Runtime-Disk-Space-Management-Producer-Flow-Control.xml index bc279157c2..b74b46865b 100644 --- a/qpid/doc/book/src/java-broker/Java-Broker-Runtime-Disk-Space-Management-Producer-Flow-Control.xml +++ b/qpid/doc/book/src/java-broker/Java-Broker-Runtime-Disk-Space-Management-Producer-Flow-Control.xml @@ -45,7 +45,7 @@ </para> <para> The capacity and resume capacity can be specified when the queue is created. This - can be done using the Flow Control Settings wintin the Queue creation dialogue. + can be done using the Flow Control Settings within the Queue creation dialogue. </para> <section role="h4"> <title>Broker Log Messages</title> diff --git a/qpid/doc/book/src/java-broker/Java-Broker-Runtime-Flow-To-Disk.xml b/qpid/doc/book/src/java-broker/Java-Broker-Runtime-Flow-To-Disk.xml index d22a720a1d..4ffde911bf 100644 --- a/qpid/doc/book/src/java-broker/Java-Broker-Runtime-Flow-To-Disk.xml +++ b/qpid/doc/book/src/java-broker/Java-Broker-Runtime-Flow-To-Disk.xml @@ -28,7 +28,7 @@ cumulative size of all messages falls below the limit once again.</para> <para>By default the Broker makes 40% of the max available memory for messages. This memory is divided between all the queues across all virtual hosts defined on the Broker with a percentage - calculated according to their current queue size. These calulations are refreshed periodically + calculated according to their current queue size. These calculations are refreshed periodically by the housekeeping cycle.</para> <para>For example if there are two queues, one containing 75MB and the second 100MB messages respectively and the Broker has 1GB heap memory with the default of 40% available for messages. diff --git a/qpid/doc/book/src/java-broker/Java-Broker-Runtime-Log-Files.xml b/qpid/doc/book/src/java-broker/Java-Broker-Runtime-Log-Files.xml index 23d84ac1de..1fde82656d 100644 --- a/qpid/doc/book/src/java-broker/Java-Broker-Runtime-Log-Files.xml +++ b/qpid/doc/book/src/java-broker/Java-Broker-Runtime-Log-Files.xml @@ -54,7 +54,7 @@ <para>It can be helpful to enable debug within the Broker in order to understand a problem more clearly. If this is required, debug can be enabled at runtime (without restarting the Broker) using the Logging Management MBean. The change can also be made by changing the log configuration - file and restarting the Broker. Whichever mechanism is chosen, change the appender assoicated + file and restarting the Broker. Whichever mechanism is chosen, change the appender associated with <literal>org.apache.qpid</literal> from <literal>WARN</literal> to <literal>DEBUG</literal>.</para> <example> diff --git a/qpid/doc/book/src/java-broker/Java-Broker-Security-ACLs.xml b/qpid/doc/book/src/java-broker/Java-Broker-Security-ACLs.xml index d0dcd18279..95d718df29 100644 --- a/qpid/doc/book/src/java-broker/Java-Broker-Security-ACLs.xml +++ b/qpid/doc/book/src/java-broker/Java-Broker-Security-ACLs.xml @@ -91,7 +91,7 @@ ACL ALLOW bob ALL EXCHANGE </programlisting> <para> - All ACL files end with an implict rule denying all operations to all users. It is as if each file ends with + All ACL files end with an implicit rule denying all operations to all users. It is as if each file ends with <programlisting>ACL DENY ALL ALL </programlisting> If instead you wish to <emphasis>allow</emphasis> all operations other than those controlled by earlier rules, add <programlisting>ACL ALLOW ALL ALL</programlisting> to the bottom of the ACL file. @@ -433,15 +433,15 @@ <tbody> <row> <entry> <command>UserManagement</command> </entry> - <entry> <para>User maintainance; create/delete/view users, change passwords etc</para> </entry> + <entry> <para>User maintenance; create/delete/view users, change passwords etc</para> </entry> </row> <row> <entry> <command>ConfigurationManagement</command> </entry> - <entry> <para>Dynammically reload configuration from disk.</para> </entry> + <entry> <para>Dynamically reload configuration from disk.</para> </entry> </row> <row> <entry> <command>LoggingManagement</command> </entry> - <entry> <para>Dynammically control Qpid logging level</para> </entry> + <entry> <para>Dynamically control Qpid logging level</para> </entry> </row> <row> <entry> <command>ServerInformation</command> </entry> @@ -449,7 +449,7 @@ </row> <row> <entry> <command>VirtualHost.Queue</command> </entry> - <entry> <para>Queue maintainance; copy/move/purge/view etc</para> </entry> + <entry> <para>Queue maintenance; copy/move/purge/view etc</para> </entry> </row> <row> <entry> <command>VirtualHost.Exchange</command> </entry> @@ -457,7 +457,7 @@ </row> <row> <entry> <command>VirtualHost.VirtualHost</command> </entry> - <entry> <para>Virtual host maintainace; create/delete exchanges, queues etc</para> </entry> + <entry> <para>Virtual host maintenace; create/delete exchanges, queues etc</para> </entry> </row> </tbody> </tgroup> @@ -501,7 +501,7 @@ ACL DENY-LOG ALL ALL <para> Suppose you wish to restrict User Management operations to users belonging to a <link linkend="Java-Broker-Security-Group-Providers">group</link> 'usermaint'. No other user - is allowed to perform user maintainence This example illustrates the permissioning of an individual component. + is allowed to perform user maintenance This example illustrates the permissioning of an individual component. </para> <programlisting> # Give usermaint access to management and permission to execute all JMX Methods on the diff --git a/qpid/doc/book/src/java-broker/Java-Broker-Security-Authentication-Providers.xml b/qpid/doc/book/src/java-broker/Java-Broker-Security-Authentication-Providers.xml index 44faea5999..8fbd2fd1b6 100644 --- a/qpid/doc/book/src/java-broker/Java-Broker-Security-Authentication-Providers.xml +++ b/qpid/doc/book/src/java-broker/Java-Broker-Security-Authentication-Providers.xml @@ -199,7 +199,7 @@ com.sun.security.jgss.accept { passwords are stored as salted SHA digested password. This can be further encrypted using the facilities described in <xref linkend="Java-Broker-Security-Configuration-Encryption" />.</para> - <para>There are two varients of this provider, SHA1 and SHA256. SHA256 is recommended whenever + <para>There are two variants of this provider, SHA1 and SHA256. SHA256 is recommended whenever possible. SHA1 is provided with compatibility with clients utilising JDK 1.6 (which does not support SHA256).</para> <para>For these providers user credentials can be added, removed or changed using diff --git a/qpid/doc/book/src/java-broker/Java-Broker-Security-Configuration-Encryption.xml b/qpid/doc/book/src/java-broker/Java-Broker-Security-Configuration-Encryption.xml index 9fe2a4683e..2924f2859c 100644 --- a/qpid/doc/book/src/java-broker/Java-Broker-Security-Configuration-Encryption.xml +++ b/qpid/doc/book/src/java-broker/Java-Broker-Security-Configuration-Encryption.xml @@ -23,7 +23,7 @@ <section id="Java-Broker-Security-Configuration-Encryption"> <title>Configuration Encryption</title> - <para> The Broker is capable of encypting passwords and other security items stored in the + <para> The Broker is capable of encrypting passwords and other security items stored in the Broker's configuration. This is means that items such as keystore/truststore passwords, JDBC passwords, and LDAP passwords can be stored in the configure in a form that is difficult to read.</para> @@ -69,6 +69,6 @@ the user, perhaps owing to the security standards of their institution, the <literal>ConfigurationSecretEncrypter</literal> interface is designed as an extension point. Users may implement their own implementation of ConfigurationSecretEncrypter perhaps to employ - stonger encryption or delegating the storage of the key to an Enterprise Password Safe.</para> + stronger encryption or delegating the storage of the key to an Enterprise Password Safe.</para> </section> </section> diff --git a/qpid/doc/book/src/java-broker/Java-Broker-Security-Group-Providers.xml b/qpid/doc/book/src/java-broker/Java-Broker-Security-Group-Providers.xml index 5b729bcff2..ac106b195f 100644 --- a/qpid/doc/book/src/java-broker/Java-Broker-Security-Group-Providers.xml +++ b/qpid/doc/book/src/java-broker/Java-Broker-Security-Group-Providers.xml @@ -47,7 +47,7 @@ The groups file has the following format: </para> <programlisting> - # <GroupName>.users = <comma deliminated user list> + # <GroupName>.users = <comma delimited user list> # For example: administrators.users = admin,manager diff --git a/qpid/doc/book/src/java-broker/concepts/Java-Broker-Concepts-Overview.xml b/qpid/doc/book/src/java-broker/concepts/Java-Broker-Concepts-Overview.xml index f83500e4a7..691cf2aab3 100644 --- a/qpid/doc/book/src/java-broker/concepts/Java-Broker-Concepts-Overview.xml +++ b/qpid/doc/book/src/java-broker/concepts/Java-Broker-Concepts-Overview.xml @@ -51,13 +51,13 @@ <para>These concepts will be developed over the forthcoming pages. The diagrams below also help put these entities in context of one and other.</para> <para><figure> - <title>Message Flow</title> + <title>Message Flow through Key Entities</title> <mediaobject> <imageobject> <imagedata fileref="images/Broker-MessageFlow.png" format="PNG" scalefit="1"/> </imageobject> <textobject> - <phrase>Message Flow through the Broker</phrase> + <phrase>Message Flow through the Key Entities of the Broker</phrase> </textobject> </mediaobject> </figure></para> diff --git a/qpid/doc/book/src/java-broker/concepts/Java-Broker-Concepts-Ports.xml b/qpid/doc/book/src/java-broker/concepts/Java-Broker-Concepts-Ports.xml index a12b58925c..9f577ca5f4 100644 --- a/qpid/doc/book/src/java-broker/concepts/Java-Broker-Concepts-Ports.xml +++ b/qpid/doc/book/src/java-broker/concepts/Java-Broker-Concepts-Ports.xml @@ -41,7 +41,7 @@ </itemizedlist> </para> - <para> Addittionally, HTTP and JMX ports can be configured for use by the associated management + <para> Additionally, HTTP and JMX ports can be configured for use by the associated management plugins. </para> <para>This diagram explains how Ports, <link linkEnd="Java-Broker-Concepts-Authentication-Providers">Authentication Providers</link> diff --git a/qpid/doc/book/src/java-broker/concepts/Java-Broker-Concepts-Queues.xml b/qpid/doc/book/src/java-broker/concepts/Java-Broker-Concepts-Queues.xml index 3839e8cf89..ea806fe348 100644 --- a/qpid/doc/book/src/java-broker/concepts/Java-Broker-Concepts-Queues.xml +++ b/qpid/doc/book/src/java-broker/concepts/Java-Broker-Concepts-Queues.xml @@ -26,5 +26,5 @@ hold/buffer messages for later delivery to consumer applications. An <link linkend="Java-Broker-Concepts-Exchanges">Exchange</link> for passing messages to a queue. Consumers subscribe to a queue in order to receive messages for it. </para> - <para>The Broker supports different queue types, each with different delivery semantics. It also also messages on a queue to be treated as a group.</para> + <para>The Broker supports different queue types, each with different delivery semantics. It also messages on a queue to be treated as a group.</para> </section> diff --git a/qpid/doc/book/src/java-broker/images/HA-2N-Key.png b/qpid/doc/book/src/java-broker/images/HA-2N-Key.png Binary files differdeleted file mode 100644 index 3c1856d496..0000000000 --- a/qpid/doc/book/src/java-broker/images/HA-2N-Key.png +++ /dev/null diff --git a/qpid/doc/book/src/java-broker/images/HA-2N-Key.svg b/qpid/doc/book/src/java-broker/images/HA-2N-Key.svg deleted file mode 100644 index ed471192e2..0000000000 --- a/qpid/doc/book/src/java-broker/images/HA-2N-Key.svg +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="-7 -3 435 195" width="435pt" height="195pt"><metadata xmlns:dc="http://purl.org/dc/elements/1.1/"><dc:date>2012-05-31 06:19Z</dc:date><!-- Produced by OmniGraffle Professional 5.3.6 --></metadata><defs><filter id="Shadow" filterUnits="userSpaceOnUse"><feGaussianBlur in="SourceAlpha" result="blur" stdDeviation="3.488"/><feOffset in="blur" result="offset" dx="0" dy="4"/><feFlood flood-color="black" flood-opacity=".75" result="flood"/><feComposite in="flood" in2="offset" operator="in"/></filter><linearGradient x1="0" x2="1" id="Gradient" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#2824aa"/></linearGradient><linearGradient id="Obj_Gradient" xl:href="#Gradient" gradientTransform="translate(52.803375 70.5) rotate(90) scale(24)"/><font-face font-family="Helvetica" font-size="12" units-per-em="1000" underline-position="-75.683594" underline-thickness="49.316406" slope="0" x-height="522.94922" cap-height="717.28516" ascent="770.01953" descent="-229.98047" font-weight="500"><font-face-src><font-face-name name="Helvetica"/></font-face-src></font-face><linearGradient x1="0" x2="1" id="Gradient_2" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#0caa25"/></linearGradient><linearGradient id="Obj_Gradient_2" xl:href="#Gradient_2" gradientTransform="translate(127.99037 28.999998) rotate(90) scale(25.5938)"/><linearGradient x1="0" x2="1" id="Gradient_3" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#aa172d"/></linearGradient><linearGradient id="Obj_Gradient_3" xl:href="#Gradient_3" gradientTransform="translate(160.86441 28.999998) rotate(90) scale(25.5938)"/><linearGradient x1="0" x2="1" id="Gradient_4" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#6923aa"/></linearGradient><linearGradient id="Obj_Gradient_4" xl:href="#Gradient_4" gradientTransform="translate(52.803375 107.5) rotate(90) scale(24)"/><radialGradient cx="0" cy="0" r="1" id="Gradient_5" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset=".5" stop-color="#b5d0ea"/><stop offset="1" stop-color="#aaa"/></radialGradient><radialGradient id="Obj_Gradient_5" xl:href="#Gradient_5" gradientTransform="translate(56.678375 41.796898) scale(37.736065)"/><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="Arrow_Marker" viewBox="-1 -4 10 8" markerWidth="10" markerHeight="8" color="black"><g><path d="M 8 0 L 0 -3 L 0 3 Z" fill="none" stroke="currentColor" stroke-width="1"/></g></marker><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" viewBox="-1 -3 6 6" markerWidth="6" markerHeight="6" color="black"><g><path d="M 3.7333333 0 L 0 -1.4 L 0 1.4 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/></g></marker><linearGradient x1="0" x2="1" id="Gradient_6" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#b5011d"/></linearGradient><linearGradient id="Obj_Gradient_6" xl:href="#Gradient_6" gradientTransform="translate(287.5 113.94637) rotate(90) scale(26.035202)"/><radialGradient cx="0" cy="0" r="1" id="Gradient_7" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset=".5" stop-color="#ea061f"/><stop offset="1" stop-color="#aaa"/></radialGradient><radialGradient id="Obj_Gradient_7" xl:href="#Gradient_7" gradientTransform="translate(280 41) scale(26.907248)"/><font-face font-family="Arial Unicode MS" font-size="36" panose-1="2 11 6 4 2 2 2 2 2 4" units-per-em="1000" underline-position="-100.097656" underline-thickness="49.804688" slope="0" x-height="529.78516" cap-height="728.02734" ascent="1068.84766" descent="-270.9961" font-weight="500"><font-face-src><font-face-name name="ArialUnicodeMS"/></font-face-src></font-face></defs><g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1"><title>Canvas 7</title><g><title>Layer 1</title><g><use xl:href="#id240_Graphic" filter="url(#Shadow)"/><use xl:href="#id239_Graphic" filter="url(#Shadow)"/><use xl:href="#id238_Graphic" filter="url(#Shadow)"/><use xl:href="#id237_Graphic" filter="url(#Shadow)"/><use xl:href="#id236_Graphic" filter="url(#Shadow)"/><use xl:href="#id235_Graphic" filter="url(#Shadow)"/><use xl:href="#id229_Graphic" filter="url(#Shadow)"/><use xl:href="#id227_Graphic" filter="url(#Shadow)"/></g><g id="id240_Graphic"><rect x="13.999878" y="13" width="394.00012" height="155" fill="white"/><rect x="13.999878" y="13" width="394.00012" height="155" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/></g><g id="id239_Graphic"><rect x="28.177876" y="70.5" width="49.251003" height="24" fill="url(#Obj_Gradient)"/><rect x="28.177876" y="70.5" width="49.251003" height="24" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(33.177876 75.5)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x="1.9536247" y="11" textLength="35.34375">Broker</tspan></text></g><g id="id238_Graphic"><path d="M 115.652176 41.796898 L 121.821274 28.999998 L 134.15947 28.999998 L 140.32857 41.796898 L 134.15947 54.593796 L 121.821274 54.593796 Z" fill="url(#Obj_Gradient_2)"/><path d="M 115.652176 41.796898 L 121.821274 28.999998 L 134.15947 28.999998 L 140.32857 41.796898 L 134.15947 54.593796 L 121.821274 54.593796 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/></g><g id="id237_Graphic"><path d="M 148.526215 41.796898 L 154.69531 28.999998 L 167.03351 28.999998 L 173.20261 41.796898 L 167.03351 54.593796 L 154.69531 54.593796 Z" fill="url(#Obj_Gradient_3)"/><path d="M 148.526215 41.796898 L 154.69531 28.999998 L 167.03351 28.999998 L 173.20261 41.796898 L 167.03351 54.593796 L 154.69531 54.593796 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/></g><g id="id236_Graphic"><path d="M 32.853378 107.5 L 72.753372 107.5 C 77.472977 107.5 81.303375 112.876 81.303375 119.5 C 81.303375 126.124 77.472977 131.5 72.753372 131.5 L 32.853378 131.5 C 28.133776 131.5 24.303375 126.124 24.303375 119.5 C 24.303375 112.876 28.133776 107.5 32.853378 107.5" fill="url(#Obj_Gradient_4)"/><path d="M 32.853378 107.5 L 72.753372 107.5 C 77.472977 107.5 81.303375 112.876 81.303375 119.5 C 81.303375 126.124 77.472977 131.5 72.753372 131.5 L 32.853378 131.5 C 28.133776 131.5 24.303375 126.124 24.303375 119.5 C 24.303375 112.876 28.133776 107.5 32.853378 107.5" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(35.003376 112.5)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x="2.4601574" y="11" textLength="30.679688">Client</tspan></text></g><g id="id235_Graphic"><path d="M 30.434645 43.17154 C 18.959625 41.796898 23.535576 30.224663 41.840797 32.199223 C 43.539116 28.35017 64.825623 28.974915 64.686462 32.199223 C 78.033752 28.075294 95.09079 36.298325 83.649857 40.422256 C 97.37842 42.421642 83.476616 53.194073 72.209625 51.394573 C 71.307922 54.39391 51.165936 55.443512 49.398033 51.394573 C 37.992596 55.718647 14.210434 49.070145 30.434645 43.17154 Z" fill="url(#Obj_Gradient_5)"/><path d="M 30.434645 43.17154 C 18.959625 41.796898 23.535576 30.224663 41.840797 32.199223 C 43.539116 28.35017 64.825623 28.974915 64.686462 32.199223 C 78.033752 28.075294 95.09079 36.298325 83.649857 40.422256 C 97.37842 42.421642 83.476616 53.194073 72.209625 51.394573 C 71.307922 54.39391 51.165936 55.443512 49.398033 51.394573 C 37.992596 55.718647 14.210434 49.070145 30.434645 43.17154 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(36.828377 34.796898)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x=".84511757" y="11" textLength="38.009766">Cluster</tspan></text></g><text transform="translate(194.40121 29)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x="0" y="11" textLength="8.0039062">V</tspan><tspan font-family="Helvetica" font-size="12" font-weight="500" x="7.7929688" y="11" textLength="26.009766">irtual</tspan><tspan font-family="Helvetica" font-size="12" font-weight="500" x="0" y="25" textLength="22.68164">host</tspan></text><line x1="115.65217" y1="84" x2="162.7522" y2="84" marker-end="url(#Arrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><line x1="114.77717" y1="114.406006" x2="155.878815" y2="114.99225" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="3"/><text transform="translate(181.40121 70.5)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x="0" y="11" textLength="59.367188">Replication</tspan><tspan font-family="Helvetica" font-size="12" font-weight="500" x="0" y="25" textLength="36.673828">stream</tspan></text><text transform="translate(181.90121 93.906006)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x="0" y="25" textLength="30.679688">Client</tspan><tspan font-family="Helvetica" font-size="12" font-weight="500" x="0" y="39" textLength="58.04297">connection</tspan></text><g id="id229_Graphic"><path d="M 257.6145 123.341385 L 303.64609 123.13183 C 303.64609 123.13183 305.97821 110.84691 310.80124 114.69145 C 315.62408 118.53591 319 121.44636 319 121.44636 L 315.92612 122.44486 L 307.22827 122.069695 L 307.22821 132.69258 L 315.47678 133.06787 C 315.47678 133.06787 315.92618 136.46542 315.92618 136.78604 C 315.92618 137.10628 311.77792 139.65259 309.63474 139.972885 C 307.49097 140.29318 304.06018 131.63016 304.06018 131.63039 C 304.06018 131.63039 257.61444 130.06921 257.48056 130.06921 C 257.34662 130.06921 256.13666 132.15001 256.00693 126.86558 C 255.87709 121.581276 257.6145 123.341385 257.6145 123.341385 Z" fill="url(#Obj_Gradient_6)"/><path d="M 257.6145 123.341385 L 303.64609 123.13183 C 303.64609 123.13183 305.97821 110.84691 310.80124 114.69145 C 315.62408 118.53591 319 121.44636 319 121.44636 L 315.92612 122.44486 L 307.22827 122.069695 L 307.22821 132.69258 L 315.47678 133.06787 C 315.47678 133.06787 315.92618 136.46542 315.92618 136.78604 C 315.92618 137.10628 311.77792 139.65259 309.63474 139.972885 C 307.49097 140.29318 304.06018 131.63016 304.06018 131.63039 C 304.06018 131.63039 257.61444 130.06921 257.48056 130.06921 C 257.34662 130.06921 256.13666 132.15001 256.00693 126.86558 C 255.87709 121.581276 257.6145 123.341385 257.6145 123.341385 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/></g><text transform="translate(334.09879 119.963974)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x="0" y="11" textLength="35.34961">Repair</tspan></text><g id="id227_Graphic"><path d="M 260 32.310394 L 275.19995 42.241386 L 263.13727 54.738464 L 267.99988 59 L 281.17648 45.481422 L 295.20001 54.655197 L 300 49.68975 L 284.79993 39.137974 L 297.59991 27.965553 L 290.39993 23 L 279.19989 35.413807 L 266.4 25.482777 Z" fill="url(#Obj_Gradient_7)"/><path d="M 260 32.310394 L 275.19995 42.241386 L 263.13727 54.738464 L 267.99988 59 L 281.17648 45.481422 L 295.20001 54.655197 L 300 49.68975 L 284.79993 39.137974 L 297.59991 27.965553 L 290.39993 23 L 279.19989 35.413807 L 266.4 25.482777 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/></g><text transform="translate(329.02448 34)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x="0" y="11" textLength="26.677734">Fault</tspan></text><text transform="translate(264 59.5)" fill="#262626"><tspan font-family="Arial Unicode MS" font-size="36" font-weight="500" fill="#262626" x="0" y="38" textLength="36">♛</tspan></text><text transform="translate(320.52448 72)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x="0" y="11" textLength="54.035156">Designate</tspan><tspan font-family="Helvetica" font-size="12" font-weight="500" x="0" y="25" textLength="41.332031">Primary</tspan></text></g></g></svg> diff --git a/qpid/doc/book/src/java-broker/images/HA-2N-MasterFail.png b/qpid/doc/book/src/java-broker/images/HA-2N-MasterFail.png Binary files differdeleted file mode 100644 index b839d291b9..0000000000 --- a/qpid/doc/book/src/java-broker/images/HA-2N-MasterFail.png +++ /dev/null diff --git a/qpid/doc/book/src/java-broker/images/HA-2N-MasterFail.svg b/qpid/doc/book/src/java-broker/images/HA-2N-MasterFail.svg deleted file mode 100644 index c3fc0c66f3..0000000000 --- a/qpid/doc/book/src/java-broker/images/HA-2N-MasterFail.svg +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="-20 -16 600 871" width="50pc" height="871pt"><metadata xmlns:dc="http://purl.org/dc/elements/1.1/"><dc:date>2012-05-31 06:19Z</dc:date><!-- Produced by OmniGraffle Professional 5.3.6 --></metadata><defs><radialGradient cx="0" cy="0" r="1" id="Gradient" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset=".5" stop-color="#b5d0ea"/><stop offset="1" stop-color="#aaa"/></radialGradient><radialGradient id="Obj_Gradient" xl:href="#Gradient" gradientTransform="translate(200.35501 136.5) scale(145.18695)"/><linearGradient x1="0" x2="1" id="Gradient_2" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#2824aa"/></linearGradient><linearGradient id="Obj_Gradient_2" xl:href="#Gradient_2" gradientTransform="translate(212.855 146) rotate(90) scale(69)"/><linearGradient x1="0" x2="1" id="Gradient_3" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#0caa25"/></linearGradient><linearGradient id="Obj_Gradient_3" xl:href="#Gradient_3" gradientTransform="translate(212.85451 162.5) rotate(90) scale(36)"/><linearGradient x1="0" x2="1" id="Gradient_4" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#6923aa"/></linearGradient><linearGradient id="Obj_Gradient_4" xl:href="#Gradient_4" gradientTransform="translate(73.18171 111) rotate(90) scale(24)"/><linearGradient id="Obj_Gradient_5" xl:href="#Gradient_2" gradientTransform="translate(195.355 59.999996) rotate(90) scale(69.000007)"/><linearGradient x1="0" x2="1" id="Gradient_5" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#aa172d"/></linearGradient><linearGradient id="Obj_Gradient_6" xl:href="#Gradient_5" gradientTransform="translate(195.35451 78) rotate(90) scale(36)"/><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" viewBox="-1 -3 6 6" markerWidth="6" markerHeight="6" color="black"><g><path d="M 3.7333333 0 L 0 -1.4 L 0 1.4 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/></g></marker><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="Arrow_Marker" viewBox="-1 -4 10 8" markerWidth="10" markerHeight="8" color="black"><g><path d="M 8 0 L 0 -3 L 0 3 Z" fill="none" stroke="currentColor" stroke-width="1"/></g></marker><radialGradient id="Obj_Gradient_7" xl:href="#Gradient" gradientTransform="translate(470.5 133.5) scale(145.18695)"/><linearGradient id="Obj_Gradient_8" xl:href="#Gradient_2" gradientTransform="translate(488 141.5) rotate(90) scale(69)"/><linearGradient x1="0" x2="1" id="Gradient_6" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#aaa3a7"/></linearGradient><linearGradient id="Obj_Gradient_9" xl:href="#Gradient_6" gradientTransform="translate(487.9995 158) rotate(90) scale(36)"/><linearGradient id="Obj_Gradient_10" xl:href="#Gradient_4" gradientTransform="translate(350.21 85) rotate(90) scale(24)"/><linearGradient id="Obj_Gradient_11" xl:href="#Gradient_2" gradientTransform="translate(470.5 55.5) rotate(90) scale(69)"/><linearGradient x1="0" x2="1" id="Gradient_7" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#aaaaa3"/></linearGradient><linearGradient id="Obj_Gradient_12" xl:href="#Gradient_7" gradientTransform="translate(470.4995 73.5) rotate(90) scale(36)"/><radialGradient cx="0" cy="0" r="1" id="Gradient_8" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset=".5" stop-color="#ea061f"/><stop offset="1" stop-color="#aaa"/></radialGradient><radialGradient id="Obj_Gradient_13" xl:href="#Gradient_8" gradientTransform="translate(488 176) scale(38.183766)"/><font-face font-family="Helvetica" font-size="12" units-per-em="1000" underline-position="-75.683594" underline-thickness="49.316406" slope="0" x-height="532.22656" cap-height="719.72656" ascent="770.01953" descent="-229.98047" font-weight="bold"><font-face-src><font-face-name name="Helvetica-Bold"/></font-face-src></font-face><radialGradient id="Obj_Gradient_14" xl:href="#Gradient" gradientTransform="translate(474.08 415.255) scale(145.18695)"/><linearGradient id="Obj_Gradient_15" xl:href="#Gradient_2" gradientTransform="translate(491.58 423.255) rotate(90) scale(69)"/><linearGradient id="Obj_Gradient_16" xl:href="#Gradient_6" gradientTransform="translate(491.5795 439.755) rotate(90) scale(36)"/><linearGradient id="Obj_Gradient_17" xl:href="#Gradient_4" gradientTransform="translate(353.79 366.755) rotate(90) scale(24.00003)"/><linearGradient id="Obj_Gradient_18" xl:href="#Gradient_2" gradientTransform="translate(474.08 337.255) rotate(90) scale(69)"/><linearGradient x1="0" x2="1" id="Gradient_9" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#21aa1a"/></linearGradient><linearGradient id="Obj_Gradient_19" xl:href="#Gradient_9" gradientTransform="translate(474.0795 355.255) rotate(90) scale(36)"/><radialGradient id="Obj_Gradient_20" xl:href="#Gradient" gradientTransform="translate(192.79001 696.5) scale(145.18695)"/><linearGradient id="Obj_Gradient_21" xl:href="#Gradient_2" gradientTransform="translate(210.28999 704.5) rotate(90) scale(69)"/><linearGradient x1="0" x2="1" id="Gradient_10" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#aa1f43"/></linearGradient><linearGradient id="Obj_Gradient_22" xl:href="#Gradient_10" gradientTransform="translate(210.2895 721) rotate(90) scale(36)"/><linearGradient id="Obj_Gradient_23" xl:href="#Gradient_4" gradientTransform="translate(72.5 648) rotate(90) scale(24)"/><linearGradient id="Obj_Gradient_24" xl:href="#Gradient_2" gradientTransform="translate(192.78999 618.5) rotate(90) scale(69)"/><linearGradient id="Obj_Gradient_25" xl:href="#Gradient_9" gradientTransform="translate(192.7895 636.5) rotate(90) scale(36)"/><radialGradient id="Obj_Gradient_26" xl:href="#Gradient" gradientTransform="translate(166.45009 415.255) scale(145.18695)"/><linearGradient id="Obj_Gradient_27" xl:href="#Gradient_2" gradientTransform="translate(183.95009 423.255) rotate(90) scale(69)"/><linearGradient id="Obj_Gradient_28" xl:href="#Gradient_6" gradientTransform="translate(183.9496 439.755) rotate(90) scale(36)"/><linearGradient id="Obj_Gradient_29" xl:href="#Gradient_4" gradientTransform="translate(72.5 372.755) rotate(90) scale(24)"/><linearGradient id="Obj_Gradient_30" xl:href="#Gradient_2" gradientTransform="translate(180.08009 343.255) rotate(90) scale(69)"/><linearGradient x1="0" x2="1" id="Gradient_11" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#a9a5a6"/></linearGradient><linearGradient id="Obj_Gradient_31" xl:href="#Gradient_11" gradientTransform="translate(180.0796 361.255) rotate(90) scale(36)"/><radialGradient id="Obj_Gradient_32" xl:href="#Gradient_8" gradientTransform="translate(183.95009 457.755) scale(38.183766)"/><font-face font-family="Arial Unicode MS" font-size="36" panose-1="2 11 6 4 2 2 2 2 2 4" units-per-em="1000" underline-position="-100.097656" underline-thickness="49.804688" slope="0" x-height="529.78516" cap-height="728.02734" ascent="1068.84766" descent="-270.9961" font-weight="500"><font-face-src><font-face-name name="ArialUnicodeMS"/></font-face-src></font-face></defs><g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1"><title>Canvas 2</title><g><title>Layer 1</title><rect x="0" y="0" width="278" height="273" fill="white"/><rect x="0" y="0" width="278" height="273" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 146.38904 149.98122 C 122.79251 136.5 132.20221 23.010353 169.84393 42.375 C 173.33626 4.6271057 217.1085 10.754013 216.82236 42.375 C 244.26889 1.931366 279.34393 82.575165 255.81749 123.01879 C 284.04803 142.62691 255.46124 248.27281 232.29251 230.625 C 230.43831 260.03967 189.01958 270.33319 185.38417 230.625 C 161.930725 273.03143 113.02657 207.82918 146.38904 149.98122 Z" fill="url(#Obj_Gradient)"/><path d="M 146.38904 149.98122 C 122.79251 136.5 132.20221 23.010353 169.84393 42.375 C 173.33626 4.6271057 217.1085 10.754013 216.82236 42.375 C 244.26889 1.931366 279.34393 82.575165 255.81749 123.01879 C 284.04803 142.62691 255.46124 248.27281 232.29251 230.625 C 230.43831 260.03967 189.01958 270.33319 185.38417 230.625 C 161.930725 273.03143 113.02657 207.82918 146.38904 149.98122 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="179.355" y="146" width="67" height="69" fill="url(#Obj_Gradient_2)"/><rect x="179.355" y="146" width="67" height="69" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 192.524 180.5 L 202.68925 162.5 L 223.01976 162.5 L 233.18501 180.5 L 223.01976 198.5 L 202.68925 198.5 Z" fill="url(#Obj_Gradient_3)"/><path d="M 192.524 180.5 L 202.68925 162.5 L 223.01976 162.5 L 233.18501 180.5 L 223.01976 198.5 L 202.68925 198.5 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 62.68171 111 L 83.68171 111 C 86.16571 111 88.18171 116.376 88.18171 123 C 88.18171 129.62399 86.16571 135 83.68171 135 L 62.68171 135 C 60.197708 135 58.18171 129.62399 58.18171 123 C 58.18171 116.376 60.197708 111 62.68171 111" fill="url(#Obj_Gradient_4)"/><path d="M 62.68171 111 L 83.68171 111 C 86.16571 111 88.18171 116.376 88.18171 123 C 88.18171 129.62399 86.16571 135 83.68171 135 L 62.68171 135 C 60.197708 135 58.18171 129.62399 58.18171 123 C 58.18171 116.376 60.197708 111 62.68171 111" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="161.855" y="60" width="67" height="69" fill="url(#Obj_Gradient_5)"/><rect x="161.855" y="60" width="67" height="69" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 175.024 96 L 185.18925 78 L 205.51976 78 L 215.68501 96 L 205.51976 114 L 185.18925 114 Z" fill="url(#Obj_Gradient_6)"/><path d="M 175.024 96 L 185.18925 78 L 205.51976 78 L 215.68501 96 L 205.51976 114 L 185.18925 114 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 74.355003 137 C 80.38701 150.765915 72.80871 171.11536 92.452835 178.3019 C 109.12348 184.40063 145.40762 181.02281 176.33522 180.23158" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="3"/><path d="M 222.38084 162.05576 C 227.03842 153.03807 238.59448 143.85422 236.355 135 C 234.66139 128.303986 225.07715 121.79347 216.5538 115.25858" marker-end="url(#Arrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="281.29001" y="0" width="278.00003" height="273" fill="white"/><rect x="281.29001" y="0" width="278.00003" height="273" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 416.53403 146.98122 C 392.9375 133.5 402.3472 20.010353 439.98892 39.375 C 443.48123 1.6271057 487.2535 7.754013 486.96735 39.375 C 514.41388 -1.06863403 549.4889 79.575165 525.96246 120.01879 C 554.19305 139.62691 525.60626 245.27281 502.4375 227.625 C 500.5833 257.03967 459.16455 267.33319 455.52917 227.625 C 432.07571 270.03143 383.17157 204.82918 416.53403 146.98122 Z" fill="url(#Obj_Gradient_7)"/><path d="M 416.53403 146.98122 C 392.9375 133.5 402.3472 20.010353 439.98892 39.375 C 443.48123 1.6271057 487.2535 7.754013 486.96735 39.375 C 514.41388 -1.06863403 549.4889 79.575165 525.96246 120.01879 C 554.19305 139.62691 525.60626 245.27281 502.4375 227.625 C 500.5833 257.03967 459.16455 267.33319 455.52917 227.625 C 432.07571 270.03143 383.17157 204.82918 416.53403 146.98122 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="454.5" y="141.5" width="67" height="69" fill="url(#Obj_Gradient_8)"/><rect x="454.5" y="141.5" width="67" height="69" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 467.669 176 L 477.83426 158 L 498.16476 158 L 508.33002 176 L 498.16476 194 L 477.83426 194 Z" fill="url(#Obj_Gradient_9)"/><path d="M 467.669 176 L 477.83426 158 L 498.16476 158 L 508.33002 176 L 498.16476 194 L 477.83426 194 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 339.71 85 L 360.71 85 C 363.194 85 365.21 90.376 365.21 97 C 365.21 103.624 363.194 109 360.71 109 L 339.71 109 C 337.22598 109 335.21 103.624 335.21 97 C 335.21 90.376 337.22598 85 339.71 85" fill="url(#Obj_Gradient_10)"/><path d="M 339.71 85 L 360.71 85 C 363.194 85 365.21 90.376 365.21 97 C 365.21 103.624 363.194 109 360.71 109 L 339.71 109 C 337.22598 109 335.21 103.624 335.21 97 C 335.21 90.376 337.22598 85 339.71 85" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="437" y="55.5" width="67" height="69" fill="url(#Obj_Gradient_11)"/><rect x="437" y="55.5" width="67" height="69" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 450.169 91.5 L 460.33426 73.5 L 480.66476 73.5 L 490.83002 91.5 L 480.66476 109.5 L 460.33426 109.5 Z" fill="url(#Obj_Gradient_12)"/><path d="M 450.169 91.5 L 460.33426 73.5 L 480.66476 73.5 L 490.83002 91.5 L 480.66476 109.5 L 460.33426 109.5 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 461 162.96559 L 481.51996 177.86208 L 465.23532 196.6077 L 471.79984 203 L 489.58826 182.72214 L 508.52 196.48279 L 515 189.03462 L 494.4799 173.20695 L 511.7599 156.44833 L 502.0399 149 L 486.91986 167.62071 L 469.64001 152.72417 Z" fill="url(#Obj_Gradient_13)"/><path d="M 461 162.96559 L 481.51996 177.86208 L 465.23532 196.6077 L 471.79984 203 L 489.58826 182.72214 L 508.52 196.48279 L 515 189.03462 L 494.4799 173.20695 L 511.7599 156.44833 L 502.0399 149 L 486.91986 167.62071 L 469.64001 152.72417 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(5.8400302 4)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x=".16308594" y="11" textLength="6.673828">1</tspan></text><rect x="281.29001" y="278.755" width="278.00003" height="273" fill="white"/><rect x="281.29001" y="278.755" width="278.00003" height="273" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 420.11401 428.7362 C 396.51749 415.255 405.92719 301.76535 443.5689 321.13 C 447.06122 283.38211 490.8335 289.50903 490.54733 321.13 C 517.9939 280.68637 553.0689 361.33017 529.54248 401.7738 C 557.773 421.38193 529.18622 527.02783 506.0175 509.38 C 504.1633 538.79468 462.74454 549.0882 459.10913 509.38 C 435.6557 551.78644 386.75156 486.58417 420.11401 428.7362 Z" fill="url(#Obj_Gradient_14)"/><path d="M 420.11401 428.7362 C 396.51749 415.255 405.92719 301.76535 443.5689 321.13 C 447.06122 283.38211 490.8335 289.50903 490.54733 321.13 C 517.9939 280.68637 553.0689 361.33017 529.54248 401.7738 C 557.773 421.38193 529.18622 527.02783 506.0175 509.38 C 504.1633 538.79468 462.74454 549.0882 459.10913 509.38 C 435.6557 551.78644 386.75156 486.58417 420.11401 428.7362 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="458.08" y="423.255" width="66.99997" height="69" fill="url(#Obj_Gradient_15)"/><rect x="458.08" y="423.255" width="66.99997" height="69" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 471.249 457.755 L 481.41425 439.755 L 501.74475 439.755 L 511.91 457.755 L 501.74475 475.755 L 481.41425 475.755 Z" fill="url(#Obj_Gradient_16)"/><path d="M 471.249 457.755 L 481.41425 439.755 L 501.74475 439.755 L 511.91 457.755 L 501.74475 475.755 L 481.41425 475.755 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 343.29 366.755 L 364.29 366.755 C 366.77402 366.755 368.79 372.13101 368.79 378.755 C 368.79 385.379 366.77402 390.755 364.29 390.755 L 343.29 390.755 C 340.806 390.755 338.79 385.379 338.79 378.755 C 338.79 372.13101 340.806 366.755 343.29 366.755" fill="url(#Obj_Gradient_17)"/><path d="M 343.29 366.755 L 364.29 366.755 C 366.77402 366.755 368.79 372.13101 368.79 378.755 C 368.79 385.379 366.77402 390.755 364.29 390.755 L 343.29 390.755 C 340.806 390.755 338.79 385.379 338.79 378.755 C 338.79 372.13101 340.806 366.755 343.29 366.755" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="440.57999" y="337.255" width="67" height="69" fill="url(#Obj_Gradient_18)"/><rect x="440.57999" y="337.255" width="67" height="69" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 453.749 373.255 L 463.91425 355.255 L 484.24475 355.255 L 494.41 373.255 L 484.24475 391.255 L 463.91425 391.255 Z" fill="url(#Obj_Gradient_19)"/><path d="M 453.749 373.255 L 463.91425 355.255 L 484.24475 355.255 L 494.41 373.255 L 484.24475 391.255 L 463.91425 391.255 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 365.46664 366.5985 C 373.74026 357.98486 375.04666 340.75385 390.29 340.755 C 402.3567 340.75592 423.16241 351.55505 442.3288 360.32996" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="3"/><rect x="0" y="558" width="278" height="273" fill="white"/><rect x="0" y="558" width="278" height="273" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 138.824036 709.9812 C 115.22751 696.5 124.63721 583.01038 162.27893 602.375 C 165.77126 564.62708 209.5435 570.75403 209.25735 602.375 C 236.70389 561.9314 271.77893 642.57513 248.25249 683.0188 C 276.48303 702.6269 247.89624 808.27283 224.72751 790.625 C 222.8733 820.03967 181.45457 830.3332 177.81917 790.625 C 154.36572 833.03143 105.46157 767.82916 138.824036 709.9812 Z" fill="url(#Obj_Gradient_20)"/><path d="M 138.824036 709.9812 C 115.22751 696.5 124.63721 583.01038 162.27893 602.375 C 165.77126 564.62708 209.5435 570.75403 209.25735 602.375 C 236.70389 561.9314 271.77893 642.57513 248.25249 683.0188 C 276.48303 702.6269 247.89624 808.27283 224.72751 790.625 C 222.8733 820.03967 181.45457 830.3332 177.81917 790.625 C 154.36572 833.03143 105.46157 767.82916 138.824036 709.9812 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="176.78999" y="704.5" width="67" height="69" fill="url(#Obj_Gradient_21)"/><rect x="176.78999" y="704.5" width="67" height="69" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 189.959 739 L 200.12425 721 L 220.45476 721 L 230.62001 739 L 220.45476 757 L 200.12425 757 Z" fill="url(#Obj_Gradient_22)"/><path d="M 189.959 739 L 200.12425 721 L 220.45476 721 L 230.62001 739 L 220.45476 757 L 200.12425 757 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 62 648 L 83 648 C 85.484 648 87.5 653.37598 87.5 660 C 87.5 666.62402 85.484 672 83 672 L 62 672 C 59.516 672 57.5 666.62402 57.5 660 C 57.5 653.37598 59.516 648 62 648" fill="url(#Obj_Gradient_23)"/><path d="M 62 648 L 83 648 C 85.484 648 87.5 653.37598 87.5 660 C 87.5 666.62402 85.484 672 83 672 L 62 672 C 59.516 672 57.5 666.62402 57.5 660 C 57.5 653.37598 59.516 648 62 648" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="159.28999" y="618.5" width="67" height="69" fill="url(#Obj_Gradient_24)"/><rect x="159.28999" y="618.5" width="67" height="69" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 172.459 654.5 L 182.62425 636.5 L 202.95476 636.5 L 213.12001 654.5 L 202.95476 672.5 L 182.62425 672.5 Z" fill="url(#Obj_Gradient_25)"/><path d="M 172.459 654.5 L 182.62425 636.5 L 202.95476 636.5 L 213.12001 654.5 L 202.95476 672.5 L 182.62425 672.5 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 84.176636 647.8435 C 92.450264 639.22986 93.75663 621.99884 109 622 C 121.06667 622.0009 141.87247 632.80005 161.03886 641.575" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="3"/><path d="M 181.93205 672.16388 C 174.38545 684.44135 157.17926 699.40002 159.28999 709 C 160.93364 716.4756 174.29166 720.7052 185.68005 725.4799" marker-end="url(#Arrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(286 8)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x=".16308594" y="11" textLength="6.673828">2</tspan></text><text transform="translate(286 289.62299)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x=".16308594" y="11" textLength="6.673828">4</tspan></text><text transform="translate(10.3773594 571.472)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x=".16308594" y="11" textLength="6.673828">5</tspan></text><rect x="0" y="278.755" width="278" height="273" fill="white"/><rect x="0" y="278.755" width="278" height="273" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 112.48411 428.7362 C 88.88759 415.255 98.297287 301.76535 135.93901 321.13 C 139.431335 283.38211 183.20358 289.50903 182.91743 321.13 C 210.36397 280.68637 245.439 361.33017 221.91257 401.7738 C 250.14313 421.38193 221.55634 527.02783 198.38759 509.38 C 196.53339 538.79468 155.11465 549.0882 151.47925 509.38 C 128.02582 551.78644 79.12165 486.58417 112.48411 428.7362 Z" fill="url(#Obj_Gradient_26)"/><path d="M 112.48411 428.7362 C 88.88759 415.255 98.297287 301.76535 135.93901 321.13 C 139.431335 283.38211 183.20358 289.50903 182.91743 321.13 C 210.36397 280.68637 245.439 361.33017 221.91257 401.7738 C 250.14313 421.38193 221.55634 527.02783 198.38759 509.38 C 196.53339 538.79468 155.11465 549.0882 151.47925 509.38 C 128.02582 551.78644 79.12165 486.58417 112.48411 428.7362 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="150.45009" y="423.255" width="67" height="69" fill="url(#Obj_Gradient_27)"/><rect x="150.45009" y="423.255" width="67" height="69" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 163.61909 457.755 L 173.78435 439.755 L 194.11485 439.755 L 204.2801 457.755 L 194.11485 475.755 L 173.78435 475.755 Z" fill="url(#Obj_Gradient_28)"/><path d="M 163.61909 457.755 L 173.78435 439.755 L 194.11485 439.755 L 204.2801 457.755 L 194.11485 475.755 L 173.78435 475.755 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 62 372.755 L 83 372.755 C 85.484 372.755 87.5 378.13101 87.5 384.755 C 87.5 391.379 85.484 396.755 83 396.755 L 62 396.755 C 59.516 396.755 57.5 391.379 57.5 384.755 C 57.5 378.13101 59.516 372.755 62 372.755" fill="url(#Obj_Gradient_29)"/><path d="M 62 372.755 L 83 372.755 C 85.484 372.755 87.5 378.13101 87.5 384.755 C 87.5 391.379 85.484 396.755 83 396.755 L 62 396.755 C 59.516 396.755 57.5 391.379 57.5 384.755 C 57.5 378.13101 59.516 372.755 62 372.755" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="146.58009" y="343.255" width="67" height="69" fill="url(#Obj_Gradient_30)"/><rect x="146.58009" y="343.255" width="67" height="69" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 159.7491 379.255 L 169.91435 361.255 L 190.24486 361.255 L 200.41011 379.255 L 190.24486 397.255 L 169.91435 397.255 Z" fill="url(#Obj_Gradient_31)"/><path d="M 159.7491 379.255 L 169.91435 361.255 L 190.24486 361.255 L 200.41011 379.255 L 190.24486 397.255 L 169.91435 397.255 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 156.95009 444.72058 L 177.47003 459.6171 L 161.18541 478.3627 L 167.74992 484.755 L 185.53835 464.47714 L 204.47009 478.2378 L 210.95009 470.78964 L 190.42998 454.96198 L 207.70998 438.20334 L 197.98997 430.755 L 182.86996 449.3757 L 165.59009 434.47916 Z" fill="url(#Obj_Gradient_32)"/><path d="M 156.95009 444.72058 L 177.47003 459.6171 L 161.18541 478.3627 L 167.74992 484.755 L 185.53835 464.47714 L 204.47009 478.2378 L 210.95009 470.78964 L 190.42998 454.96198 L 207.70998 438.20334 L 197.98997 430.755 L 182.86996 449.3757 L 165.59009 434.47916 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(210.37738 346.23645)" fill="#262626"><tspan font-family="Arial Unicode MS" font-size="36" font-weight="500" fill="#262626" x="0" y="38" textLength="36">♛</tspan></text><text transform="translate(5.8400302 287.736)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x=".16308594" y="11" textLength="6.673828">3</tspan></text></g></g></svg> diff --git a/qpid/doc/book/src/java-broker/images/HA-2N-NetworkPartition.png b/qpid/doc/book/src/java-broker/images/HA-2N-NetworkPartition.png Binary files differdeleted file mode 100644 index cd4a196924..0000000000 --- a/qpid/doc/book/src/java-broker/images/HA-2N-NetworkPartition.png +++ /dev/null diff --git a/qpid/doc/book/src/java-broker/images/HA-2N-NetworkPartition.svg b/qpid/doc/book/src/java-broker/images/HA-2N-NetworkPartition.svg deleted file mode 100644 index 392489c5c8..0000000000 --- a/qpid/doc/book/src/java-broker/images/HA-2N-NetworkPartition.svg +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="-20 -12 600 596" width="50pc" height="596pt"><metadata xmlns:dc="http://purl.org/dc/elements/1.1/"><dc:date>2012-05-31 06:19Z</dc:date><!-- Produced by OmniGraffle Professional 5.3.6 --></metadata><defs><radialGradient cx="0" cy="0" r="1" id="Gradient" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset=".5" stop-color="#b5d0ea"/><stop offset="1" stop-color="#aaa"/></radialGradient><radialGradient id="Obj_Gradient" xl:href="#Gradient" gradientTransform="translate(474.08 425.5) scale(145.18695)"/><linearGradient x1="0" x2="1" id="Gradient_2" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#2824aa"/></linearGradient><linearGradient id="Obj_Gradient_2" xl:href="#Gradient_2" gradientTransform="translate(466.66 343.723) rotate(90) scale(69)"/><linearGradient x1="0" x2="1" id="Gradient_3" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#aa1f43"/></linearGradient><linearGradient id="Obj_Gradient_3" xl:href="#Gradient_3" gradientTransform="translate(466.65952 360.223) rotate(90) scale(36)"/><linearGradient x1="0" x2="1" id="Gradient_4" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#6923aa"/></linearGradient><linearGradient id="Obj_Gradient_4" xl:href="#Gradient_4" gradientTransform="translate(353.79 377) rotate(90) scale(24.00003)"/><linearGradient id="Obj_Gradient_5" xl:href="#Gradient_2" gradientTransform="translate(474.08 438) rotate(90) scale(69)"/><linearGradient x1="0" x2="1" id="Gradient_5" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#21aa1a"/></linearGradient><linearGradient id="Obj_Gradient_6" xl:href="#Gradient_5" gradientTransform="translate(474.0795 456) rotate(90) scale(36)"/><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" viewBox="-1 -3 6 6" markerWidth="6" markerHeight="6" color="black"><g><path d="M 3.7333333 0 L 0 -1.4 L 0 1.4 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/></g></marker><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="Arrow_Marker" viewBox="-1 -4 10 8" markerWidth="10" markerHeight="8" color="black"><g><path d="M 8 0 L 0 -3 L 0 3 Z" fill="none" stroke="currentColor" stroke-width="1"/></g></marker><radialGradient id="Obj_Gradient_7" xl:href="#Gradient" gradientTransform="translate(470.5 137.5) scale(145.18695)"/><linearGradient id="Obj_Gradient_8" xl:href="#Gradient_2" gradientTransform="translate(488 145.5) rotate(90) scale(69)"/><linearGradient x1="0" x2="1" id="Gradient_6" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#6ead6a"/></linearGradient><linearGradient id="Obj_Gradient_9" xl:href="#Gradient_6" gradientTransform="translate(487.9995 162) rotate(90) scale(36)"/><linearGradient id="Obj_Gradient_10" xl:href="#Gradient_4" gradientTransform="translate(350.21 89) rotate(90) scale(24)"/><radialGradient cx="0" cy="0" r="1" id="Gradient_7" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset=".5" stop-color="#ea061f"/><stop offset="1" stop-color="#aaa"/></radialGradient><radialGradient id="Obj_Gradient_11" xl:href="#Gradient_7" gradientTransform="translate(487.17532 136.54291) scale(20.071926)"/><linearGradient id="Obj_Gradient_12" xl:href="#Gradient_2" gradientTransform="translate(466.66 55.445) rotate(90) scale(69)"/><linearGradient x1="0" x2="1" id="Gradient_8" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#b6b4b5"/></linearGradient><linearGradient id="Obj_Gradient_13" xl:href="#Gradient_8" gradientTransform="translate(466.65952 71.945) rotate(90) scale(36)"/><font-face font-family="Helvetica" font-size="12" units-per-em="1000" underline-position="-75.683594" underline-thickness="49.316406" slope="0" x-height="532.22656" cap-height="719.72656" ascent="770.01953" descent="-229.98047" font-weight="bold"><font-face-src><font-face-name name="Helvetica-Bold"/></font-face-src></font-face><radialGradient id="Obj_Gradient_14" xl:href="#Gradient" gradientTransform="translate(200.35501 140.5) scale(145.18695)"/><linearGradient id="Obj_Gradient_15" xl:href="#Gradient_2" gradientTransform="translate(212.855 150) rotate(90) scale(69)"/><linearGradient x1="0" x2="1" id="Gradient_9" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#0caa25"/></linearGradient><linearGradient id="Obj_Gradient_16" xl:href="#Gradient_9" gradientTransform="translate(212.85451 166.5) rotate(90) scale(36)"/><linearGradient id="Obj_Gradient_17" xl:href="#Gradient_4" gradientTransform="translate(80.355003 115) rotate(90) scale(24)"/><linearGradient id="Obj_Gradient_18" xl:href="#Gradient_2" gradientTransform="translate(195.355 63.999996) rotate(90) scale(69.000007)"/><linearGradient x1="0" x2="1" id="Gradient_10" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#aa172d"/></linearGradient><linearGradient id="Obj_Gradient_19" xl:href="#Gradient_10" gradientTransform="translate(195.35451 82) rotate(90) scale(36)"/><radialGradient id="Obj_Gradient_20" xl:href="#Gradient" gradientTransform="translate(180.29001 423.5) scale(145.18695)"/><linearGradient id="Obj_Gradient_21" xl:href="#Gradient_2" gradientTransform="translate(172.37 346) rotate(90) scale(69)"/><linearGradient x1="0" x2="1" id="Gradient_11" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#aaa3a7"/></linearGradient><linearGradient id="Obj_Gradient_22" xl:href="#Gradient_11" gradientTransform="translate(172.36951 360.5) rotate(90) scale(36)"/><linearGradient id="Obj_Gradient_23" xl:href="#Gradient_4" gradientTransform="translate(72.5 379) rotate(90) scale(24)"/><linearGradient id="Obj_Gradient_24" xl:href="#Gradient_2" gradientTransform="translate(180.953 435.5) rotate(90) scale(69)"/><linearGradient x1="0" x2="1" id="Gradient_12" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#66ab61"/></linearGradient><linearGradient id="Obj_Gradient_25" xl:href="#Gradient_12" gradientTransform="translate(180.95251 452) rotate(90) scale(36)"/><linearGradient x1="0" x2="1" id="Gradient_13" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#b5011d"/></linearGradient><linearGradient id="Obj_Gradient_26" xl:href="#Gradient_13" gradientTransform="translate(169.38802 421.22614) rotate(45) scale(21.988586)"/></defs><g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1"><title>Canvas 5</title><g><title>Layer 1</title><rect x="281.29001" y="287" width="278.00003" height="273" fill="white"/><rect x="281.29001" y="287" width="278.00003" height="273" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 420.11401 438.9812 C 396.51749 425.5 405.92719 312.01035 443.5689 331.375 C 447.06122 293.6271 490.8335 299.75403 490.54733 331.375 C 517.9939 290.93137 553.0689 371.57516 529.54248 412.0188 C 557.773 431.62692 529.18622 537.27283 506.0175 519.625 C 504.1633 549.03967 462.74454 559.3332 459.10913 519.625 C 435.6557 562.03143 386.75156 496.82916 420.11401 438.9812 Z" fill="url(#Obj_Gradient)"/><path d="M 420.11401 438.9812 C 396.51749 425.5 405.92719 312.01035 443.5689 331.375 C 447.06122 293.6271 490.8335 299.75403 490.54733 331.375 C 517.9939 290.93137 553.0689 371.57516 529.54248 412.0188 C 557.773 431.62692 529.18622 537.27283 506.0175 519.625 C 504.1633 549.03967 462.74454 559.3332 459.10913 519.625 C 435.6557 562.03143 386.75156 496.82916 420.11401 438.9812 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="433.16" y="343.723" width="67" height="69" fill="url(#Obj_Gradient_2)"/><rect x="433.16" y="343.723" width="67" height="69" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 446.329 378.223 L 456.49426 360.223 L 476.82477 360.223 L 486.99002 378.223 L 476.82477 396.223 L 456.49426 396.223 Z" fill="url(#Obj_Gradient_3)"/><path d="M 446.329 378.223 L 456.49426 360.223 L 476.82477 360.223 L 486.99002 378.223 L 476.82477 396.223 L 456.49426 396.223 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 343.29 377 L 364.29 377 C 366.77402 377 368.79 382.376 368.79 389 C 368.79 395.624 366.77402 401 364.29 401 L 343.29 401 C 340.806 401 338.79 395.624 338.79 389 C 338.79 382.376 340.806 377 343.29 377" fill="url(#Obj_Gradient_4)"/><path d="M 343.29 377 L 364.29 377 C 366.77402 377 368.79 382.376 368.79 389 C 368.79 395.624 366.77402 401 364.29 401 L 343.29 401 C 340.806 401 338.79 395.624 338.79 389 C 338.79 382.376 340.806 377 343.29 377" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="440.57999" y="438" width="67" height="69" fill="url(#Obj_Gradient_5)"/><rect x="440.57999" y="438" width="67" height="69" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 453.749 474 L 463.91425 456 L 484.24475 456 L 494.41 474 L 484.24475 492 L 463.91425 492 Z" fill="url(#Obj_Gradient_6)"/><path d="M 453.749 474 L 463.91425 456 L 484.24475 456 L 494.41 474 L 484.24475 492 L 463.91425 492 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 358.11069 401.47244 C 364.4065 419.64648 360.82266 444.49713 377 456 C 390.09668 465.31238 416.1513 465.88107 439.42624 468.3237" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="3"/><path d="M 480.27563 455.52597 C 482.5702 448.68466 488.31772 444.80447 487.16 435 C 486.26978 427.46088 481.2962 416.41544 476.94943 405.90878" marker-end="url(#Arrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="281.29001" y="4" width="278.00003" height="273" fill="white"/><rect x="281.29001" y="4" width="278.00003" height="273" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 416.53403 150.98122 C 392.9375 137.5 402.3472 24.010353 439.98892 43.375 C 443.48123 5.6271057 487.2535 11.754013 486.96735 43.375 C 514.41388 2.931366 549.4889 83.575165 525.96246 124.01879 C 554.19305 143.62691 525.60626 249.27281 502.4375 231.625 C 500.5833 261.03967 459.16455 271.33319 455.52917 231.625 C 432.07571 274.03143 383.17157 208.82918 416.53403 150.98122 Z" fill="url(#Obj_Gradient_7)"/><path d="M 416.53403 150.98122 C 392.9375 137.5 402.3472 24.010353 439.98892 43.375 C 443.48123 5.6271057 487.2535 11.754013 486.96735 43.375 C 514.41388 2.931366 549.4889 83.575165 525.96246 124.01879 C 554.19305 143.62691 525.60626 249.27281 502.4375 231.625 C 500.5833 261.03967 459.16455 271.33319 455.52917 231.625 C 432.07571 274.03143 383.17157 208.82918 416.53403 150.98122 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="454.5" y="145.5" width="67" height="69" fill="url(#Obj_Gradient_8)"/><rect x="454.5" y="145.5" width="67" height="69" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 467.669 180 L 477.83426 162 L 498.16476 162 L 508.33002 180 L 498.16476 198 L 477.83426 198 Z" fill="url(#Obj_Gradient_9)"/><path d="M 467.669 180 L 477.83426 162 L 498.16476 162 L 508.33002 180 L 498.16476 198 L 477.83426 198 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 339.71 89 L 360.71 89 C 363.194 89 365.21 94.376 365.21 101 C 365.21 107.624 363.194 113 360.71 113 L 339.71 113 C 337.22598 113 335.21 107.624 335.21 101 C 335.21 94.376 337.22598 89 339.71 89" fill="url(#Obj_Gradient_10)"/><path d="M 339.71 89 L 360.71 89 C 363.194 89 365.21 94.376 365.21 101 C 365.21 107.624 363.194 113 360.71 113 L 339.71 113 C 337.22598 113 335.21 107.624 335.21 101 C 335.21 94.376 337.22598 89 339.71 89" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 474.53464 129.01602 L 484.14154 137.61832 L 476.51752 148.44287 L 479.59082 152.134415 L 487.91891 140.42473 L 496.7823 148.37096 L 499.816 144.06992 L 490.20901 134.93007 L 498.2991 125.25254 L 493.74844 120.95141 L 486.66962 131.70415 L 478.57965 123.101974 Z" fill="url(#Obj_Gradient_11)"/><path d="M 474.53464 129.01602 L 484.14154 137.61832 L 476.51752 148.44287 L 479.59082 152.134415 L 487.91891 140.42473 L 496.7823 148.37096 L 499.816 144.06992 L 490.20901 134.93007 L 498.2991 125.25254 L 493.74844 120.95141 L 486.66962 131.70415 L 478.57965 123.101974 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="433.16" y="55.445" width="67" height="69" fill="url(#Obj_Gradient_12)"/><rect x="433.16" y="55.445" width="67" height="69" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 446.329 89.945 L 456.49426 71.945 L 476.82477 71.945 L 486.99002 89.945 L 476.82477 107.945 L 456.49426 107.945 Z" fill="url(#Obj_Gradient_13)"/><path d="M 446.329 89.945 L 456.49426 71.945 L 476.82477 71.945 L 486.99002 89.945 L 476.82477 107.945 L 456.49426 107.945 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 487.69427 161.50006 C 487.55954 153.3342 489.4468 145.84863 487.29 137 C 485.7971 130.87509 482.3659 124.09454 479.00916 117.33957" marker-end="url(#Arrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(5.8400302 4)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x=".16308594" y="11" textLength="6.673828">1</tspan></text><text transform="translate(286 6)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x=".16308594" y="11" textLength="6.673828">2</tspan></text><rect x="0" y="4" width="278" height="273" fill="white"/><rect x="0" y="4" width="278" height="273" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 146.38904 153.98122 C 122.79251 140.5 132.20221 27.010353 169.84393 46.375 C 173.33626 8.6271057 217.1085 14.754013 216.82236 46.375 C 244.26889 5.931366 279.34393 86.575165 255.81749 127.01879 C 284.04803 146.62691 255.46124 252.27281 232.29251 234.625 C 230.43831 264.03967 189.01958 274.33319 185.38417 234.625 C 161.930725 277.03143 113.02657 211.82918 146.38904 153.98122 Z" fill="url(#Obj_Gradient_14)"/><path d="M 146.38904 153.98122 C 122.79251 140.5 132.20221 27.010353 169.84393 46.375 C 173.33626 8.6271057 217.1085 14.754013 216.82236 46.375 C 244.26889 5.931366 279.34393 86.575165 255.81749 127.01879 C 284.04803 146.62691 255.46124 252.27281 232.29251 234.625 C 230.43831 264.03967 189.01958 274.33319 185.38417 234.625 C 161.930725 277.03143 113.02657 211.82918 146.38904 153.98122 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="179.355" y="150" width="67" height="69" fill="url(#Obj_Gradient_15)"/><rect x="179.355" y="150" width="67" height="69" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 192.524 184.5 L 202.68925 166.5 L 223.01976 166.5 L 233.18501 184.5 L 223.01976 202.5 L 202.68925 202.5 Z" fill="url(#Obj_Gradient_16)"/><path d="M 192.524 184.5 L 202.68925 166.5 L 223.01976 166.5 L 233.18501 184.5 L 223.01976 202.5 L 202.68925 202.5 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 69.855003 115 L 90.855003 115 C 93.339005 115 95.355003 120.376 95.355003 127 C 95.355003 133.62399 93.339005 139 90.855003 139 L 69.855003 139 C 67.371002 139 65.355003 133.62399 65.355003 127 C 65.355003 120.376 67.371002 115 69.855003 115" fill="url(#Obj_Gradient_17)"/><path d="M 69.855003 115 L 90.855003 115 C 93.339005 115 95.355003 120.376 95.355003 127 C 95.355003 133.62399 93.339005 139 90.855003 139 L 69.855003 139 C 67.371002 139 65.355003 133.62399 65.355003 127 C 65.355003 120.376 67.371002 115 69.855003 115" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="161.855" y="64" width="67" height="69" fill="url(#Obj_Gradient_18)"/><rect x="161.855" y="64" width="67" height="69" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 175.024 100 L 185.18925 82 L 205.51976 82 L 215.68501 100 L 205.51976 118 L 185.18925 118 Z" fill="url(#Obj_Gradient_19)"/><path d="M 175.024 100 L 185.18925 82 L 205.51976 82 L 215.68501 100 L 205.51976 118 L 185.18925 118 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 88 139 C 101.11702 162.9976 109.51097 202.49907 127.355 211 C 141.45248 217.71606 161.45502 205.08597 180.36313 196.03654" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="3"/><path d="M 222.38084 166.05576 C 227.03842 157.03807 238.59448 147.85422 236.355 139 C 234.66139 132.304 225.07715 125.79347 216.5538 119.25858" marker-end="url(#Arrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(286 293)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x=".16308594" y="11" textLength="6.673828">4</tspan></text><text transform="translate(5.8400302 6)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x=".16308594" y="11" textLength="6.673828">1</tspan></text><text transform="translate(5.840027 287)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x=".16308594" y="11" textLength="6.673828">3</tspan></text><rect x="0" y="287" width="278" height="273" fill="white"/><rect x="0" y="287" width="278" height="273" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 126.32403 436.9812 C 102.72751 423.5 112.13721 310.01035 149.77893 329.375 C 153.27126 291.6271 197.0435 297.75403 196.75735 329.375 C 224.20389 288.93137 259.27893 369.57516 235.75249 410.0188 C 263.98303 429.62692 235.39624 535.27283 212.22751 517.625 C 210.37331 547.03967 168.95457 557.3332 165.31917 517.625 C 141.86572 560.03143 92.96157 494.82916 126.32403 436.9812 Z" fill="url(#Obj_Gradient_20)"/><path d="M 126.32403 436.9812 C 102.72751 423.5 112.13721 310.01035 149.77893 329.375 C 153.27126 291.6271 197.0435 297.75403 196.75735 329.375 C 224.20389 288.93137 259.27893 369.57516 235.75249 410.0188 C 263.98303 429.62692 235.39624 535.27283 212.22751 517.625 C 210.37331 547.03967 168.95457 557.3332 165.31917 517.625 C 141.86572 560.03143 92.96157 494.82916 126.32403 436.9812 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="138.869995" y="346" width="67" height="69" fill="url(#Obj_Gradient_21)"/><rect x="138.869995" y="346" width="67" height="69" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 152.039 378.5 L 162.20425 360.5 L 182.53476 360.5 L 192.70001 378.5 L 182.53476 396.5 L 162.20425 396.5 Z" fill="url(#Obj_Gradient_22)"/><path d="M 152.039 378.5 L 162.20425 360.5 L 182.53476 360.5 L 192.70001 378.5 L 182.53476 396.5 L 162.20425 396.5 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 62 379 L 83 379 C 85.484 379 87.5 384.376 87.5 391 C 87.5 397.624 85.484 403 83 403 L 62 403 C 59.516 403 57.5 397.624 57.5 391 C 57.5 384.376 59.516 379 62 379" fill="url(#Obj_Gradient_23)"/><path d="M 62 379 L 83 379 C 85.484 379 87.5 384.376 87.5 391 C 87.5 397.624 85.484 403 83 403 L 62 403 C 59.516 403 57.5 397.624 57.5 391 C 57.5 384.376 59.516 379 62 379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="147.453" y="435.5" width="67" height="69" fill="url(#Obj_Gradient_24)"/><rect x="147.453" y="435.5" width="67" height="69" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 160.62201 470 L 170.78726 452 L 191.11777 452 L 201.28302 470 L 191.11777 488 L 170.78726 488 Z" fill="url(#Obj_Gradient_25)"/><path d="M 160.62201 470 L 170.78726 452 L 191.11777 452 L 201.28302 470 L 191.11777 488 L 170.78726 488 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 181.17079 451.50006 C 181.27284 442.8504 182.34718 434.63248 181.47696 425.54852 C 180.89874 419.51263 179.46176 413.09204 178.022 406.67056" marker-end="url(#Arrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 162.48625 439.34933 L 182.67911 418.90622 C 182.67911 418.90622 176.37192 410.54022 180.79669 410.70734 C 185.22139 410.87448 187.68919 413.07565 187.68919 413.07565 L 183.62592 416.69077 L 189.96997 423.03482 L 193.83488 419.61807 C 193.83488 419.61807 196.0623 421.44876 196.25372 421.64017 C 196.44499 421.83145 196.1347 425.18307 195.37999 426.3204 C 194.62503 427.45789 187.93712 423.79865 187.93724 423.79877 C 187.93724 423.79877 166.50412 443.3672 166.44502 443.4263 C 166.38591 443.4854 165.92685 444.32736 163.88141 442.16357 C 161.83583 439.99976 162.48625 439.34933 162.48625 439.34933 Z" fill="url(#Obj_Gradient_26)"/><path d="M 162.48625 439.34933 L 182.67911 418.90622 C 182.67911 418.90622 176.37192 410.54022 180.79669 410.70734 C 185.22139 410.87448 187.68919 413.07565 187.68919 413.07565 L 183.62592 416.69077 L 189.96997 423.03482 L 193.83488 419.61807 C 193.83488 419.61807 196.0623 421.44876 196.25372 421.64017 C 196.44499 421.83145 196.1347 425.18307 195.37999 426.3204 C 194.62503 427.45789 187.93712 423.79865 187.93724 423.79877 C 187.93724 423.79877 166.50412 443.3672 166.44502 443.4263 C 166.38591 443.4854 165.92685 444.32736 163.88141 442.16357 C 161.83583 439.99976 162.48625 439.34933 162.48625 439.34933 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 75.526443 403.48596 C 80.05397 422.16476 74.80702 448.81583 89.11038 459.52802 C 100.46647 468.0329 124.151474 466.49478 145.480865 466.87387" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="3"/><text transform="translate(10 297)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x=".16308594" y="11" textLength="6.673828">3</tspan></text></g></g></svg> diff --git a/qpid/doc/book/src/java-broker/images/HA-2N-Normal.png b/qpid/doc/book/src/java-broker/images/HA-2N-Normal.png Binary files differdeleted file mode 100644 index eeaad4f230..0000000000 --- a/qpid/doc/book/src/java-broker/images/HA-2N-Normal.png +++ /dev/null diff --git a/qpid/doc/book/src/java-broker/images/HA-2N-Normal.svg b/qpid/doc/book/src/java-broker/images/HA-2N-Normal.svg deleted file mode 100644 index 68ade6acd0..0000000000 --- a/qpid/doc/book/src/java-broker/images/HA-2N-Normal.svg +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="-11 -10 318 313" width="318pt" height="313pt"><metadata xmlns:dc="http://purl.org/dc/elements/1.1/"><dc:date>2012-05-31 06:19Z</dc:date><!-- Produced by OmniGraffle Professional 5.3.6 --></metadata><defs><radialGradient cx="0" cy="0" r="1" id="Gradient" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset=".5" stop-color="#b5d0ea"/><stop offset="1" stop-color="#aaa"/></radialGradient><radialGradient id="Obj_Gradient" xl:href="#Gradient" gradientTransform="translate(209.35501 142.5) scale(145.18695)"/><linearGradient x1="0" x2="1" id="Gradient_2" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#2824aa"/></linearGradient><linearGradient id="Obj_Gradient_2" xl:href="#Gradient_2" gradientTransform="translate(221.85501 152) rotate(90) scale(69)"/><linearGradient x1="0" x2="1" id="Gradient_3" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#0caa25"/></linearGradient><linearGradient id="Obj_Gradient_3" xl:href="#Gradient_3" gradientTransform="translate(221.85452 168.5) rotate(90) scale(36)"/><linearGradient x1="0" x2="1" id="Gradient_4" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#6923aa"/></linearGradient><linearGradient id="Obj_Gradient_4" xl:href="#Gradient_4" gradientTransform="translate(71.35501 115) rotate(90) scale(24)"/><linearGradient id="Obj_Gradient_5" xl:href="#Gradient_2" gradientTransform="translate(204.35501 66) rotate(90) scale(69.000007)"/><linearGradient x1="0" x2="1" id="Gradient_5" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#aa172d"/></linearGradient><linearGradient id="Obj_Gradient_6" xl:href="#Gradient_5" gradientTransform="translate(204.35452 84) rotate(90) scale(36)"/><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" viewBox="-1 -3 6 6" markerWidth="6" markerHeight="6" color="black"><g><path d="M 3.7333333 0 L 0 -1.4 L 0 1.4 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/></g></marker><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="Arrow_Marker" viewBox="-1 -4 10 8" markerWidth="10" markerHeight="8" color="black"><g><path d="M 8 0 L 0 -3 L 0 3 Z" fill="none" stroke="currentColor" stroke-width="1"/></g></marker></defs><g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1"><title>Canvas 1</title><g><title>Layer 1</title><rect x="9" y="6" width="278" height="273" fill="white"/><rect x="9" y="6" width="278" height="273" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 155.38904 155.98122 C 131.79251 142.5 141.20221 29.010353 178.84393 48.375 C 182.33626 10.627106 226.1085 16.754013 225.82236 48.375 C 253.26889 7.931366 288.34393 88.575165 264.8175 129.01878 C 293.04803 148.62691 264.46124 254.27281 241.29251 236.625 C 239.43831 266.03967 198.01958 276.33319 194.38417 236.625 C 170.93073 279.03143 122.02657 213.82918 155.38904 155.98122 Z" fill="url(#Obj_Gradient)"/><path d="M 155.38904 155.98122 C 131.79251 142.5 141.20221 29.010353 178.84393 48.375 C 182.33626 10.627106 226.1085 16.754013 225.82236 48.375 C 253.26889 7.931366 288.34393 88.575165 264.8175 129.01878 C 293.04803 148.62691 264.46124 254.27281 241.29251 236.625 C 239.43831 266.03967 198.01958 276.33319 194.38417 236.625 C 170.93073 279.03143 122.02657 213.82918 155.38904 155.98122 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="188.35501" y="152" width="67" height="69" fill="url(#Obj_Gradient_2)"/><rect x="188.35501" y="152" width="67" height="69" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 201.52402 186.5 L 211.68927 168.5 L 232.01978 168.5 L 242.18503 186.5 L 232.01978 204.5 L 211.68927 204.5 Z" fill="url(#Obj_Gradient_3)"/><path d="M 201.52402 186.5 L 211.68927 168.5 L 232.01978 168.5 L 242.18503 186.5 L 232.01978 204.5 L 211.68927 204.5 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 60.85501 115 L 81.85501 115 C 84.33901 115 86.35501 120.376 86.35501 127 C 86.35501 133.62399 84.33901 139 81.85501 139 L 60.85501 139 C 58.37101 139 56.35501 133.62399 56.35501 127 C 56.35501 120.376 58.37101 115 60.85501 115" fill="url(#Obj_Gradient_4)"/><path d="M 60.85501 115 L 81.85501 115 C 84.33901 115 86.35501 120.376 86.35501 127 C 86.35501 133.62399 84.33901 139 81.85501 139 L 60.85501 139 C 58.37101 139 56.35501 133.62399 56.35501 127 C 56.35501 120.376 58.37101 115 60.85501 115" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="170.85501" y="66" width="67" height="69" fill="url(#Obj_Gradient_5)"/><rect x="170.85501" y="66" width="67" height="69" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 184.02402 102 L 194.18927 84 L 214.51978 84 L 224.68503 102 L 214.51978 120 L 194.18927 120 Z" fill="url(#Obj_Gradient_6)"/><path d="M 184.02402 102 L 194.18927 84 L 214.51978 84 L 224.68503 102 L 214.51978 120 L 194.18927 120 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 83.35501 143 C 101.01991 166.33099 116.23704 204.83237 136.35501 213 C 152.19005 219.42882 171.06885 207.06767 189.39609 198.1017" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="3"/><path d="M 231.38086 168.05576 C 236.03844 159.03807 247.59447 149.85422 245.35498 141 C 243.66136 134.304 234.07715 127.79349 225.55383 121.2586" marker-end="url(#Arrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/></g></g></svg> diff --git a/qpid/doc/book/src/java-broker/images/HA-2N-ReplicaFail.png b/qpid/doc/book/src/java-broker/images/HA-2N-ReplicaFail.png Binary files differdeleted file mode 100644 index 769fc959fc..0000000000 --- a/qpid/doc/book/src/java-broker/images/HA-2N-ReplicaFail.png +++ /dev/null diff --git a/qpid/doc/book/src/java-broker/images/HA-2N-ReplicaFail.svg b/qpid/doc/book/src/java-broker/images/HA-2N-ReplicaFail.svg deleted file mode 100644 index 8caf055b98..0000000000 --- a/qpid/doc/book/src/java-broker/images/HA-2N-ReplicaFail.svg +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="-20 -16 600 590" width="50pc" height="590pt"><metadata xmlns:dc="http://purl.org/dc/elements/1.1/"><dc:date>2012-05-31 06:19Z</dc:date><!-- Produced by OmniGraffle Professional 5.3.6 --></metadata><defs><radialGradient cx="0" cy="0" r="1" id="Gradient" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset=".5" stop-color="#b5d0ea"/><stop offset="1" stop-color="#aaa"/></radialGradient><radialGradient id="Obj_Gradient" xl:href="#Gradient" gradientTransform="translate(470.5 133.5) scale(145.18695)"/><linearGradient x1="0" x2="1" id="Gradient_2" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#2824aa"/></linearGradient><linearGradient id="Obj_Gradient_2" xl:href="#Gradient_2" gradientTransform="translate(488 141.5) rotate(90) scale(69)"/><linearGradient x1="0" x2="1" id="Gradient_3" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#6cad67"/></linearGradient><linearGradient id="Obj_Gradient_3" xl:href="#Gradient_3" gradientTransform="translate(487.9995 158) rotate(90) scale(36)"/><linearGradient x1="0" x2="1" id="Gradient_4" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#6923aa"/></linearGradient><linearGradient id="Obj_Gradient_4" xl:href="#Gradient_4" gradientTransform="translate(350.21 85) rotate(90) scale(24)"/><linearGradient id="Obj_Gradient_5" xl:href="#Gradient_2" gradientTransform="translate(470.5 55.5) rotate(90) scale(69)"/><linearGradient x1="0" x2="1" id="Gradient_5" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#aaaaa3"/></linearGradient><linearGradient id="Obj_Gradient_6" xl:href="#Gradient_5" gradientTransform="translate(470.4995 73.5) rotate(90) scale(36)"/><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" viewBox="-1 -3 6 6" markerWidth="6" markerHeight="6" color="black"><g><path d="M 3.7333333 0 L 0 -1.4 L 0 1.4 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/></g></marker><radialGradient cx="0" cy="0" r="1" id="Gradient_6" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset=".5" stop-color="#ea061f"/><stop offset="1" stop-color="#aaa"/></radialGradient><radialGradient id="Obj_Gradient_7" xl:href="#Gradient_6" gradientTransform="translate(472.145 91.5) scale(38.183766)"/><font-face font-family="Helvetica" font-size="12" units-per-em="1000" underline-position="-75.683594" underline-thickness="49.316406" slope="0" x-height="532.22656" cap-height="719.72656" ascent="770.01953" descent="-229.98047" font-weight="bold"><font-face-src><font-face-name name="Helvetica-Bold"/></font-face-src></font-face><radialGradient id="Obj_Gradient_8" xl:href="#Gradient" gradientTransform="translate(474.08 415.5) scale(145.18695)"/><linearGradient id="Obj_Gradient_9" xl:href="#Gradient_2" gradientTransform="translate(466.66 333.723) rotate(90) scale(69)"/><linearGradient x1="0" x2="1" id="Gradient_7" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#aa1f43"/></linearGradient><linearGradient id="Obj_Gradient_10" xl:href="#Gradient_7" gradientTransform="translate(466.65952 350.223) rotate(90) scale(36)"/><linearGradient id="Obj_Gradient_11" xl:href="#Gradient_4" gradientTransform="translate(353.79 367) rotate(90) scale(24.00003)"/><linearGradient id="Obj_Gradient_12" xl:href="#Gradient_2" gradientTransform="translate(474.08 428) rotate(90) scale(69)"/><linearGradient x1="0" x2="1" id="Gradient_8" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#21aa1a"/></linearGradient><linearGradient id="Obj_Gradient_13" xl:href="#Gradient_8" gradientTransform="translate(474.0795 446) rotate(90) scale(36)"/><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="Arrow_Marker" viewBox="-1 -4 10 8" markerWidth="10" markerHeight="8" color="black"><g><path d="M 8 0 L 0 -3 L 0 3 Z" fill="none" stroke="currentColor" stroke-width="1"/></g></marker><radialGradient id="Obj_Gradient_14" xl:href="#Gradient" gradientTransform="translate(180.29001 409.5) scale(145.18695)"/><linearGradient id="Obj_Gradient_15" xl:href="#Gradient_2" gradientTransform="translate(172.37 332) rotate(90) scale(69)"/><linearGradient x1="0" x2="1" id="Gradient_9" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#aaa3a7"/></linearGradient><linearGradient id="Obj_Gradient_16" xl:href="#Gradient_9" gradientTransform="translate(172.36951 346.5) rotate(90) scale(36)"/><linearGradient id="Obj_Gradient_17" xl:href="#Gradient_4" gradientTransform="translate(72.5 365) rotate(90) scale(24)"/><linearGradient id="Obj_Gradient_18" xl:href="#Gradient_2" gradientTransform="translate(180.953 421.5) rotate(90) scale(69)"/><linearGradient id="Obj_Gradient_19" xl:href="#Gradient_8" gradientTransform="translate(180.9525 438) rotate(90) scale(36)"/><linearGradient x1="0" x2="1" id="Gradient_10" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#b5011d"/></linearGradient><linearGradient id="Obj_Gradient_20" xl:href="#Gradient_10" gradientTransform="translate(134.69392 361.18848) rotate(45) scale(23.213103)"/><radialGradient id="Obj_Gradient_21" xl:href="#Gradient" gradientTransform="translate(200.35501 136.5) scale(145.18695)"/><linearGradient id="Obj_Gradient_22" xl:href="#Gradient_2" gradientTransform="translate(212.855 146) rotate(90) scale(69)"/><linearGradient x1="0" x2="1" id="Gradient_11" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#0caa25"/></linearGradient><linearGradient id="Obj_Gradient_23" xl:href="#Gradient_11" gradientTransform="translate(212.85451 162.5) rotate(90) scale(36)"/><linearGradient id="Obj_Gradient_24" xl:href="#Gradient_4" gradientTransform="translate(80.355003 111) rotate(90) scale(24)"/><linearGradient id="Obj_Gradient_25" xl:href="#Gradient_2" gradientTransform="translate(195.355 59.999996) rotate(90) scale(69.000007)"/><linearGradient x1="0" x2="1" id="Gradient_12" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#aa172d"/></linearGradient><linearGradient id="Obj_Gradient_26" xl:href="#Gradient_12" gradientTransform="translate(195.35451 78) rotate(90) scale(36)"/></defs><g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1"><title>Canvas 4</title><g><title>Layer 1</title><rect x="281.29001" y="0" width="278.00003" height="273" fill="white"/><rect x="281.29001" y="0" width="278.00003" height="273" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 416.53403 146.98122 C 392.9375 133.5 402.3472 20.010353 439.98892 39.375 C 443.48123 1.6271057 487.2535 7.754013 486.96735 39.375 C 514.41388 -1.06863403 549.4889 79.575165 525.96246 120.01879 C 554.19305 139.62691 525.60626 245.27281 502.4375 227.625 C 500.5833 257.03967 459.16455 267.33319 455.52917 227.625 C 432.07571 270.03143 383.17157 204.82918 416.53403 146.98122 Z" fill="url(#Obj_Gradient)"/><path d="M 416.53403 146.98122 C 392.9375 133.5 402.3472 20.010353 439.98892 39.375 C 443.48123 1.6271057 487.2535 7.754013 486.96735 39.375 C 514.41388 -1.06863403 549.4889 79.575165 525.96246 120.01879 C 554.19305 139.62691 525.60626 245.27281 502.4375 227.625 C 500.5833 257.03967 459.16455 267.33319 455.52917 227.625 C 432.07571 270.03143 383.17157 204.82918 416.53403 146.98122 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="454.5" y="141.5" width="67" height="69" fill="url(#Obj_Gradient_2)"/><rect x="454.5" y="141.5" width="67" height="69" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 467.669 176 L 477.83426 158 L 498.16476 158 L 508.33002 176 L 498.16476 194 L 477.83426 194 Z" fill="url(#Obj_Gradient_3)"/><path d="M 467.669 176 L 477.83426 158 L 498.16476 158 L 508.33002 176 L 498.16476 194 L 477.83426 194 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 339.71 85 L 360.71 85 C 363.194 85 365.21 90.376 365.21 97 C 365.21 103.624 363.194 109 360.71 109 L 339.71 109 C 337.22598 109 335.21 103.624 335.21 97 C 335.21 90.376 337.22598 85 339.71 85" fill="url(#Obj_Gradient_4)"/><path d="M 339.71 85 L 360.71 85 C 363.194 85 365.21 90.376 365.21 97 C 365.21 103.624 363.194 109 360.71 109 L 339.71 109 C 337.22598 109 335.21 103.624 335.21 97 C 335.21 90.376 337.22598 85 339.71 85" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="437" y="55.5" width="67" height="69" fill="url(#Obj_Gradient_5)"/><rect x="437" y="55.5" width="67" height="69" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 450.169 91.5 L 460.33426 73.5 L 480.66476 73.5 L 490.83002 91.5 L 480.66476 109.5 L 460.33426 109.5 Z" fill="url(#Obj_Gradient_6)"/><path d="M 450.169 91.5 L 460.33426 73.5 L 480.66476 73.5 L 490.83002 91.5 L 480.66476 109.5 L 460.33426 109.5 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 355.0216 109.46646 C 360.75049 124.30949 353.19086 143.50909 372.21 154 C 388.3057 162.87834 423.4454 165.52399 453.4511 169.84836" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="3"/><path d="M 445.145 78.46559 L 465.66495 93.362083 L 449.3803 112.107697 L 455.94482 118.5 L 473.73325 98.22214 L 492.66498 111.982796 L 499.145 104.53463 L 478.62488 88.706955 L 495.90488 71.948326 L 486.18488 64.5 L 471.06485 83.12071 L 453.78497 68.224167 Z" fill="url(#Obj_Gradient_7)"/><path d="M 445.145 78.46559 L 465.66495 93.362083 L 449.3803 112.107697 L 455.94482 118.5 L 473.73325 98.22214 L 492.66498 111.982796 L 499.145 104.53463 L 478.62488 88.706955 L 495.90488 71.948326 L 486.18488 64.5 L 471.06485 83.12071 L 453.78497 68.224167 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(286 6)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x=".16308594" y="11" textLength="6.673828">2</tspan></text><rect x="281.29001" y="277" width="278.00003" height="273" fill="white"/><rect x="281.29001" y="277" width="278.00003" height="273" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 420.11401 428.9812 C 396.51749 415.5 405.92719 302.01035 443.5689 321.375 C 447.06122 283.6271 490.8335 289.75403 490.54733 321.375 C 517.9939 280.93137 553.0689 361.57516 529.54248 402.0188 C 557.773 421.62692 529.18622 527.27283 506.0175 509.625 C 504.1633 539.03967 462.74454 549.3332 459.10913 509.625 C 435.6557 552.03143 386.75156 486.82916 420.11401 428.9812 Z" fill="url(#Obj_Gradient_8)"/><path d="M 420.11401 428.9812 C 396.51749 415.5 405.92719 302.01035 443.5689 321.375 C 447.06122 283.6271 490.8335 289.75403 490.54733 321.375 C 517.9939 280.93137 553.0689 361.57516 529.54248 402.0188 C 557.773 421.62692 529.18622 527.27283 506.0175 509.625 C 504.1633 539.03967 462.74454 549.3332 459.10913 509.625 C 435.6557 552.03143 386.75156 486.82916 420.11401 428.9812 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="433.16" y="333.723" width="67" height="69" fill="url(#Obj_Gradient_9)"/><rect x="433.16" y="333.723" width="67" height="69" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 446.329 368.223 L 456.49426 350.223 L 476.82477 350.223 L 486.99002 368.223 L 476.82477 386.223 L 456.49426 386.223 Z" fill="url(#Obj_Gradient_10)"/><path d="M 446.329 368.223 L 456.49426 350.223 L 476.82477 350.223 L 486.99002 368.223 L 476.82477 386.223 L 456.49426 386.223 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 343.29 367 L 364.29 367 C 366.77402 367 368.79 372.376 368.79 379 C 368.79 385.624 366.77402 391 364.29 391 L 343.29 391 C 340.806 391 338.79 385.624 338.79 379 C 338.79 372.376 340.806 367 343.29 367" fill="url(#Obj_Gradient_11)"/><path d="M 343.29 367 L 364.29 367 C 366.77402 367 368.79 372.376 368.79 379 C 368.79 385.624 366.77402 391 364.29 391 L 343.29 391 C 340.806 391 338.79 385.624 338.79 379 C 338.79 372.376 340.806 367 343.29 367" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="440.57999" y="428" width="67" height="69" fill="url(#Obj_Gradient_12)"/><rect x="440.57999" y="428" width="67" height="69" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 453.749 464 L 463.91425 446 L 484.24475 446 L 494.41 464 L 484.24475 482 L 463.91425 482 Z" fill="url(#Obj_Gradient_13)"/><path d="M 453.749 464 L 463.91425 446 L 484.24475 446 L 494.41 464 L 484.24475 482 L 463.91425 482 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 358.11069 391.47244 C 364.4065 409.64648 360.82266 434.49713 377 446 C 390.09668 455.31238 416.1513 455.88107 439.42624 458.3237" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="3"/><path d="M 480.27567 445.52594 C 482.57022 438.68463 488.31775 434.80447 487.16 425 C 486.26974 417.46088 481.2962 406.41544 476.94943 395.90878" marker-end="url(#Arrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="0" y="277" width="278" height="273" fill="white"/><rect x="0" y="277" width="278" height="273" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 126.32403 422.9812 C 102.72751 409.5 112.13721 296.01035 149.77893 315.375 C 153.27126 277.6271 197.0435 283.75403 196.75735 315.375 C 224.20389 274.93137 259.27893 355.57516 235.75249 396.0188 C 263.98303 415.62692 235.39624 521.27283 212.22751 503.625 C 210.37331 533.03967 168.95457 543.3332 165.31917 503.625 C 141.86572 546.03143 92.96157 480.82916 126.32403 422.9812 Z" fill="url(#Obj_Gradient_14)"/><path d="M 126.32403 422.9812 C 102.72751 409.5 112.13721 296.01035 149.77893 315.375 C 153.27126 277.6271 197.0435 283.75403 196.75735 315.375 C 224.20389 274.93137 259.27893 355.57516 235.75249 396.0188 C 263.98303 415.62692 235.39624 521.27283 212.22751 503.625 C 210.37331 533.03967 168.95457 543.3332 165.31917 503.625 C 141.86572 546.03143 92.96157 480.82916 126.32403 422.9812 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="138.869995" y="332" width="67" height="69" fill="url(#Obj_Gradient_15)"/><rect x="138.869995" y="332" width="67" height="69" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 152.039 364.5 L 162.20425 346.5 L 182.53476 346.5 L 192.70001 364.5 L 182.53476 382.5 L 162.20425 382.5 Z" fill="url(#Obj_Gradient_16)"/><path d="M 152.039 364.5 L 162.20425 346.5 L 182.53476 346.5 L 192.70001 364.5 L 182.53476 382.5 L 162.20425 382.5 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 62 365 L 83 365 C 85.484 365 87.5 370.376 87.5 377 C 87.5 383.624 85.484 389 83 389 L 62 389 C 59.516 389 57.5 383.624 57.5 377 C 57.5 370.376 59.516 365 62 365" fill="url(#Obj_Gradient_17)"/><path d="M 62 365 L 83 365 C 85.484 365 87.5 370.376 87.5 377 C 87.5 383.624 85.484 389 83 389 L 62 389 C 59.516 389 57.5 383.624 57.5 377 C 57.5 370.376 59.516 365 62 365" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="147.453" y="421.5" width="67" height="69" fill="url(#Obj_Gradient_18)"/><rect x="147.453" y="421.5" width="67" height="69" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 160.62199 456 L 170.78725 438 L 191.11775 438 L 201.283 456 L 191.11775 474 L 170.78725 474 Z" fill="url(#Obj_Gradient_19)"/><path d="M 160.62199 456 L 170.78725 438 L 191.11775 438 L 201.283 456 L 191.11775 474 L 170.78725 474 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 75.38166 389.48718 C 79.4207 406.98972 73.112816 431.39597 87.5 442 C 99.01256 450.4853 123.781944 450.13696 145.894165 451.55768" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="3"/><path d="M 118.20667 389.5221 L 154.46504 352.99951 C 154.46504 352.99951 148.56358 343.41068 154.80022 342.02164 C 161.03673 340.63266 163.73999 342.85837 163.73999 342.85837 L 156.62726 349.49799 L 163.3246 356.19534 L 170.08206 349.91098 C 170.08206 349.91098 172.57938 351.69775 172.78146 351.89984 C 172.98338 352.10178 171.3094 356.98645 169.817 358.88278 C 168.32417 360.77942 160.15027 358.03 160.15039 358.03012 C 160.15039 358.03012 122.44828 393.7637 122.342445 393.86954 C 122.23656 393.9754 121.27359 395.3426 119.157745 393.0148 C 117.04174 390.68701 118.20667 389.5221 118.20667 389.5221 Z" fill="url(#Obj_Gradient_20)"/><path d="M 118.20667 389.5221 L 154.46504 352.99951 C 154.46504 352.99951 148.56358 343.41068 154.80022 342.02164 C 161.03673 340.63266 163.73999 342.85837 163.73999 342.85837 L 156.62726 349.49799 L 163.3246 356.19534 L 170.08206 349.91098 C 170.08206 349.91098 172.57938 351.69775 172.78146 351.89984 C 172.98338 352.10178 171.3094 356.98645 169.817 358.88278 C 168.32417 360.77942 160.15027 358.03 160.15039 358.03012 C 160.15039 358.03012 122.44828 393.7637 122.342445 393.86954 C 122.23656 393.9754 121.27359 395.3426 119.157745 393.0148 C 117.04174 390.68701 118.20667 389.5221 118.20667 389.5221 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="0" y="0" width="278" height="273" fill="white"/><rect x="0" y="0" width="278" height="273" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 146.38904 149.98122 C 122.79251 136.5 132.20221 23.010353 169.84393 42.375 C 173.33626 4.6271057 217.1085 10.754013 216.82236 42.375 C 244.26889 1.931366 279.34393 82.575165 255.81749 123.01879 C 284.04803 142.62691 255.46124 248.27281 232.29251 230.625 C 230.43831 260.03967 189.01958 270.33319 185.38417 230.625 C 161.930725 273.03143 113.02657 207.82918 146.38904 149.98122 Z" fill="url(#Obj_Gradient_21)"/><path d="M 146.38904 149.98122 C 122.79251 136.5 132.20221 23.010353 169.84393 42.375 C 173.33626 4.6271057 217.1085 10.754013 216.82236 42.375 C 244.26889 1.931366 279.34393 82.575165 255.81749 123.01879 C 284.04803 142.62691 255.46124 248.27281 232.29251 230.625 C 230.43831 260.03967 189.01958 270.33319 185.38417 230.625 C 161.930725 273.03143 113.02657 207.82918 146.38904 149.98122 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="179.355" y="146" width="67" height="69" fill="url(#Obj_Gradient_22)"/><rect x="179.355" y="146" width="67" height="69" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 192.524 180.5 L 202.68925 162.5 L 223.01976 162.5 L 233.18501 180.5 L 223.01976 198.5 L 202.68925 198.5 Z" fill="url(#Obj_Gradient_23)"/><path d="M 192.524 180.5 L 202.68925 162.5 L 223.01976 162.5 L 233.18501 180.5 L 223.01976 198.5 L 202.68925 198.5 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 69.855003 111 L 90.855003 111 C 93.339005 111 95.355003 116.376 95.355003 123 C 95.355003 129.62399 93.339005 135 90.855003 135 L 69.855003 135 C 67.371002 135 65.355003 129.62399 65.355003 123 C 65.355003 116.376 67.371002 111 69.855003 111" fill="url(#Obj_Gradient_24)"/><path d="M 69.855003 111 L 90.855003 111 C 93.339005 111 95.355003 116.376 95.355003 123 C 95.355003 129.62399 93.339005 135 90.855003 135 L 69.855003 135 C 67.371002 135 65.355003 129.62399 65.355003 123 C 65.355003 116.376 67.371002 111 69.855003 111" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="161.855" y="60" width="67" height="69" fill="url(#Obj_Gradient_25)"/><rect x="161.855" y="60" width="67" height="69" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 175.024 96 L 185.18925 78 L 205.51976 78 L 215.68501 96 L 205.51976 114 L 185.18925 114 Z" fill="url(#Obj_Gradient_26)"/><path d="M 175.024 96 L 185.18925 78 L 205.51976 78 L 215.68501 96 L 205.51976 114 L 185.18925 114 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 74.355003 137 C 92.019905 160.33099 107.23704 198.83237 127.355 207 C 143.19005 213.42882 162.06882 201.06767 180.39609 192.10172" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="3"/><path d="M 222.38084 162.05576 C 227.03842 153.03807 238.59448 143.85422 236.355 135 C 234.66139 128.303986 225.07715 121.79347 216.5538 115.25858" marker-end="url(#Arrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(5.8400302 4)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x=".16308594" y="11" textLength="6.673828">1</tspan></text><text transform="translate(8 286)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x=".16308594" y="11" textLength="6.673828">3</tspan></text><text transform="translate(286 286)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x=".16308594" y="11" textLength="6.673828">4</tspan></text></g></g></svg> diff --git a/qpid/doc/book/src/java-broker/images/HA-2N-SplitBrain.png b/qpid/doc/book/src/java-broker/images/HA-2N-SplitBrain.png Binary files differdeleted file mode 100644 index 74393648a5..0000000000 --- a/qpid/doc/book/src/java-broker/images/HA-2N-SplitBrain.png +++ /dev/null diff --git a/qpid/doc/book/src/java-broker/images/HA-2N-SplitBrain.svg b/qpid/doc/book/src/java-broker/images/HA-2N-SplitBrain.svg deleted file mode 100644 index 7fed44ea36..0000000000 --- a/qpid/doc/book/src/java-broker/images/HA-2N-SplitBrain.svg +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="-20 -16 598 591" width="598pt" height="591pt"><metadata xmlns:dc="http://purl.org/dc/elements/1.1/"><dc:date>2012-05-31 06:19Z</dc:date><!-- Produced by OmniGraffle Professional 5.3.6 --></metadata><defs><radialGradient cx="0" cy="0" r="1" id="Gradient" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset=".5" stop-color="#b5d0ea"/><stop offset="1" stop-color="#aaa"/></radialGradient><radialGradient id="Obj_Gradient" xl:href="#Gradient" gradientTransform="translate(200.35501 136.5) scale(145.18695)"/><linearGradient x1="0" x2="1" id="Gradient_2" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#2824aa"/></linearGradient><linearGradient id="Obj_Gradient_2" xl:href="#Gradient_2" gradientTransform="translate(212.855 146) rotate(90) scale(69)"/><linearGradient x1="0" x2="1" id="Gradient_3" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#0caa25"/></linearGradient><linearGradient id="Obj_Gradient_3" xl:href="#Gradient_3" gradientTransform="translate(212.85451 162.5) rotate(90) scale(36)"/><linearGradient x1="0" x2="1" id="Gradient_4" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#6923aa"/></linearGradient><linearGradient id="Obj_Gradient_4" xl:href="#Gradient_4" gradientTransform="translate(80.355003 111) rotate(90) scale(24)"/><linearGradient id="Obj_Gradient_5" xl:href="#Gradient_2" gradientTransform="translate(195.355 59.999996) rotate(90) scale(69.000007)"/><linearGradient x1="0" x2="1" id="Gradient_5" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#aa172d"/></linearGradient><linearGradient id="Obj_Gradient_6" xl:href="#Gradient_5" gradientTransform="translate(195.35451 78) rotate(90) scale(36)"/><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" viewBox="-1 -3 6 6" markerWidth="6" markerHeight="6" color="black"><g><path d="M 3.7333333 0 L 0 -1.4 L 0 1.4 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/></g></marker><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="Arrow_Marker" viewBox="-1 -4 10 8" markerWidth="10" markerHeight="8" color="black"><g><path d="M 8 0 L 0 -3 L 0 3 Z" fill="none" stroke="currentColor" stroke-width="1"/></g></marker><font-face font-family="Helvetica" font-size="12" units-per-em="1000" underline-position="-75.683594" underline-thickness="49.316406" slope="0" x-height="532.22656" cap-height="719.72656" ascent="770.01953" descent="-229.98047" font-weight="bold"><font-face-src><font-face-name name="Helvetica-Bold"/></font-face-src></font-face><radialGradient id="Obj_Gradient_7" xl:href="#Gradient" gradientTransform="translate(468.855 133.5) scale(145.18695)"/><linearGradient id="Obj_Gradient_8" xl:href="#Gradient_2" gradientTransform="translate(486.355 141.5) rotate(90) scale(69)"/><linearGradient x1="0" x2="1" id="Gradient_6" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#6ead6a"/></linearGradient><linearGradient id="Obj_Gradient_9" xl:href="#Gradient_6" gradientTransform="translate(486.3545 158) rotate(90) scale(36)"/><linearGradient id="Obj_Gradient_10" xl:href="#Gradient_4" gradientTransform="translate(348.565 85) rotate(90) scale(24)"/><radialGradient cx="0" cy="0" r="1" id="Gradient_7" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset=".5" stop-color="#ea061f"/><stop offset="1" stop-color="#aaa"/></radialGradient><radialGradient id="Obj_Gradient_11" xl:href="#Gradient_7" gradientTransform="translate(483.56808 132.68761) scale(20.071926)"/><linearGradient id="Obj_Gradient_12" xl:href="#Gradient_2" gradientTransform="translate(465.01501 51.445) rotate(90) scale(69)"/><linearGradient x1="0" x2="1" id="Gradient_8" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#b6b4b5"/></linearGradient><linearGradient id="Obj_Gradient_13" xl:href="#Gradient_8" gradientTransform="translate(465.0145 67.945) rotate(90) scale(36)"/><font-face font-family="Arial Unicode MS" font-size="36" panose-1="2 11 6 4 2 2 2 2 2 4" units-per-em="1000" underline-position="-100.097656" underline-thickness="49.804688" slope="0" x-height="529.78516" cap-height="728.02734" ascent="1068.84766" descent="-270.9961" font-weight="500"><font-face-src><font-face-name name="ArialUnicodeMS"/></font-face-src></font-face><radialGradient id="Obj_Gradient_14" xl:href="#Gradient" gradientTransform="translate(180.29001 414.5) scale(145.18695)"/><linearGradient id="Obj_Gradient_15" xl:href="#Gradient_2" gradientTransform="translate(172.37 337) rotate(90) scale(69)"/><linearGradient x1="0" x2="1" id="Gradient_9" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#66ab61"/></linearGradient><linearGradient id="Obj_Gradient_16" xl:href="#Gradient_9" gradientTransform="translate(172.36951 351.5) rotate(90) scale(36)"/><linearGradient id="Obj_Gradient_17" xl:href="#Gradient_4" gradientTransform="translate(53.18649 396) rotate(90) scale(24)"/><linearGradient id="Obj_Gradient_18" xl:href="#Gradient_2" gradientTransform="translate(180.953 426.5) rotate(90) scale(69)"/><linearGradient x1="0" x2="1" id="Gradient_10" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="white"/><stop offset="1" stop-color="#21aa1a"/></linearGradient><linearGradient id="Obj_Gradient_19" xl:href="#Gradient_10" gradientTransform="translate(180.9525 443) rotate(90) scale(36)"/><radialGradient id="Obj_Gradient_20" xl:href="#Gradient_7" gradientTransform="translate(185.10121 416.23209) scale(20.071926)"/><font-face font-family="Arial Unicode MS" font-size="72" panose-1="2 11 6 4 2 2 2 2 2 4" units-per-em="1000" underline-position="-100.097656" underline-thickness="49.804688" slope="0" x-height="529.78516" cap-height="728.02734" ascent="1068.84766" descent="-270.9961" font-weight="500"><font-face-src><font-face-name name="ArialUnicodeMS"/></font-face-src></font-face></defs><g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1"><title>Canvas 6</title><g><title>Layer 1</title><rect x="0" y="0" width="278" height="273" fill="white"/><rect x="0" y="0" width="278" height="273" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 146.38904 149.98122 C 122.79251 136.5 132.20221 23.010353 169.84393 42.375 C 173.33626 4.6271057 217.1085 10.754013 216.82236 42.375 C 244.26889 1.931366 279.34393 82.575165 255.81749 123.01879 C 284.04803 142.62691 255.46124 248.27281 232.29251 230.625 C 230.43831 260.03967 189.01958 270.33319 185.38417 230.625 C 161.930725 273.03143 113.02657 207.82918 146.38904 149.98122 Z" fill="url(#Obj_Gradient)"/><path d="M 146.38904 149.98122 C 122.79251 136.5 132.20221 23.010353 169.84393 42.375 C 173.33626 4.6271057 217.1085 10.754013 216.82236 42.375 C 244.26889 1.931366 279.34393 82.575165 255.81749 123.01879 C 284.04803 142.62691 255.46124 248.27281 232.29251 230.625 C 230.43831 260.03967 189.01958 270.33319 185.38417 230.625 C 161.930725 273.03143 113.02657 207.82918 146.38904 149.98122 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="179.355" y="146" width="67" height="69" fill="url(#Obj_Gradient_2)"/><rect x="179.355" y="146" width="67" height="69" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 192.524 180.5 L 202.68925 162.5 L 223.01976 162.5 L 233.18501 180.5 L 223.01976 198.5 L 202.68925 198.5 Z" fill="url(#Obj_Gradient_3)"/><path d="M 192.524 180.5 L 202.68925 162.5 L 223.01976 162.5 L 233.18501 180.5 L 223.01976 198.5 L 202.68925 198.5 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 69.855003 111 L 90.855003 111 C 93.339005 111 95.355003 116.376 95.355003 123 C 95.355003 129.62399 93.339005 135 90.855003 135 L 69.855003 135 C 67.371002 135 65.355003 129.62399 65.355003 123 C 65.355003 116.376 67.371002 111 69.855003 111" fill="url(#Obj_Gradient_4)"/><path d="M 69.855003 111 L 90.855003 111 C 93.339005 111 95.355003 116.376 95.355003 123 C 95.355003 129.62399 93.339005 135 90.855003 135 L 69.855003 135 C 67.371002 135 65.355003 129.62399 65.355003 123 C 65.355003 116.376 67.371002 111 69.855003 111" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="161.855" y="60" width="67" height="69" fill="url(#Obj_Gradient_5)"/><rect x="161.855" y="60" width="67" height="69" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 175.024 96 L 185.18925 78 L 205.51976 78 L 215.68501 96 L 205.51976 114 L 185.18925 114 Z" fill="url(#Obj_Gradient_6)"/><path d="M 175.024 96 L 185.18925 78 L 205.51976 78 L 215.68501 96 L 205.51976 114 L 185.18925 114 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 83 135 C 87.728355 147.33211 78.882416 164.66258 97.186493 172 C 112.61268 178.18378 147.33044 177.27293 176.94928 178.23598" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="3"/><path d="M 222.38084 162.05576 C 227.03842 153.03807 238.59448 143.85422 236.355 135 C 234.66139 128.303986 225.07715 121.79347 216.5538 115.25858" marker-end="url(#Arrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(285 6)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x=".16308594" y="11" textLength="6.673828">2</tspan></text><rect x="279.64499" y="0" width="278.00003" height="273" fill="white"/><rect x="279.64499" y="0" width="278.00003" height="273" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 414.88904 146.98122 C 391.2925 133.5 400.7022 20.010353 438.34393 39.375 C 441.83624 1.6271057 485.60852 7.754013 485.32236 39.375 C 512.76892 -1.06863403 547.84393 79.575165 524.3175 120.01879 C 552.54803 139.62691 523.96124 245.27281 500.7925 227.625 C 498.93832 257.03967 457.51956 267.33319 453.88416 227.625 C 430.43073 270.03143 381.52658 204.82918 414.88904 146.98122 Z" fill="url(#Obj_Gradient_7)"/><path d="M 414.88904 146.98122 C 391.2925 133.5 400.7022 20.010353 438.34393 39.375 C 441.83624 1.6271057 485.60852 7.754013 485.32236 39.375 C 512.76892 -1.06863403 547.84393 79.575165 524.3175 120.01879 C 552.54803 139.62691 523.96124 245.27281 500.7925 227.625 C 498.93832 257.03967 457.51956 267.33319 453.88416 227.625 C 430.43073 270.03143 381.52658 204.82918 414.88904 146.98122 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="452.855" y="141.5" width="66.99997" height="69" fill="url(#Obj_Gradient_8)"/><rect x="452.855" y="141.5" width="66.99997" height="69" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 466.024 176 L 476.18924 158 L 496.51974 158 L 506.685 176 L 496.51974 194 L 476.18924 194 Z" fill="url(#Obj_Gradient_9)"/><path d="M 466.024 176 L 476.18924 158 L 496.51974 158 L 506.685 176 L 496.51974 194 L 476.18924 194 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 338.065 85 L 359.065 85 C 361.54901 85 363.565 90.376 363.565 97 C 363.565 103.624 361.54901 109 359.065 109 L 338.065 109 C 335.581 109 333.565 103.624 333.565 97 C 333.565 90.376 335.581 85 338.065 85" fill="url(#Obj_Gradient_10)"/><path d="M 338.065 85 L 359.065 85 C 361.54901 85 363.565 90.376 363.565 97 C 363.565 103.624 361.54901 109 359.065 109 L 338.065 109 C 335.581 109 333.565 103.624 333.565 97 C 333.565 90.376 335.581 85 338.065 85" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 353.37662 109.46646 C 359.1055 124.30949 351.54587 143.50909 370.565 154 C 386.66068 162.87834 421.80042 165.52399 451.8061 169.84834" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="3"/><path d="M 470.9274 125.16071 L 480.5343 133.763016 L 472.91028 144.58757 L 475.98358 148.27911 L 484.31168 136.56943 L 493.17505 144.515656 L 496.20877 140.214615 L 486.60178 131.07477 L 494.69186 121.39724 L 490.1412 117.09611 L 483.06238 127.84885 L 474.9724 119.246674 Z" fill="url(#Obj_Gradient_11)"/><path d="M 470.9274 125.16071 L 480.5343 133.763016 L 472.91028 144.58757 L 475.98358 148.27911 L 484.31168 136.56943 L 493.17505 144.515656 L 496.20877 140.214615 L 486.60178 131.07477 L 494.69186 121.39724 L 490.1412 117.09611 L 483.06238 127.84885 L 474.9724 119.246674 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="431.51501" y="51.445" width="67" height="69" fill="url(#Obj_Gradient_12)"/><rect x="431.51501" y="51.445" width="67" height="69" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 444.684 85.945 L 454.84924 67.945 L 475.17975 67.945 L 485.345 85.945 L 475.17975 103.945 L 454.84924 103.945 Z" fill="url(#Obj_Gradient_13)"/><path d="M 444.684 85.945 L 454.84924 67.945 L 475.17975 67.945 L 485.345 85.945 L 475.17975 103.945 L 454.84924 103.945 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 485.18884 157.50099 C 484.6743 149.33481 485.7887 141.847626 483.645 133 C 482.1737 126.92762 479.1671 120.211914 476.20593 113.515625" marker-end="url(#Arrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(496 56.5)" fill="#262626"><tspan font-family="Arial Unicode MS" font-size="36" font-weight="500" fill="#262626" x="0" y="38" textLength="36">♛</tspan></text><text transform="translate(6 6)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x=".16308594" y="11" textLength="6.673828">1</tspan></text><rect x="0" y="278" width="278" height="273" fill="white"/><rect x="0" y="278" width="278" height="273" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 126.32403 427.9812 C 102.72751 414.5 112.13721 301.01035 149.77893 320.375 C 153.27126 282.6271 197.0435 288.75403 196.75735 320.375 C 224.20389 279.93137 259.27893 360.57516 235.75249 401.0188 C 263.98303 420.62692 235.39624 526.27283 212.22751 508.625 C 210.37331 538.03967 168.95457 548.3332 165.31917 508.625 C 141.86572 551.03143 92.96157 485.82916 126.32403 427.9812 Z" fill="url(#Obj_Gradient_14)"/><path d="M 126.32403 427.9812 C 102.72751 414.5 112.13721 301.01035 149.77893 320.375 C 153.27126 282.6271 197.0435 288.75403 196.75735 320.375 C 224.20389 279.93137 259.27893 360.57516 235.75249 401.0188 C 263.98303 420.62692 235.39624 526.27283 212.22751 508.625 C 210.37331 538.03967 168.95457 548.3332 165.31917 508.625 C 141.86572 551.03143 92.96157 485.82916 126.32403 427.9812 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="138.869995" y="337" width="67" height="69" fill="url(#Obj_Gradient_15)"/><rect x="138.869995" y="337" width="67" height="69" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 152.039 369.5 L 162.20425 351.5 L 182.53476 351.5 L 192.70001 369.5 L 182.53476 387.5 L 162.20425 387.5 Z" fill="url(#Obj_Gradient_16)"/><path d="M 152.039 369.5 L 162.20425 351.5 L 182.53476 351.5 L 192.70001 369.5 L 182.53476 387.5 L 162.20425 387.5 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 42.68649 396 L 63.68649 396 C 66.170486 396 68.186493 401.376 68.186493 408 C 68.186493 414.624 66.170486 420 63.68649 420 L 42.68649 420 C 40.202488 420 38.18649 414.624 38.18649 408 C 38.18649 401.376 40.202488 396 42.68649 396" fill="url(#Obj_Gradient_17)"/><path d="M 42.68649 396 L 63.68649 396 C 66.170486 396 68.186493 401.376 68.186493 408 C 68.186493 414.624 66.170486 420 63.68649 420 L 42.68649 420 C 40.202488 420 38.18649 414.624 38.18649 408 C 38.18649 401.376 40.202488 396 42.68649 396" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="147.453" y="426.5" width="67" height="69" fill="url(#Obj_Gradient_18)"/><rect x="147.453" y="426.5" width="67" height="69" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 160.62199 461 L 170.78725 443 L 191.11775 443 L 201.283 461 L 191.11775 479 L 170.78725 479 Z" fill="url(#Obj_Gradient_19)"/><path d="M 160.62199 461 L 170.78725 443 L 191.11775 443 L 201.283 461 L 191.11775 479 L 170.78725 479 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 64.073936 420.37445 C 71.881844 429.24875 71.228394 440.71005 87.5 447 C 100.49186 452.02213 124.27972 453.7499 145.93179 456.12848" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="3"/><path d="M 61.40507 395.58307 C 67.269463 386.72293 63.968967 373.3653 79 369 C 90.933815 365.53418 114.428574 367.73508 135.71434 368.85406" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="3"/><text transform="translate(6 286)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x=".16308594" y="11" textLength="6.673828">3</tspan></text><path d="M 172.46051 408.7052 L 182.06741 417.3075 L 174.4434 428.13205 L 177.51671 431.82358 L 185.8448 420.1139 L 194.70818 428.06015 L 197.74191 423.7591 L 188.1349 414.61926 L 196.22501 404.9417 L 191.67433 400.6406 L 184.59552 411.39334 L 176.50554 402.79114 Z" fill="url(#Obj_Gradient_20)"/><path d="M 172.46051 408.7052 L 182.06741 417.3075 L 174.4434 428.13205 L 177.51671 431.82358 L 185.8448 420.1139 L 194.70818 428.06015 L 197.74191 423.7591 L 188.1349 414.61926 L 196.22501 404.9417 L 191.67433 400.6406 L 184.59552 411.39334 L 176.50554 402.79114 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 186.722 441.046 C 186.20738 432.87949 187.32178 425.39178 185.17799 416.544 C 183.70665 410.47153 180.69995 403.75586 177.73871 397.05966" marker-end="url(#Arrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(19.372978 273)" fill="black"><tspan font-family="Arial Unicode MS" font-size="72" font-weight="500" x="0" y="77" textLength="54">☠</tspan></text></g></g></svg> diff --git a/qpid/doc/book/src/java-broker/images/HA-Create-1.png b/qpid/doc/book/src/java-broker/images/HA-Create-1.png Binary files differnew file mode 100644 index 0000000000..4976609d16 --- /dev/null +++ b/qpid/doc/book/src/java-broker/images/HA-Create-1.png diff --git a/qpid/doc/book/src/java-broker/images/HA-Create-2.png b/qpid/doc/book/src/java-broker/images/HA-Create-2.png Binary files differnew file mode 100644 index 0000000000..bd442263fe --- /dev/null +++ b/qpid/doc/book/src/java-broker/images/HA-Create-2.png diff --git a/qpid/doc/book/src/java-broker/images/HA-Create-3.png b/qpid/doc/book/src/java-broker/images/HA-Create-3.png Binary files differnew file mode 100644 index 0000000000..5457f214e1 --- /dev/null +++ b/qpid/doc/book/src/java-broker/images/HA-Create-3.png diff --git a/qpid/doc/book/src/java-broker/images/HA-Overview.png b/qpid/doc/book/src/java-broker/images/HA-Overview.png Binary files differnew file mode 100644 index 0000000000..3419a19505 --- /dev/null +++ b/qpid/doc/book/src/java-broker/images/HA-Overview.png diff --git a/qpid/doc/book/src/java-broker/images/HA-perftests-results.png b/qpid/doc/book/src/java-broker/images/HA-perftests-results.png Binary files differdeleted file mode 100644 index e8dbb3c123..0000000000 --- a/qpid/doc/book/src/java-broker/images/HA-perftests-results.png +++ /dev/null diff --git a/qpid/doc/book/src/java-broker/images/Management-Web-Add-Dialogue.png b/qpid/doc/book/src/java-broker/images/Management-Web-Add-Dialogue.png Binary files differnew file mode 100644 index 0000000000..a2d6b4c690 --- /dev/null +++ b/qpid/doc/book/src/java-broker/images/Management-Web-Add-Dialogue.png diff --git a/qpid/doc/book/src/java-broker/images/Management-Web-ContextVar.png b/qpid/doc/book/src/java-broker/images/Management-Web-ContextVar.png Binary files differnew file mode 100644 index 0000000000..92626e092e --- /dev/null +++ b/qpid/doc/book/src/java-broker/images/Management-Web-ContextVar.png diff --git a/qpid/doc/book/src/java-broker/images/Management-Web-Edit-Dialogue.png b/qpid/doc/book/src/java-broker/images/Management-Web-Edit-Dialogue.png Binary files differnew file mode 100644 index 0000000000..92626e092e --- /dev/null +++ b/qpid/doc/book/src/java-broker/images/Management-Web-Edit-Dialogue.png diff --git a/qpid/doc/book/src/java-broker/management/channels/Java-Broker-Management-Channel-HTTP.xml b/qpid/doc/book/src/java-broker/management/channels/Java-Broker-Management-Channel-HTTP.xml index 30f9277303..e39c378075 100644 --- a/qpid/doc/book/src/java-broker/management/channels/Java-Broker-Management-Channel-HTTP.xml +++ b/qpid/doc/book/src/java-broker/management/channels/Java-Broker-Management-Channel-HTTP.xml @@ -36,14 +36,14 @@ </listitem> <listitem> <para><link linkend="Java-Broker-Management-Channel-REST-API">REST API</link> - - REST API providing complete programatic management of the Broker.</para> + REST API providing complete programmatic management of the Broker.</para> </listitem> </itemizedlist></para> <para>The Web Management Console itself uses the REST API, so every function you can perform - through the Web Management Console can be also be scripted and intergrated into other + through the Web Management Console can be also be scripted and integrated into other systems. This provides a simple integration point allowing the Broker to monitored and - controled from systems such as Naoios or BMC Control-M.</para> + controlled from systems such as Naoios or BMC Control-M.</para> </section> <section id="Java-Broker-Management-Channel-HTTP-DefaultConfiguration"> diff --git a/qpid/doc/book/src/java-broker/management/channels/Java-Broker-Management-Channel-JMX.xml b/qpid/doc/book/src/java-broker/management/channels/Java-Broker-Management-Channel-JMX.xml index 4af4764c0d..719fb13393 100644 --- a/qpid/doc/book/src/java-broker/management/channels/Java-Broker-Management-Channel-JMX.xml +++ b/qpid/doc/book/src/java-broker/management/channels/Java-Broker-Management-Channel-JMX.xml @@ -31,7 +31,7 @@ <title>Introduction</title> <para>The JMX management plugin provides a series of managed beans (MBeans) allowing you to control and monitor the Broker via an industry compliant interface. This provides a - convenient intergration point for a variety of Infrastructure Monitoring Solutions, + convenient integration point for a variety of Infrastructure Monitoring Solutions, tools such as Jconsole and VisualVM, as well as custom Java programs and scripts.</para> <para>The following sections describe how to connect to JMX, the configuration of the JMX plugin covering topis including securing with SSL, programmatically interacting with @@ -174,7 +174,7 @@ managedBroker.createNewQueue("myqueue", null, true);</programlisting> <entry> <para>MBean corresponding to the named virtualhost. Allows operations such as the creation/deletion of queues and exchanges on that - virtualhost and virtualhost levell statistics.</para> + virtualhost and virtualhost level statistics.</para> </entry> </row> <row> diff --git a/qpid/doc/book/src/java-broker/management/channels/Java-Broker-Management-Channel-REST-API.xml b/qpid/doc/book/src/java-broker/management/channels/Java-Broker-Management-Channel-REST-API.xml index 754af01563..94c7039819 100644 --- a/qpid/doc/book/src/java-broker/management/channels/Java-Broker-Management-Channel-REST-API.xml +++ b/qpid/doc/book/src/java-broker/management/channels/Java-Broker-Management-Channel-REST-API.xml @@ -30,7 +30,7 @@ configured object, PUT to create or update the configured object and POST to perform the configured objects updates not available with the PUT requests.</para> <para>The REST API is versioned with the version number built into the URL. The general form of - the the URL is <literal>/api/<version></literal>. For convience the alias + the URL is <literal>/api/<version></literal>. For convenience the alias <literal>latest</literal> signifies the latest supported version. There are also some ancillary service prefixed by <literal>/service</literal>.</para> diff --git a/qpid/doc/book/src/java-broker/management/channels/Java-Broker-Management-Channel-Web-Console.xml b/qpid/doc/book/src/java-broker/management/channels/Java-Broker-Management-Channel-Web-Console.xml index 33c35576cf..f38d0873ce 100644 --- a/qpid/doc/book/src/java-broker/management/channels/Java-Broker-Management-Channel-Web-Console.xml +++ b/qpid/doc/book/src/java-broker/management/channels/Java-Broker-Management-Channel-Web-Console.xml @@ -23,7 +23,8 @@ <section id="Java-Broker-Management-Channel-Web-Console"> <title>Web Management Console</title> <para> The Web Management Console provides a simple and intuitive interface for the Management - and Control of the Broker. From here, all aspects of the Broker can be controled, including: <itemizedlist> + and Control of the Broker. From here, all aspects of the Broker can be controlled, + including: <itemizedlist> <listitem> <para>add, remove and monitor queues</para> </listitem> @@ -34,86 +35,195 @@ <para>add, remove and monitor virtualhosts</para> </listitem> <listitem> - <para>configure and control high availabiliy</para> + <para>configure and control high availability</para> </listitem> </itemizedlist> </para> - <para>The remainder of the section provides an introduction to the web managemnet console and + <para>The remainder of the section provides an introduction to the web management console and its use.</para> <section id="Java-Broker-Management-Channel-Web-Console-Accessing"> <title>Accessing the Console</title> <para>The Web Management Console is provided by the HTTP Management Plugin. Providing the HTTP Management Plugin is in its default configuration, the Web Management Console can - be accessed by pointing a brower at the following URL:</para> - <para><literal>http://myhost.mydomain.com:8080</literal></para> + be accessed by pointing a browser at the following URL:</para> + <para> + <literal>http://myhost.mydomain.com:8080</literal> + </para> <para>The Console will prompt you to login using a username and password.</para> - <example> + <figure> <title>Web Management Console - Authentication</title> - <screenshot> - <graphic fileref="images/Management-Web-Auth.png" width="800px"/> - </screenshot> - </example> + <mediaobject> + <imageobject> + <imagedata fileref="images/Management-Web-Auth.png" format="PNG" scalefit="1"/> + </imageobject> + <textobject> + <phrase>Web Console Authentication</phrase> + </textobject> + </mediaobject> + </figure> </section> <section id="Java-Broker-Management-Channel-Web-Console-Orientation"> <title>Orientation</title> <para>After you have logged on you will see a screen similar to the following. The elements of the screen are now explained.</para> - <example> + <figure> <title>Web Management Orientation - Console</title> - <screenshot> - <graphic fileref="images/Management-Web-Console.png" width="800px"/> - </screenshot> - </example> + <mediaobject> + <imageobject> + <imagedata fileref="images/Management-Web-Console.png" format="PNG" scalefit="1" + /> + </imageobject> + <textobject> + <phrase>The Web Console</phrase> + </textobject> + </mediaobject> + </figure> <para> <itemizedlist> <listitem> - <para><emphasis>A</emphasis> - Hierarchy view. Expandable/collapsable view showing all entities - within the Broker. Double click on an entity name to cause its tab to be - opened. </para> + <para><emphasis>A</emphasis> - Hierarchy view. Expandable/collapsible view + showing all entities within the Broker. Double click on an entity name to + cause its tab to be opened. </para> </listitem> <listitem> - <para><emphasis>B</emphasis> - Tab. Shows the details of an entity including its attributes and its - child entities. </para> + <para><emphasis>B</emphasis> - Tab. Shows the details of an entity including its + attributes and its child entities. </para> </listitem> <listitem> - <para><emphasis>C</emphasis> - Occluded tab. Click tab name to bring the tab to the front.</para> + <para><emphasis>C</emphasis> - Occluded tab. Click tab name to bring the tab to + the front.</para> </listitem> <listitem> - <para><emphasis>D</emphasis> - Auto restore check box. Checked tabs will be automatically restored on - subsequent login.</para> + <para><emphasis>D</emphasis> - Auto restore check box. Checked tabs will be + automatically restored on subsequent login.</para> </listitem> <listitem> <para><emphasis>E</emphasis> - Close. Click to close the tab.</para> </listitem> <listitem> - <para><emphasis>F</emphasis> - User Menu. Access to Preferences, Logout and Help.</para> + <para><emphasis>F</emphasis> - User Menu. Access to Preferences, Logout and + Help.</para> </listitem> </itemizedlist> </para> - <example> + <figure id="Java-Broker-Management-Channel-Web-Console-Orientation-Tab"> <title>Web Management Orientation - Tab</title> - <screenshot> - <graphic fileref="images/Management-Web-Tab.png" width="800px"/> - </screenshot> - </example> + <mediaobject> + <imageobject> + <imagedata fileref="images/Management-Web-Tab.png" format="PNG" scalefit="1"/> + </imageobject> + <textobject> + <phrase>A tab within the Web Consle</phrase> + </textobject> + </mediaobject> + </figure> <para>The elements of a tab are now explained: <itemizedlist> <listitem> - <para><emphasis>1</emphasis> - Attribute Panel. Shows the attributes of the entity. Click the panel - title bar opens/closes the panel.</para> + <para><emphasis>1</emphasis> - Attribute Panel. Shows the attributes of the + entity. Click the panel title bar opens/closes the panel.</para> </listitem> <listitem> - <para><emphasis>2</emphasis> - Child Panels. Panels containing a table listing the children of the entity. Click the panel - title bar opens/closes the panel.</para> + <para><emphasis>2</emphasis> - Child Panels. Panels containing a table listing + the children of the entity. Click the panel title bar opens/closes the + panel.</para> </listitem> <listitem> - <para><emphasis>3</emphasis> - Child Row. Row summarizing a child entity. Double click to open the - child tab.</para> + <para><emphasis>3</emphasis> - Child Row. Row summarizing a child entity. Double + click to open the child tab.</para> </listitem> <listitem> - <para><emphasis>4</emphasis> - Child Operations. Buttons to add a new child or perform operations on existing children.</para> + <para><emphasis>4</emphasis> - Child Operations. Buttons to add a new child or + perform operations on existing children.</para> </listitem> </itemizedlist> </para> </section> + <section id="Java-Broker-Management-Channel-Web-Console-Managing-Entities"> + <title>Managing Entities</title> + <para>All the Entities of the Broker of can be managed through the Web Console.</para> + <section id="Java-Broker-Management-Channel-Web-Console-Managing-Entities-Add"> + <title>Adding Entities</title> + <para>To <emphasis>add</emphasis> a new entity, click the <literal>Add</literal> button + on the Child Panel on the Parent's tab. Clicking the Add button causes an add + dialogue to be displayed.</para> + <para>Add dialogues allow you to set the attributes of the new child, and set context + variables. Most fields on the add dialogue have field level help that give more + details about the attribute and any default value that will take effect if you leave + the attribute unset. An example add dialogue is shown in the figure that + follows.</para> + <figure id="Java-Broker-Management-Channel-Web-Console-Orientation-Add-Dialogue"> + <title>Web Management Orientation - Add Dialogue</title> + <mediaobject> + <imageobject> + <imagedata fileref="images/Management-Web-Add-Dialogue.png" format="PNG" + scalefit="1"/> + </imageobject> + <textobject> + <phrase>Example add dialogue</phrase> + </textobject> + </mediaobject> + </figure> + </section> + <section id="Java-Broker-Management-Channel-Web-Console-Managing-Entities-Edit"> + <title>Editing Entities</title> + <para>To <emphasis>edit</emphasis> an existing entity, click the <literal>Edit</literal> + button on the tab corresponding to the Entity itself. Editing an entity lets you + change some of its attributes and modify its context variables. Most fields on the + edit dialogue have field level help that give more details about the attribute and + any default value. An example edit dialogue is shown in the figure that + follows.</para> + <figure id="Java-Broker-Management-Channel-Web-Console-Orientation-Edit-Dialogue"> + <title>Web Management Orientation - Edit Dialogue</title> + <mediaobject> + <imageobject> + <imagedata fileref="images/Management-Web-Edit-Dialogue.png" format="PNG" + scalefit="1"/> + </imageobject> + <textobject> + <phrase>Example edit dialogue</phrase> + </textobject> + </mediaobject> + </figure> + </section> + <section id="Java-Broker-Management-Channel-Web-Console-Managing-Entities-Delete"> + <title>Deleting Entities</title> + <para>To <emphasis>remove</emphasis> an existing entity, click the + <literal>Delete</literal> button on the tab corresponding to the Entity itself. + For some child types, you can select many children from the parent's type and delete + many children at once.</para> + </section> + <section id="Java-Broker-Management-Channel-Web-Console-Managing-Context Variables"> + <title>Context Variables</title> + <para>All Entities within the Broker have the ability to have <link + linkend="Java-Broker-Management-Managing-Entities-General">context + variables</link> associated with them.</para> + <para>Most add and edit dialogues have the ability to make context variable assignments. + To add/change/remove a context variable, click the Context Variable panel to expand + it.</para> + <figure id="Java-Broker-Management-Channel-Web-Console-Orientation-Edit-Dialogue"> + <title>Web Management Orientation - Context Variables</title> + <mediaobject> + <imageobject> + <imagedata fileref="images/Management-Web-ContextVar.png" format="PNG" + scalefit="1"/> + </imageobject> + <textobject> + <phrase>Editting Context Variables</phrase> + </textobject> + </mediaobject> + </figure> + <para>You will see any context varaiables already associated with the object, called + local context variables in bold, and any inherited from above in normal face.</para> + <para>Since context variables can be defined in terms of other context variables, the + display has two value columns: actual and effective. Actual shows the value truely + associated with the variable, where as effective shows the resulting value, after + variable expansion has taken place.</para> + <para>The <literal>+</literal> button allows new variables to be added. The + <literal>-</literal> button removes existing one.</para> + <para>You change an existing local variables defintion by clicking on the actual value. + You can also <emphasis>provide a local definition</emphasis> for an inherited value + by clicking on the actual value and typing its new value.</para> + </section> + </section> </section> diff --git a/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Broker.xml b/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Broker.xml index a8e3e910ca..f73dd5e648 100644 --- a/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Broker.xml +++ b/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Broker.xml @@ -23,7 +23,7 @@ <section id="Java-Broker-Management-Managing-Broker"> <title>Broker</title> <para>The <link linkend="Java-Broker-Concepts-Broker">Broker</link> is the principal entity. It is - composed on a number of other entities that colabrate together to provide message broker + composed on a number of other entities that collaborate to provide message broker facilities.</para> <para>The Broker can only be managed via the HTTP management channel.</para> <section id="Java-Broker-Management-Managing-Broker-Attributes"> @@ -49,7 +49,9 @@ <para> <itemizedlist> <listitem><para><emphasis>broker.flowToDiskThreshold</emphasis> Controls the <link linkend="Java-Broker-Runtime-Flow-To-Disk">flow to disk</link> feature.</para></listitem> + <listitem><para><emphasis>broker.messageCompressionEnabled</emphasis> Controls the message compression feature (co-operative feature with some Qpid clients).</para></listitem> </itemizedlist> + </para> </section> <section id="Java-Broker-Management-Managing-Broker-Children"> diff --git a/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Plugins-HTTP.xml b/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Plugins-HTTP.xml index 963a1cfbe8..07b7b83ab8 100644 --- a/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Plugins-HTTP.xml +++ b/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Plugins-HTTP.xml @@ -22,8 +22,8 @@ <section id="Java-Broker-Management-Managing-Plugin-HTTP"> <title>HTTP Plugin</title> - <para>The HTTP Plugin provides the <link linkend="Java-Broker-Management-Channel-HTTP">HTTP managenenent channel</link> comprising of the <link linkend="Java-Broker-Management-Channel-Web-Console">Web - Managemnt Console</link> and the <link linkend="Java-Broker-Management-Channel-REST-API">REST API</link>.</para> + <para>The HTTP Plugin provides the <link linkend="Java-Broker-Management-Channel-HTTP">HTTP management channel</link> comprising of the <link linkend="Java-Broker-Management-Channel-Web-Console">Web + Management Console</link> and the <link linkend="Java-Broker-Management-Channel-REST-API">REST API</link>.</para> <section id="Java-Broker-Management-Managing-Plugin-HTTP-Attributes"> <title>Attributes</title> <para> diff --git a/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Plugins-JMX.xml b/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Plugins-JMX.xml index 6a9e5ae9d4..2b933e5d8f 100644 --- a/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Plugins-JMX.xml +++ b/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Plugins-JMX.xml @@ -23,7 +23,7 @@ <section id="Java-Broker-Management-Managing-Plugins-JMX"> <title>JMX Plugin</title> <para> - The JMX Plugin provides the <link linkend="Java-Broker-Management-Channel-JMX">JMX managenenent channel</link>. + The JMX Plugin provides the <link linkend="Java-Broker-Management-Channel-JMX">JMX management channel</link>. </para> <para>TODO</para> </section> diff --git a/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Queues.xml b/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Queues.xml index 608552be90..ffa384403c 100644 --- a/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Queues.xml +++ b/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Queues.xml @@ -113,7 +113,7 @@ <listitem> <para><emphasis>Maximum/Minimum TTL</emphasis>. Defines a maximum and minimum time-to-live. Messages arriving with ttl larger than the maximum will be overridden by - the maximum. Similarly, messages arriving with tll less than the miniumum (or no ttl at + the maximum. Similarly, messages arriving with tll less than the minimum (or no ttl at all), will be overridden by the minimum.</para> <para>Changing these values affects only new arrivals, existing messages already on the queue are not affected.</para> @@ -130,7 +130,7 @@ </listitem> <listitem> <para><emphasis>Alerting Thresholds</emphasis>. Queues have the ability to alert on a - variety of conditions: totol queue depth exceeded a number or size, message age exceeded + variety of conditions: total queue depth exceeded a number or size, message age exceeded a threshold, message size exceeded a threshold. These thresholds are soft. See <xref linkend="Java-Broker-Appendix-Queue-Alerts"/></para> </listitem> diff --git a/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-RemoteReplicationNodes.xml b/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-RemoteReplicationNodes.xml index 83f94d2fed..f0b83d8163 100644 --- a/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-RemoteReplicationNodes.xml +++ b/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-RemoteReplicationNodes.xml @@ -24,7 +24,7 @@ <title>Remote Replication Nodes</title> <para>Used for HA only. A <link linkend="Java-Broker-Concepts-RemoteReplicationNodes">remote replication node</link> is a representation of another virtualhost node in the group. Remote replication nodes are not created directly. Instead the system - automatically creates a remote replciation node for every node in the group. It serves to + automatically creates a remote replication node for every node in the group. It serves to provide a view of the whole group from every node in the system.</para> <section id="Java-Broker-Management-Managing-RemoteReplicationNodes-Attributes"> <title>Attributes</title> @@ -43,7 +43,7 @@ <para><emphasis>REPLICA</emphasis> - Remote node is a replica.</para> </listitem> <listitem> - <para><emphasis>UNREACHABLE</emphasis> - Remote node unreachanble from this node. + <para><emphasis>UNREACHABLE</emphasis> - Remote node unreachable from this node. This remote note may be down, or an network problem may prevent it from being contacted.</para> </listitem> @@ -96,7 +96,7 @@ <para>The current master awaits the proposed master to become up to date.</para> </listitem> <listitem> - <para>The mastership is transfered. This will automatically disconnect messaging + <para>The mastership is transferred. This will automatically disconnect messaging clients from the old master, and in-flight transactions are rolled back. Messaging clients reconnect to the new master.</para> </listitem> diff --git a/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Truststores.xml b/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Truststores.xml index fb4f8efcaf..e934304a29 100644 --- a/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Truststores.xml +++ b/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Truststores.xml @@ -58,10 +58,8 @@ </listitem> <listitem> <para><emphasis>Peers only</emphasis>. When "Peers Only" option is selected for - the Truststore it will allow logging in for the clients with the certificate - exactly matching the certificate loaded in the Truststore database, thus, - authenticating the connections with self signed certificates not nessesary - signed by CA.</para> + the Truststore it will allow authenticate only those clients that present a certificate + exactly matching a certificate contained within the Truststore database.</para> </listitem> </itemizedlist></para> </section> diff --git a/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-VirtualHostNodes.xml b/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-VirtualHostNodes.xml index 1d9643e2c7..77621764cd 100644 --- a/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-VirtualHostNodes.xml +++ b/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-VirtualHostNodes.xml @@ -26,24 +26,26 @@ <section id="Java-Broker-Management-Managing-Virtualhost-Nodes-Types"> <title>Types</title> <para> The following virtualhost nodes types are supported. <itemizedlist> - <listitem><para>BDB - Node backed with Oracle BDB <footnote> - <para>Oracle BDB JE is optional. See <xref - linkend="Java-Broker-Miscellaneous-Installing-Oracle-BDB-JE"/>.</para> - </footnote></para></listitem> - <listitem><para>BDB HA - Node backed with Oracle BDB utilising High Availablity</para></listitem> - <listitem><para>DERBY - Node backed with Apache Derby</para></listitem> - <listitem><para>JDBC - Node backed with an external database <footnote> - <para>JDBC 4.0 compatible drivers must be available. See <xref - linkend="Java-Broker-Miscellaneous-Installing-External-JDBC-Driver"/></para> - </footnote></para></listitem> - <listitem><para>JSON - Node backed with a file containing json</para></listitem> - <listitem><para>Memory - In-memory node (changes lost on Broker restart)</para></listitem> - </itemizedlist> + <listitem><para>BDB - Node backed with Oracle BDB <footnote> + <para>Oracle BDB JE is optional. See <xref + linkend="Java-Broker-Miscellaneous-Installing-Oracle-BDB-JE"/>.</para> + </footnote></para></listitem> + <listitem><para>BDB HA - Node backed with Oracle BDB utilising High + Availability</para></listitem> + <listitem><para>DERBY - Node backed with Apache Derby</para></listitem> + <listitem><para>JDBC - Node backed with an external database <footnote> + <para>JDBC 4.0 compatible drivers must be available. See <xref + linkend="Java-Broker-Miscellaneous-Installing-External-JDBC-Driver"/></para> + </footnote></para></listitem> + <listitem><para>JSON - Node backed with a file containing json</para></listitem> + <listitem><para>Memory - In-memory node (changes lost on Broker restart)</para></listitem> + </itemizedlist> </para> </section> <section id="Java-Broker-Management-Managing-Virtualhost-Nodes-Attributes"> <title>Attributes</title> - <para><itemizedlist> + <para> + <itemizedlist> <listitem> <para><emphasis>Name the virtualhost node</emphasis>.</para> </listitem> @@ -52,8 +54,8 @@ configuration of the virtualhost.</para> </listitem> <listitem> - <para><emphasis>Role</emphasis> (HA only). The role that this node is currently playing in the - group. <itemizedlist> + <para><emphasis>Role</emphasis> (HA only). The role that this node is currently playing in + the group. <itemizedlist> <listitem> <para>MASTER - Virtualhost node is a master.</para> </listitem> @@ -69,26 +71,40 @@ </listitem> </itemizedlist></para> </listitem> - <listitem> - <para><emphasis>Priority</emphasis> (HA only). The priority of this node when elections occurs. The attribute can be used to make it more likely for a node to be elected than other nodes, or disallow the node from never being elected at all. See <xref linkend="Java-Broker-High-Availability"/></para> - </listitem> - <listitem> - <para><emphasis>Minimum Number Of Nodes</emphasis> (HA only - groups of three or more). Allows the number of nodes required to hold an election to be reduced in order that service can be restore when less than quorum nodes are present. See <xref linkend="Java-Broker-High-Availability"/></para> - </listitem> - <listitem> - <para><emphasis>Designated Primary</emphasis> (HA only - groups of two). Allows a single node in a two node group to operate solo. See <xref linkend="Java-Broker-High-Availability"/></para> - </listitem> - </itemizedlist></para> + <listitem> + <para><emphasis>Priority</emphasis> (HA only). The priority of this node when elections + occurs. The attribute can be used to make it more likely for a node to be elected than + other nodes, or disallow the node from never being elected at all. See <xref + linkend="Java-Broker-High-Availability-Behaviour-NodePriority"/></para> + </listitem> + <listitem> + <para><emphasis>Minimum Number Of Nodes</emphasis> (HA only - groups of three or more). + Allows the number of nodes required to hold an election to be reduced in order that + service can be restore when less than quorum nodes are present. See <xref + linkend="Java-Broker-High-Availability-Behaviour-MinimumNumberOfNodes"/></para> + </listitem> + <listitem> + <para><emphasis>Designated Primary</emphasis> (HA only - groups of two). Allows a single + node in a two node group to operate solo. See <xref + linkend="Java-Broker-High-Availability-Behaviour-DesignatedPrimary"/></para> + </listitem> + </itemizedlist> + </para> </section> <section id="Java-Broker-Management-Managing-Virtualhost-Node-Children"> <title>Children</title> <para> <itemizedlist> <listitem> - <para><link linkend="Java-Broker-Management-Managing-Virtualhosts">Virtualhost</link></para> + <para> + <link linkend="Java-Broker-Management-Managing-Virtualhosts">Virtualhost</link> + </para> </listitem> <listitem> - <para><link linkend="Java-Broker-Management-Managing-RemoteReplicationNodes">Remote Replication Nodes</link></para> + <para> + <link linkend="Java-Broker-Management-Managing-RemoteReplicationNodes">Remote + Replication Nodes</link> + </para> </listitem> </itemizedlist> </para> @@ -115,8 +131,8 @@ <listitem> <para><emphasis>Delete</emphasis>. Deletes the virtualhost node and the virtualhost contained within it. All exchanges and queues, any the messages contained within it are - removed. In the HA case, deleting the virtualhost node causes it be be removed - permantently from the group.</para> + removed. In the HA case, deleting the virtualhost node causes it be removed + permanently from the group.</para> </listitem> </itemizedlist> </para> diff --git a/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Virtualhosts.xml b/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Virtualhosts.xml index 5cefd5857d..06e8606a72 100644 --- a/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Virtualhosts.xml +++ b/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Virtualhosts.xml @@ -35,7 +35,7 @@ </footnote></para> </listitem> <listitem> - <para>BDB HA - Virtualhost backed with Oracle BDB utilising High Availablity</para> + <para>BDB HA - Virtualhost backed with Oracle BDB utilising High Availability</para> </listitem> <listitem> <para>DERBY - Virtualhost backed with Apache Derby</para> @@ -50,7 +50,7 @@ <para>Memory - In-memory node (changes lost on Broker restart)</para> </listitem> <listitem> - <para>Provided - Virtualhost that colocates message data within the parent virtualhost + <para>Provided - Virtualhost that co-locates message data within the parent virtualhost node <footnote> <para>Not available if Virtualhost Node type is JSON.</para> </footnote>.</para> @@ -93,6 +93,10 @@ transactions. See <xref linkend="Java-Broker-Runtime-Producer-Transaction-Timeout" /></para> </listitem> + <listitem> + <para><emphasis>Synchronization policy</emphasis>. HA only. See <xref + linkend="Java-Broker-High-Availability-Behaviour-SynchronizationPolicy"/></para> + </listitem> </itemizedlist> </para> </section> |
