diff options
| author | Alex Rudyy <orudyy@apache.org> | 2015-04-15 10:00:55 +0000 |
|---|---|---|
| committer | Alex Rudyy <orudyy@apache.org> | 2015-04-15 10:00:55 +0000 |
| commit | b15e32a943ae269c1c7dae4b2084e2ad87f3940d (patch) | |
| tree | 8b3206ffa501d186fee43b3cc3ab3ef924b53e3b /qpid | |
| parent | 0a0baee45ebcff44635907d457c4ff6810b09c87 (diff) | |
| download | qpid-python-b15e32a943ae269c1c7dae4b2084e2ad87f3940d.tar.gz | |
QPID-6481: Move java broker docbook into java source tree
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1673703 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid')
102 files changed, 0 insertions, 9568 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 deleted file mode 100644 index f1158d077c..0000000000 --- a/qpid/doc/book/src/java-broker/AMQP-Messaging-Broker-Java-Book.xml +++ /dev/null @@ -1,42 +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. - ---> - -<book xmlns:xi="http://www.w3.org/2001/XInclude"> - <title>AMQP Messaging Broker (Java)</title> - - <xi:include href="Java-Broker-Introduction.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Java-Broker-Installation.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Java-Broker-Getting-Started.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Java-Broker-Concepts.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Java-Broker-Initial-Configuration.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Java-Broker-Management-Channels.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Java-Broker-Management-Managing-Entities.xml"/> - <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-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-Appendix-Environment-Variables.xml b/qpid/doc/book/src/java-broker/Java-Broker-Appendix-Environment-Variables.xml deleted file mode 100644 index f92cc34ba4..0000000000 --- a/qpid/doc/book/src/java-broker/Java-Broker-Appendix-Environment-Variables.xml +++ /dev/null @@ -1,126 +0,0 @@ -<?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. - ---> - -<appendix id="Java-Broker-Appendix-Environment-Variables"> - <title>Environment Variables</title> - <para>The following table describes the environment variables understood by the Qpid scripts - contained within the <literal>/bin</literal> directory within the Broker distribution.</para> - <para>To take effect, these variables must be set within the shell (and exported - if using Unix) - before invoking the script.</para> - <table pgwide="1"> - <title>Environment variables</title> - <tgroup cols="3"> - <thead> - <row> - <entry>Environment variable</entry> - <entry>Default</entry> - <entry>Purpose</entry> - </row> - </thead> - <tbody> - <row id="Java-Broker-Appendix-Environment-Variables-Qpid-Home"> - <entry>QPID_HOME</entry> - <entry> - <para>None</para> - </entry> - <entry> - <para>The variable used to tell the Broker its installation directory. It must be an - absolute path. This is used to determine the location of Qpid's dependency JARs and - some configuration files.</para> - <para>Typically the value of this variable will look similar to - <literal>c:\qpid\&windowsExtractedBrokerDirName;</literal> (Windows) or - <literal>/usr/local/qpid/&unixExtractedBrokerDirName;</literal> (Unix). The - installation prefix will differ from installation to installation. </para> - <para>If not set, a value for <literal>QPID_HOME</literal> is derived from the location - of the script itself.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Environment-Variables-Qpid-Work"> - <entry>QPID_WORK</entry> - <entry> - <para>User's home directory</para> - </entry> - <entry> - <para>Used as the default root directory for any data written by the Broker. This is the - default location for any message data written to persistent stores and the Broker's - log file.</para> - <para>For example, <literal>QPID_WORK=/var/qpidwork</literal>.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Environment-Variables-Qpid-Opts"> - <entry>QPID_OPTS</entry> - <entry> - <para>None</para> - </entry> - <entry> - <para>This is the preferred mechanism for passing Java <link - linkend="Java-Broker-Appendix-System-Properties">system properties</link> to the - Broker. The value must be a list of system properties each separate by a space. - <literal>-D<replaceable>name1</replaceable>=<replaceable>value1</replaceable> - -D<replaceable>name2</replaceable>=<replaceable>value2</replaceable></literal>. - </para> - </entry> - </row> - <row id="Java-Broker-Appendix-Environment-Variables-Qpid-Java-Gc"> - <entry>QPID_JAVA_GC</entry> - <entry> - <literal>-XX:+HeapDumpOnOutOfMemoryError -XX:+UseConcMarkSweepGC</literal> - </entry> - <entry> - <para>This is the preferred mechanism for customising garbage collection behaviour. The - value should contain valid garbage collection options(s) for the target JVM.</para> - <para>Refer to the JVM's documentation for details.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Environment-Variables-Qpid-Java-Mem"> - <entry>QPID_JAVA_MEM</entry> - <entry> - <literal>-Xmx2g</literal> - </entry> - <entry> - <para>This is the preferred mechanism for customising the size of the JVM's heap memory. - The value should contain valid memory option(s) for the target JVM. Oracle JVMs - understand <literal>-Xmx</literal> to specify a maximum heap size and - <literal>-Xms</literal> an initial size.</para> - <para>For example, <code>QPID_JAVA_MEM=-Xmx6g</code> would set a maximum heap size of - 6GB.</para> - <para>Refer to the JVM's documentation for details.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Environment-Variables-Java-Opts"> - <entry>JAVA_OPTS</entry> - <entry>None</entry> - <entry> - <para>This is the preferred mechanism for passing any other JVM options. This variable is - commonly used to pass options for diagnostic purposes, for instance to turn on verbose - GC. <literal>-verbose:gc</literal>.</para> - <para>Refer to the JVM's documentation for details.</para> - </entry> - </row> - </tbody> - </tgroup> - </table> -</appendix> diff --git a/qpid/doc/book/src/java-broker/Java-Broker-Appendix-Miscellaneous.xml b/qpid/doc/book/src/java-broker/Java-Broker-Appendix-Miscellaneous.xml deleted file mode 100644 index 112dbeb39c..0000000000 --- a/qpid/doc/book/src/java-broker/Java-Broker-Appendix-Miscellaneous.xml +++ /dev/null @@ -1,103 +0,0 @@ -<?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. - ---> - -<appendix id="Java-Broker-Miscellaneous"> - <title>Miscellaneous</title> - - <section role="h2" id="Java-Broker-Miscellaneous-JVM-Verification"> - <title>JVM Installation verification</title> - <section role="h2" id="Java-Broker-Miscellaneous-JVM-Verification-Windows"> - <title>Verify JVM on Windows</title> - <para> Firstly confirm that the JAVA_HOME environment variable is set correctly by typing the - following at the command prompt: </para> - <programlisting><![CDATA[echo %JAVA_HOME%]]></programlisting> - <para> If JAVA_HOME is set you will see something similar to the following: </para> - <screen><![CDATA[c:"\PROGRA~1"\Java\jdk1.7.0_60\]]> - </screen> - <para> Then confirm that a Java installation (1.7 or higher) is available: </para> - <programlisting><![CDATA[java -version]]></programlisting> - <para> If java is available on the path, output similar to the following will be seen: </para> - <screen><![CDATA[java version "1.7.0_60" -Java(TM) SE Runtime Environment (build 1.7.0_60-b19) -Java HotSpot(TM) 64-Bit Server VM (build 24.60-b09, mixed mode)]]></screen> - </section> - - <section role="h2" id="Java-Broker-Miscellaneous-JVM-Verification-Unix"> - <title>Verify JVM on Unix</title> - <para> Firstly confirm that the JAVA_HOME environment variable is set correctly by typing the - following at the command prompt: </para> - <programlisting><![CDATA[echo $JAVA_HOME]]></programlisting> - <para> If JAVA_HOME is set you will see something similar to the following: </para> - <screen><![CDATA[/usr/java/jdk1.7.0_60]]> - </screen> - <para> Then confirm that a Java installation (1.7 or higher) is available: </para> - <programlisting><![CDATA[java -version]]></programlisting> - <para> If java is available on the path, output similar to the following will be seen: </para> - <screen><![CDATA[java version "1.7.0_60" -Java(TM) SE Runtime Environment (build 1.7.0_60-b19) -Java HotSpot(TM) 64-Bit Server VM (build 24.60-b09, mixed mode)]]></screen> - </section> - </section> - <section role="h2" id="Java-Broker-Miscellaneous-Installing-External-JDBC-Driver"> - <title>Installing External JDBC Driver</title> - <para>In order to use a JDBC Virtualhost Node or a JDBC Virtualhost, you must make the - Database's JDBC 4.0 compatible drivers available on the Broker's classpath. To do this copy - the driver's JAR file into the <literal>${QPID_HOME}/lib/opt</literal> folder.</para> - <programlisting>Unix: -cp <literal>driver</literal>.jar qpid-broker-&qpidCurrentRelease;/lib/opt</programlisting> - - <programlisting>Windows: -copy <literal>driver</literal>.jar qpid-broker-&qpidCurrentRelease;\lib\opt</programlisting> - - </section> - <section role="h2" id="Java-Broker-Miscellaneous-Installing-Oracle-BDB-JE"> - <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 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> - <para> The download has a name in the form je-&oracleBdbProductVersion;.tar.gz. It is - recommended that you confirm the integrity of the download by verifying the MD5. </para> - <para>Copy the je-&oracleBdbProductVersion;.jar from within the release into - <literal>${QPID_HOME}/lib/opt</literal> folder.</para> - - <programlisting>Unix: -cp je-&oracleBdbProductVersion;.jar qpid-broker-&qpidCurrentRelease;/lib/opt</programlisting> - - <programlisting>Windows: -copy je-&oracleBdbProductVersion;.jar qpid-broker-&qpidCurrentRelease;\lib\opt</programlisting> - - </section> - - - - - - - -</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 deleted file mode 100644 index 9d30526e49..0000000000 --- a/qpid/doc/book/src/java-broker/Java-Broker-Appendix-Operational-Logging-Messages.xml +++ /dev/null @@ -1,1412 +0,0 @@ -<?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. - ---> - -<appendix id="Java-Broker-Appendix-Operation-Logging"> - <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 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 - or messaging client connection), the entity receiving the action (e.g. a queue or connection) - and a description of operation itself.</para> - <para>The log messages have the following format:</para> - <screen> - [<literal>Actor</literal>] {[<literal>Subject</literal>]} [<literal>Message Id</literal>] [<literal>Message Text</literal>] - </screen> - <para>Where:</para> - <itemizedlist> - <listitem> - <para><literal>Actor</literal> is the entity within the Broker that is - <emphasis>performing</emphasis> the action. There are actors corresponding to the Broker - itself, Management, Connection, and Channels. Their format is described in the <link - linkend="Java-Broker-Appendix-Operation-Logging-Actor-Format">table</link> below.</para> - </listitem> - <listitem> - <para><literal>Subject</literal> (optional) is the entity within the Broker that is - <emphasis>receiving</emphasis> the action. There are subjects corresponding to the - Connections, Channels, Queues, Exchanges, Subscriptions, and Message Stores. Their format is - described in the <link linkend="Java-Broker-Appendix-Operation-Logging-Subject-Format" - >table</link> below.</para> - <para>Some actions are reflexive, in these cases the Actor and Subject will be equal.</para> - </listitem> - <listitem> - <para><literal>Message Id</literal> is an identifier for the type of message. It has the form - three alphas and four digits separated by a hyphen <literal>AAA-9999</literal>.</para> - </listitem> - <listitem> - <para><literal>Message Text</literal> is a textual description</para> - </listitem> - </itemizedlist> - <para>To illustrate, let's look at two examples.</para> - <para><literal><link linkend="Java-Broker-Appendix-Operation-Logging-Message-CON-1001" - >CON-1001</link></literal> is used when a messages client makes an AMQP connection. The - connection actor (<literal>con</literal>) provides us with details of the peer's connection: the - user id used by the client (myapp1), their IP, ephemeral port number and the name of the virtual - host. The message text itself gives us further details about the connection: the client id, the - protocol version in used, and details of the client's qpid library.</para> - <screen>[con:8(myapp1@/127.0.0.1:52851/default)] CON-1001 : Open : Client ID : clientid : - Protocol Version : 0-10 : Client Version : &qpidCurrentRelease; : Client Product : qpid</screen> - <para><literal><link linkend="Java-Broker-Appendix-Operation-Logging-Message-QUE-1001" - >QUE-1001</link></literal> is used when a queue is created. The connection actor - <literal>con</literal> tells us details of the connection performing the queue creation: the - user id used by the client (myapp1), the IP, ephemeral port number and the name of the virtual - host. The queue subject tells use the queue's name (myqueue) and the virtualhost. The message - itself tells us more information about the queue that is being created. </para> - - <screen>[con:8(myapp1@/127.0.0.1:52851/default)/ch:0] [vh(/default)/qu(myqueue)] QUE-1001 : Create : Owner: clientid Transient</screen> - <para>The first two tables that follow describe the actor and subject entities, then the later - provide a complete catalogue of all supported messages.</para> - <table pgwide="1" id="Java-Broker-Appendix-Operation-Logging-Actor-Format"> - <title>Actors Entities</title> - <tgroup cols="2"> - <thead> - <row> - <entry>Actor Type</entry> - <entry>Format and Purpose</entry> - </row> - </thead> - <tbody> - <row> - <entry morerows="1">Broker</entry> - <entry>[Broker]</entry> - </row> - <row> - <entry> - <para>Used during startup and shutdown</para> - </entry> - </row> - <row> - <entry morerows="1">Management</entry> - <entry> - [mng:<replaceable>userid</replaceable>(<replaceable>clientip</replaceable>:<replaceable>ephemeralport</replaceable>)] </entry> - - </row> - <row> - <entry> - <para>Used for operations performed by the either the JMX or Web Management - interfaces.</para> - </entry> - </row> - <row> - <entry morerows="1">Connection</entry> - <entry> - [con:<replaceable>connectionnumber</replaceable>(<replaceable>userid</replaceable>@/<replaceable>clientip</replaceable>:<replaceable>ephemeralport</replaceable>/<replaceable>virtualhostname</replaceable>)]</entry> - </row> - <row> - <entry> - <para>Used for operations performed by a client connection. Note that connections are - numbered by a sequence number that begins at 1.</para> - </entry> - </row> - <row> - <entry morerows="1">Channel</entry> - <entry> - [con:<replaceable>connectionnumber</replaceable>(<replaceable>userid</replaceable>@/<replaceable>clientip</replaceable>:<replaceable>ephemeralport</replaceable>/<replaceable>virtualhostname</replaceable>/ch:<replaceable>channelnumber</replaceable>)]</entry> - </row> - <row> - <entry> - <para>Used for operations performed by a client's channel (corresponds to the JMS - concept of Session). Note that channels are numbered by a sequence number that is - scoped by the owning connection.</para> - </entry> - </row> - <row> - <entry morerows="1">Group</entry> - <entry> [grp(/<replaceable>groupname</replaceable>)/vhn(/<replaceable>virtualhostnode - name</replaceable>)]</entry> - </row> - <row> - <entry> - <para>Used for HA. Used for operations performed by the system itself often as a result - of actions performed on another node..</para> - </entry> - </row> - </tbody> - </tgroup> - </table> - <table pgwide="1" id="Java-Broker-Appendix-Operation-Logging-Subject-Format"> - <title>Subject Entities</title> - <tgroup cols="2"> - <thead> - <row> - <entry>Subject Type</entry> - <entry>Format and Purpose</entry> - </row> - </thead> - <tbody> - <row> - <entry morerows="1">Connection</entry> - <entry> - [con:<replaceable>connectionnumber</replaceable>(<replaceable>userid</replaceable>@/<replaceable>clientip</replaceable>:<replaceable>ephemeralport</replaceable>/<replaceable>virtualhostname</replaceable>)]</entry> - </row> - <row> - <entry> - <para>A connection to the Broker.</para> - </entry> - </row> - <row> - <entry morerows="1">Channel</entry> - <entry> - [con:<replaceable>connectionnumber</replaceable>(<replaceable>userid</replaceable>@/<replaceable>clientip</replaceable>:<replaceable>ephemeralport</replaceable>/<replaceable>virtualhostname</replaceable>/ch:<replaceable>channelnumber</replaceable>)]</entry> - </row> - <row> - <entry> - <para>A client's channel within a connection.</para> - </entry> - </row> - <row> - <entry morerows="1">Subscription</entry> - <entry> - [sub:<replaceable>subscriptionnumber</replaceable>(vh(/<replaceable>virtualhostname</replaceable>)/qu(<replaceable>queuename</replaceable>)]</entry> - </row> - <row> - <entry> - <para>A subscription to a queue. This corresponds to the JMS concept of a - Consumer.</para> - </entry> - </row> - <row> - <entry morerows="1">Queue</entry> - <entry>[vh(/<replaceable>virtualhostname</replaceable>)/qu(<replaceable>queuename</replaceable>)]</entry> - </row> - <row> - <entry> - <para>A queue on a virtualhost</para> - </entry> - </row> - <row> - <entry morerows="1">Exchange</entry> - <entry>[vh(/<replaceable>virtualhostname</replaceable>)/ex(<replaceable>exchangetype</replaceable>/<replaceable>exchangename</replaceable>)]</entry> - </row> - <row> - <entry> - <para>An exchange on a virtualhost</para> - </entry> - </row> - <row> - <entry morerows="1">Binding</entry> - <entry> - [vh(/<replaceable>virtualhostname</replaceable>)/ex(<replaceable>exchangetype</replaceable>/<replaceable>exchangename</replaceable>)/qu(<replaceable>queuename</replaceable>)/rk(<replaceable>bindingkey</replaceable>)]</entry> - </row> - <row> - <entry> - <para>A binding between a queue and exchange with the giving binding key.</para> - </entry> - </row> - <row> - <entry morerows="1">Message Store</entry> - <entry> - [vh(/<replaceable>virtualhostname</replaceable>)/ms(<replaceable>messagestorename</replaceable>)]</entry> - </row> - <row> - <entry> - <para>A virtualhost/message store on the Broker.</para> - </entry> - </row> - <row> - <entry morerows="1">HA Group</entry> - <entry> [grp(/<replaceable>group name</replaceable>)]</entry> - </row> - <row> - <entry> - <para>A HA group</para> - </entry> - </row> - </tbody> - </tgroup> - </table> - <para>The following tables lists all the operation log messages that can be produced by the - Broker, and the describes the circumstances under which each may be seen.</para> - - <table pgwide="1" id="Java-Broker-Appendix-Operation-Logging-Message-List-Broker"> - <title>Broker Log Messages</title> - <tgroup cols="2"> - <thead> - <row> - <entry>Message Id</entry> - <entry>Message Text / Purpose</entry> - </row> - </thead> - <tbody> - <row id="Java-Broker-Appendix-Operation-Logging-Message-BRK-1001"> - <entry morerows="1">BRK-1001</entry> - <entry>Startup : Version: <replaceable>version</replaceable> Build: - <replaceable>build</replaceable> - </entry> - </row> - <row> - <entry> - <para>Indicates that the Broker is starting up</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-BRK-1002"> - <entry morerows="1">BRK-1002</entry> - <entry>Starting : Listening on <replaceable>transporttype</replaceable> port - <replaceable>portnumber</replaceable> - </entry> - </row> - <row> - <entry> - <para>Indicates that the Broker has begun listening on a port.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-BRK-1003"> - <entry morerows="1">BRK-1003</entry> - <entry>Shutting down : <replaceable>transporttype</replaceable> port - <replaceable>portnumber</replaceable> - </entry> - </row> - <row> - <entry> - <para>Indicates that the Broker has stopped listening on a port.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-BRK-1004"> - <entry morerows="1">BRK-1004</entry> - <entry>Qpid Broker Ready</entry> - </row> - <row> - <entry> - <para>Indicates that the Broker is ready for normal operations.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-BRK-1005"> - <entry morerows="1">BRK-1005</entry> - <entry>Stopped</entry> - </row> - <row> - <entry> - <para>Indicates that the Broker is stopped.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-BRK-1006"> - <entry morerows="1">BRK-1006</entry> - <entry>Using configuration : <replaceable>file</replaceable> - </entry> - </row> - <row> - <entry> - <para>Indicates the name of the configuration store in use by the Broker.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-BRK-1007"> - <entry morerows="1">BRK-1007</entry> - <entry>Using logging configuration : <replaceable>file</replaceable> - </entry> - </row> - <row> - <entry> - <para>Indicates the name of the log configuration file in use by the Broker.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-BRK-1008"> - <entry morerows="1">BRK-1008</entry> - <entry><replaceable>delivered|received</replaceable> : <replaceable>size</replaceable> - kB/s peak : <replaceable>size</replaceable> bytes total</entry> - </row> - <row> - <entry> - <para>Statistic - bytes delivered or received by the Broker.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-BRK-1009"> - <entry morerows="1">BRK-1009</entry> - <entry><replaceable>delivered|received</replaceable> : <replaceable>size</replaceable> - msg/s peak : <replaceable>size</replaceable> msgs total</entry> - </row> - <row> - <entry> - <para>Statistic - messages delivered or received by the Broker.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-BRK-1014"> - <entry morerows="1">BRK-1014</entry> - <entry>Message flow to disk active : Message memory use <replaceable>size of all - messages</replaceable> exceeds threshold <replaceable>threshold - size</replaceable></entry> - </row> - <row> - <entry> - <para>Indicates that the heap memory space occupied by messages has exceeded the - threshold so the flow to disk feature has been activated.</para> - </entry> - </row> - - <row id="Java-Broker-Appendix-Operation-Logging-Message-BRK-1015"> - <entry morerows="1">BRK-1015</entry> - <entry>Message flow to disk inactive : Message memory use <replaceable>size of all - messages</replaceable> within threshold <replaceable>threshold - size</replaceable></entry> - </row> - <row> - <entry> - <para>Indicates that the heap memory space occupied by messages has fallen below the - threshold so the flow to disk feature has been deactivated.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-BRK-1016"> - <entry morerows="1">BRK-1016</entry> - <entry>Fatal error : <replaceable>root cause</replaceable> : See log file for more information</entry> - </row> - <row> - <entry> - <para>Indicates that broker was shut down due to fatal error.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-BRK-1017"> - <entry morerows="1">BRK-1017</entry> - <entry>Process : PID <replaceable>process identifier</replaceable></entry> - </row> - <row> - <entry> - <para>Process identifier (PID) of the Broker process.</para> - </entry> - </row> - </tbody> - </tgroup> - </table> - - <table pgwide="1" id="Java-Broker-Appendix-Operation-Logging-Message-List-Management"> - <title>Management Log Messages</title> - <tgroup cols="2"> - <thead> - <row> - <entry>Message Id</entry> - <entry>Message Text / Purpose</entry> - </row> - </thead> - <tbody> - <row id="Java-Broker-Appendix-Operation-Logging-Message-MNG-1001"> - <entry morerows="1">MNG-1001</entry> - <entry><replaceable>type</replaceable> Management Startup </entry> - </row> - <row> - <entry> - <para>Indicates that a Management plugin is starting up. Currently supported management - plugins are JMX and Web.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-MNG-1002"> - <entry morerows="1">MNG-1002</entry> - <entry>Starting : <replaceable>type</replaceable> : Listening on <replaceable>transporttype</replaceable> port - <replaceable>port</replaceable> - </entry> - </row> - <row> - <entry> - <para>Indicates that a Management plugin is listening on the given port.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-MNG-1003"> - <entry morerows="1">MNG-1003</entry> - <entry>Shutting down : <replaceable>type</replaceable> : port - <replaceable>port</replaceable></entry> - </row> - <row> - <entry> - <para>Indicates that a Management plugin is ceasing to listen on the given port.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-MNG-1004"> - <entry morerows="1">MNG-1004</entry> - <entry><replaceable>type</replaceable> Management Ready</entry> - </row> - <row> - <entry> - <para>Indicates that a Management plugin is ready for work.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-MNG-1005"> - <entry morerows="1">MNG-1005</entry> - <entry><replaceable>type</replaceable> Management Stopped</entry> - </row> - <row> - <entry> - <para>Indicates that a Management plugin is stopped.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-MNG-1007"> - <entry morerows="1">MNG-1007</entry> - <entry>Open : User <replaceable>username</replaceable></entry> - </row> - <row> - <entry> - <para>Indicates the opening of a connection to Management has by the given - username.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-MNG-1008"> - <entry morerows="1">MNG-1008</entry> - <entry>Close : User <replaceable>username</replaceable></entry> - </row> - <row> - <entry> - <para>Indicates the closing of a connection to Management has by the given - username.</para> - </entry> - </row> - </tbody> - </tgroup> - </table> - - <table pgwide="1" id="Java-Broker-Appendix-Operation-Logging-Message-List-VirtualHost"> - <title>Virtual Host Log Messages</title> - <tgroup cols="2"> - <thead> - <row> - <entry>Message Id</entry> - <entry>Message Text / Purpose</entry> - </row> - </thead> - <tbody> - <!-- Virtual host --> - <row id="Java-Broker-Appendix-Operation-Logging-Message-VHT-1001"> - <entry morerows="1">VHT-1001</entry> - <entry>Created : <replaceable>virtualhostname</replaceable></entry> - </row> - <row> - <entry> - <para>Indicates that a virtualhost has been created.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-VHT-1002"> - <entry morerows="1">VHT-1002</entry> - <entry>Closed</entry> - </row> - <row> - <entry> - <para>Indicates that a virtualhost has been closed. This occurs on Broker - shutdown.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-VHT-1003"> - <entry morerows="1">VHT-1003</entry> - <entry><replaceable>virtualhostname</replaceable> : - <replaceable>delivered|received</replaceable> : <replaceable>size</replaceable> kB/s - peak : <replaceable>size</replaceable> bytes total</entry> - </row> - <row> - <entry> - <para>Statistic - bytes delivered or received by the virtualhost.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-VHT-1004"> - <entry morerows="1">VHT-1004</entry> - <entry><replaceable>virtualhostname</replaceable> : - <replaceable>delivered|received</replaceable> : <replaceable>size</replaceable> msg/s - peak : <replaceable>size</replaceable> msgs total</entry> - </row> - <row> - <entry> - <para>Statistic - messages delivered or received by the virtualhost.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-VHT-1005"> - <entry morerows="1">VHT-1005</entry> - <entry>Unexpected fatal error</entry> - </row> - <row> - <entry> - <para>Virtualhost has suffered an unexpected fatal error, check the logs for more - details.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-VHT-1006"> - <entry morerows="1">VHT-1006</entry> - <entry>Filesystem is over <replaceable>size in %</replaceable> per cent full, enforcing flow control.</entry> - </row> - <row> - <entry> - <para>Indicates that virtual host flow control is activated - when the usage of file system containing Virtualhost message store exceeded predefined limit.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-VHT-1007"> - <entry morerows="1">VHT-1007</entry> - <entry>Filesystem is no longer over <replaceable>size in %</replaceable> per cent full.</entry> - </row> - <row> - <entry> - <para>Indicates that virtual host flow control is deactivated - when the usage of file system containing Virtualhost message falls under predefined limit.</para> - </entry> - </row> - </tbody> - </tgroup> - </table> - <table pgwide="1" id="Java-Broker-Appendix-Operation-Logging-Message-List-Queue"> - <title>Queue Log Messages</title> - <tgroup cols="2"> - <thead> - <row> - <entry>Message Id</entry> - <entry>Message Text / Purpose</entry> - </row> - </thead> - <tbody> - <!-- Queue --> - <row id="Java-Broker-Appendix-Operation-Logging-Message-QUE-1001"> - <entry morerows="1">QUE-1001</entry> - <entry>Create : Owner: <replaceable>owner</replaceable> - <replaceable>AutoDelete</replaceable> [<replaceable>Durable</replaceable>] - <replaceable>Transient</replaceable> Priority: - <replaceable>numberofpriorities</replaceable></entry> - </row> - <row> - <entry> - <para>Indicates that a queue has been created.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-QUE-1002"> - <entry morerows="1">QUE-1002</entry> - <entry>Deleted</entry> - </row> - <row> - <entry> - <para>Indicates that a queue has been deleted.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-QUE-1003"> - <entry morerows="1">QUE-1003</entry> - <entry>Overfull : Size : <replaceable>size</replaceable> bytes, Capacity : - <replaceable>maximumsize</replaceable></entry> - </row> - <row> - <entry> - <para>Indicates that a queue has exceeded its permitted capacity. See <xref - linkend="Qpid-Producer-Flow-Control"/> for details.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-QUE-1004"> - <entry morerows="1">QUE-1004</entry> - <entry>Underfull : Size : <replaceable>size</replaceable> bytes, Resume Capacity : - <replaceable>resumesize</replaceable></entry> - </row> - <row> - <entry> - <para>Indicates that a queue has fallen to its resume capacity. See <xref - linkend="Qpid-Producer-Flow-Control"/> for details.</para> - </entry> - </row> - </tbody> - </tgroup> - </table> - <table pgwide="1" id="Java-Broker-Appendix-Operation-Logging-Message-List-Exchange"> - <title>Exchange Log Messages</title> - <tgroup cols="2"> - <thead> - <row> - <entry>Message Id</entry> - <entry>Message Text / Purpose</entry> - </row> - </thead> - <tbody> - <!-- Exchange --> - <row id="Java-Broker-Appendix-Operation-Logging-Message-EXH-1001"> - <entry morerows="1">EXH-1001</entry> - <entry>Create : [<replaceable>Durable</replaceable>] Type: <replaceable>type</replaceable> - Name: <replaceable>exchange name</replaceable></entry> - </row> - <row> - <entry> - <para>Indicates that an exchange has been created.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-EXH-1002"> - <entry morerows="1">EXH-1002</entry> - <entry>Deleted</entry> - </row> - <row> - <entry> - <para>Indicates that an exchange has been deleted.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-EXH-1003"> - <entry morerows="1">EXH-1003</entry> - <entry>Discarded Message : Name: <replaceable>exchange name</replaceable> Routing Key: - <replaceable>routing key</replaceable></entry> - </row> - <row> - <entry> - <para>Indicates that an exchange received a message that could not be routed to at least - one queue. queue has exceeded its permitted capacity. See <xref - linkend="Java-Broker-Concepts-Exchanges-UnroutableMessage"/> for details.</para> - </entry> - </row> - </tbody> - </tgroup> - </table> - - <table pgwide="1" id="Java-Broker-Appendix-Operation-Logging-Message-List-Binding"> - <title>Binding Log Messages</title> - <tgroup cols="2"> - <thead> - <row> - <entry>Message Id</entry> - <entry>Message Text / Purpose</entry> - </row> - </thead> - <tbody> - <row id="Java-Broker-Appendix-Operation-Logging-Message-BND-1001"> - <entry morerows="1">BND-1001</entry> - <entry>Create : Arguments : <replaceable>arguments</replaceable></entry> - </row> - <row> - <entry> - <para>Indicates that a binding has been made between an exchange and a queue.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-BND-1002"> - <entry morerows="1">BND-1002</entry> - <entry>Deleted</entry> - </row> - <row> - <entry> - <para>Indicates that a binding has been deleted</para> - </entry> - </row> - - </tbody> - </tgroup> - </table> - - <table pgwide="1" id="Java-Broker-Appendix-Operation-Logging-Message-List-Connection"> - <title>Connection Log Messages</title> - <tgroup cols="2"> - <thead> - <row> - <entry>Message Id</entry> - <entry>Message Text / Purpose</entry> - </row> - </thead> - <tbody> - <row id="Java-Broker-Appendix-Operation-Logging-Message-CON-1001"> - <entry morerows="1">CON-1001</entry> - <entry>Open : Client ID : <replaceable>clientid</replaceable> : Protocol Version : - <replaceable>protocol version</replaceable> : Client Version : <replaceable>client - version</replaceable> : Client Product :<replaceable>client - product</replaceable></entry> - </row> - <row> - <entry> - <para>Indicates that a connection has been opened. The Broker logs one of these message - each time it learns more about the client as the connection is negotiated.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-CON-1002"> - <entry morerows="1">CON-1002</entry> - <entry>Close</entry> - </row> - <row> - <entry> - <para>Indicates that a connection has been closed. This message is logged regardless of - if the connection is closed normally, or if the connection is somehow lost e.g network - error. </para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-CON-1003"> - <entry morerows="1">CON-1003</entry> - <entry>Closed due to inactivity</entry> - </row> - <row> - <entry> - <para>Used when heart beating is in-use. Indicates that the connection has not received - a heartbeat for too long and is therefore closed as being inactive. </para> - </entry> - </row> - </tbody> - </tgroup> - </table> - - - <table pgwide="1" id="Java-Broker-Appendix-Operation-Logging-Message-List-Channel"> - <title>Channel Log Messages</title> - <tgroup cols="2"> - <thead> - <row> - <entry>Message Id</entry> - <entry>Message Text / Purpose</entry> - </row> - </thead> - <tbody> - <row id="Java-Broker-Appendix-Operation-Logging-Message-CHN-1001"> - <entry morerows="1">CHN-1001</entry> - <entry>Create</entry> - </row> - <row> - <entry> - <para>Indicates that a channel (corresponds to the JMS concept of Session) has been - created.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-CHN-1002"> - <entry morerows="1">CHN-1002</entry> - <entry>Flow Started</entry> - </row> - <row> - <entry> - <para>Indicates message flow to a session has begun.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-CHN-1003"> - <entry morerows="1">CHN-1003</entry> - <entry>Close</entry> - </row> - <row> - <entry> - <para>Indicates that a channel has been closed.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-CHN-1004"> - <entry morerows="1">CHN-1004</entry> - <entry>Prefetch Size (bytes) <replaceable>size</replaceable> : Count <replaceable>number - of messages</replaceable></entry> - </row> - <row> - <entry> - <para>Indicates the prefetch size in use by a channel.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-CHN-1005"> - <entry morerows="1">CHN-1005</entry> - <entry>Flow Control Enforced (Queue <replaceable>queue name</replaceable>)</entry> - </row> - <row> - <entry> - <para>Indicates that producer flow control has been imposed on a channel owning to - excessive queue depth in the indicated queue. Produces using the channel will be - requested to pause the sending of messages. See <xref - linkend="Qpid-Producer-Flow-Control"/> for more details.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-CHN-1006"> - <entry morerows="1">CHN-1006</entry> - <entry>Flow Control Removed</entry> - </row> - <row> - <entry> - <para>Indicates that producer flow control has been removed from a channel. See <xref - linkend="Qpid-Producer-Flow-Control"/> for more details.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-CHN-1007"> - <entry morerows="1">CHN-1007</entry> - <entry>Open Transaction : <replaceable>time</replaceable> ms</entry> - </row> - <row> - <entry> - <para>Indicates that a producer transaction has been open for longer than that - permitted. See <xref linkend="Java-Broker-Runtime-Producer-Transaction-Timeout"/> for - more details.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-CHN-1008"> - <entry morerows="1">CHN-1008</entry> - <entry>Idle Transaction : <replaceable>time</replaceable> ms</entry> - </row> - <row> - <entry> - <para>Indicates that a producer transaction has been idle for longer than that - permitted. See <xref linkend="Java-Broker-Runtime-Producer-Transaction-Timeout"/> for - more details.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-CHN-1009"> - <entry morerows="1">CHN-1009</entry> - <entry>Discarded message : <replaceable>message number</replaceable> as no alternate - exchange configured for queue : <replaceable>queue name</replaceable>{1} routing key : - <replaceable>routing key</replaceable></entry> - </row> - <row> - <entry> - <para>Indicates that a channel has discarded a message as the maximum delivery count has - been exceeded but the queue defines no alternate exchange. See <xref - linkend="Java-Broker-Runtime-Handling-Undeliverable-Messages-Maximum-Delivery-Count" - /> for more details. Note that <replaceable>message number</replaceable> is an - internal message reference.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-CHN-1010"> - <entry morerows="1">CHN-1010</entry> - <entry>Discarded message : <replaceable>message number</replaceable> as no binding on - alternate exchange : <replaceable>exchange name</replaceable></entry> - </row> - <row> - <entry> - <para>Indicates that a channel has discarded a message as the maximum delivery count has - been exceeded but the queue's alternate exchange has no binding to a queue. See <xref - linkend="Java-Broker-Runtime-Handling-Undeliverable-Messages-Maximum-Delivery-Count" - /> for more details. Note that <replaceable>message number</replaceable> is an - internal message reference.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-CHN-1011"> - <entry morerows="1">CHN-1011</entry> - <entry>Message : <replaceable>message number</replaceable> moved to dead letter queue : - <replaceable>queue name</replaceable></entry> - </row> - <row> - <entry> - <para>Indicates that a channel has moved a message to the named dead letter queue - </para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-CHN-1012"> - <entry morerows="1">CHN-1012</entry> - <entry>Flow Control Ignored. Channel will be closed.</entry> - </row> - <row> - <entry> - <para>Indicates that a channel violating the imposed flow control has been closed - </para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-CHN-1013"> - <entry morerows="1">CHN-1013</entry> - <entry>Uncommitted transaction contains <replaceable>size</replaceable> bytes of incoming message data.</entry> - </row> - <row> - <entry> - <para>Warns about uncommitted transaction with large message(s) - </para> - </entry> - </row> - </tbody> - </tgroup> - </table> - <table pgwide="1" id="Java-Broker-Appendix-Operation-Logging-Message-List-Subscription"> - <title>Subscription Log Messages</title> - <tgroup cols="2"> - <thead> - <row> - <entry>Message Id</entry> - <entry>Message Text / Purpose</entry> - </row> - </thead> - <tbody> - <row id="Java-Broker-Appendix-Operation-Logging-Message-SUB-1001"> - <entry morerows="1">SUB-1001</entry> - <entry>Create : [<replaceable>Durable</replaceable>] Arguments : - <replaceable>arguments</replaceable></entry> - </row> - <row> - <entry> - <para>Indicates that a subscription (corresponds to JMS concept of a MessageConsumer) - has been created.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-SUB-1002"> - <entry morerows="1">SUB-1002</entry> - <entry>Close</entry> - </row> - <row> - <entry> - <para>Indicates that a subscription has been closed.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-SUB-1003"> - <entry morerows="1">SUB-1003</entry> - <entry>State : <replaceable>boolean</replaceable></entry> - </row> - <row> - <entry> - <para>Indicates that a subscription has changed state. This occurs when the consumer is - ready to receive more messages. As this happens frequently in normal operation, this - log messages is disabled by default.</para> - </entry> - </row> - - </tbody> - </tgroup> - </table> - - <table pgwide="1" id="Java-Broker-Appendix-Operation-Logging-Message-List-MessageStore"> - <title>Message Store Log Messages</title> - <tgroup cols="2"> - <thead> - <row> - <entry>Message Id</entry> - <entry>Message Text / Purpose</entry> - </row> - </thead> - <tbody> - <row id="Java-Broker-Appendix-Operation-Logging-Message-MST-1001"> - <entry morerows="1">MST-1001</entry> - <entry>Created</entry> - </row> - <row> - <entry> - <para>Indicates that a message store has been created. The message store is responsible - for the storage of the messages themselves, including the message body and any - headers.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-MST-1002"> - <entry morerows="1">MST-1002</entry> - <entry>Store location : <replaceable>path</replaceable></entry> - </row> - <row> - <entry> - <para>Indicates that the message store is using <replaceable>path</replaceable> for the - location of the message store.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-MST-1003"> - <entry morerows="1">MST-1003</entry> - <entry>Closed</entry> - </row> - <row> - <entry> - <para>Indicates that the message store has been closed.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-MST-1004"> - <entry morerows="1">MST-1004</entry> - <entry>Recovery Start</entry> - </row> - <row> - <entry> - <para>Indicates that message recovery has begun.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-MST-1005"> - <entry morerows="1">MST-1005</entry> - <entry>Recovered <replaceable>number of messages</replaceable> messages.</entry> - </row> - <row> - <entry> - <para>Indicates that recovery recovered the given number of messages from the - store.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-MST-1006"> - <entry morerows="1">MST-1006</entry> - <entry>Recovered Complete</entry> - </row> - <row> - <entry> - <para>Indicates that the message recovery is concluded.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-MST-1007"> - <entry morerows="1">MST-1007</entry> - <entry>Store Passivated</entry> - </row> - <row> - <entry> - <para>The store is entering a passive state where is it unavailable for normal - operations. Currently this message is used by HA when the node is in replica - state.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-MST-1008"> - <entry morerows="1">MST-1008</entry> - <entry>Store overfull, flow control will be enforced</entry> - </row> - <row> - <entry> - <para>The store has breached is maximum configured size. See <xref - linkend="Qpid-Producer-Flow-Control"/> for details.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-MST-1009"> - <entry morerows="1">MST-1009</entry> - <entry>Store overfull condition cleared</entry> - </row> - <row> - <entry> - <para>The store size has fallen beneath its resume capacity and therefore flow control - has been rescinded. See <xref linkend="Qpid-Producer-Flow-Control"/> for - details.</para> - </entry> - </row> - </tbody> - </tgroup> - </table> - - <table pgwide="1" id="Java-Broker-Appendix-Operation-Logging-Message-List-TransactionStore"> - <title>Transaction Store Log Messages</title> - <tgroup cols="2"> - <thead> - <row> - <entry>Message Id</entry> - <entry>Message Text / Purpose</entry> - </row> - </thead> - <tbody> - <row id="Java-Broker-Appendix-Operation-Logging-Message-TXN-1001"> - <entry morerows="1">TXN-1001</entry> - <entry>Created</entry> - </row> - <row> - <entry> - <para>Indicates that a transaction store has been created. The transaction store is - responsible for the storage of messages instances, that is, the presence of a message - on a queue.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-TXN-1002"> - <entry morerows="1">TXN-1002</entry> - <entry>Store location : <replaceable>path</replaceable></entry> - </row> - <row> - <entry> - <para>Indicates that the transaction store is using <replaceable>path</replaceable> for - the location of the store.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-TXN-1003"> - <entry morerows="1">TXN-1003</entry> - <entry>Closed</entry> - </row> - <row> - <entry> - <para>Indicates that the transaction store has been closed.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-TXN-1004"> - <entry morerows="1">TXN-1004</entry> - <entry>Recovery Start</entry> - </row> - <row> - <entry> - <para>Indicates that transaction recovery has begun.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-MST-TXN"> - <entry morerows="1">TXN-1005</entry> - <entry>Recovered <replaceable>number</replaceable> messages for queue - <replaceable>name</replaceable>.</entry> - </row> - <row> - <entry> - <para>Indicates that recovery recovered the given number of message instances for the - given queue.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-TXN-1006"> - <entry morerows="1">TXN-1006</entry> - <entry>Recovered Complete</entry> - </row> - <row> - <entry> - <para>Indicates that the message recovery is concluded.</para> - </entry> - </row> - </tbody> - </tgroup> - </table> - - <table pgwide="1" id="Java-Broker-Appendix-Operation-Logging-Message-List-ConfigurationStore"> - <title>Configuration Store Log Messages</title> - <tgroup cols="2"> - <thead> - <row> - <entry>Message Id</entry> - <entry>Message Text / Purpose</entry> - </row> - </thead> - <tbody> - <row id="Java-Broker-Appendix-Operation-Logging-Message-CFG-1001"> - <entry morerows="1">CFG-1001</entry> - <entry>Created</entry> - </row> - <row> - <entry> - <para>Indicates that a configuration store has been created. The configuration store is - responsible for the storage of the definition of objects such as queues, exchanges, - and bindings.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-CFG-1002"> - <entry morerows="1">CFG-1002</entry> - <entry>Store location : <replaceable>path</replaceable></entry> - </row> - <row> - <entry> - <para>Indicates that the configuration store is using <replaceable>path</replaceable> - for the location of the store.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-CFG-1003"> - <entry morerows="1">CFG-1003</entry> - <entry>Closed</entry> - </row> - <row> - <entry> - <para>Indicates that the configuration store has been closed.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-CFG-1004"> - <entry morerows="1">CFG-1004</entry> - <entry>Recovery Start</entry> - </row> - <row> - <entry> - <para>Indicates that configuration recovery has begun.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-CFG-1005"> - <entry morerows="1">CFG-1005</entry> - <entry>Recovered Complete</entry> - </row> - <row> - <entry> - <para>Indicates that the configuration recovery is concluded.</para> - </entry> - </row> - </tbody> - </tgroup> - </table> - - <table pgwide="1" id="Java-Broker-Appendix-Operation-Logging-Message-List-HA"> - <title>HA Log Messages</title> - <tgroup cols="2"> - <thead> - <row> - <entry>Message Id</entry> - <entry>Message Text / Purpose</entry> - </row> - </thead> - <tbody> - <row id="Java-Broker-Appendix-Operation-Logging-Message-HA-1001"> - <entry morerows="1">HA-1001</entry> - <entry>Created</entry> - </row> - <row> - <entry> - <para>This HA node has been created.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-HA-1002"> - <entry morerows="1">HA-1002</entry> - <entry>Deleted</entry> - </row> - <row> - <entry> - <para>This HA node has been deleted</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-HA-1003"> - <entry morerows="1">HA-1003</entry> - <entry>Added : Node : '<replaceable>name</replaceable>' - (<replaceable>host:port</replaceable>)</entry> - </row> - <row> - <entry> - <para>A new node has been added to the group.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-HA-1004"> - <entry morerows="1">HA-1004</entry> - <entry>Removed : Node : '<replaceable>name</replaceable>' - (<replaceable>host:port</replaceable>)</entry> - </row> - <row> - <entry> - <para>The node has been removed from the group. This removal is permanent.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-HA-1005"> - <entry morerows="1">HA-1005</entry> - <entry>Joined : Node : '<replaceable>name</replaceable>' - (<replaceable>host:port</replaceable>)</entry> - </row> - <row> - <entry> - <para>The node has become reachable. This may be as a result of the node being - restarted, or a network problem may have been resolved.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-HA-1006"> - <entry morerows="1">HA-1006</entry> - <entry>Left : Node : '<replaceable>name</replaceable>' - (<replaceable>host:port</replaceable>)</entry> - </row> - <row> - <entry> - <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> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-HA-1007"> - <entry morerows="1">HA-1007</entry> - <entry>HA-1007 : Master transfer requested : to '<replaceable>name</replaceable>' - (<replaceable>host:port</replaceable>)</entry> - </row> - <row> - <entry> - <para>Indicates that a master transfer operation has been requested.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-HA-1008"> - <entry morerows="1">HA-1008</entry> - <entry>HA-1008 : Intruder detected : Node '<replaceable>name</replaceable>' - (<replaceable>host:port</replaceable>)</entry> - </row> - <row> - <entry> - <para>Indicates that an unexpected node has joined the group. The virtualhost node will - go into the ERROR state in response to the condition.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-HA-1009"> - <entry morerows="1">HA-1009</entry> - <entry>HA-1009 : Insufficient replicas contactable</entry> - </row> - <row> - <entry> - <para>This node (which was in the master role) no longer has sufficient replica in - contact in order to complete transactions.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-HA-1010"> - <entry morerows="1">HA-1010</entry> - <entry>HA-1010 : Role change reported: Node : '<replaceable>name</replaceable>' - (<replaceable>host:port</replaceable>) : from <replaceable>role</replaceable> to - <replaceable>role</replaceable></entry> - </row> - <row> - <entry> - <para>Indicates that the node has changed role within the group.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-HA-1011"> - <entry morerows="1">HA-1011</entry> - <entry>HA-1011 : Minimum group size : <replaceable>new group size</replaceable></entry> - </row> - <row> - <entry> - <para>The quorum requirements from completing elections or transactions has been - changed.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-HA-1012"> - <entry morerows="1">HA-1012</entry> - <entry>HA-1012 : Priority : <replaceable>priority</replaceable></entry> - </row> - <row> - <entry> - <para>The priority of the object node has been changed. Zero indicates that the node - cannot be elected master.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-HA-1013"> - <entry morerows="1">HA-1013</entry> - <entry>HA-1013 : Designated primary : <replaceable>true|false</replaceable></entry> - </row> - <row> - <entry> - <para>This node has been designated primary and can now operate solo. Applies to two - node groups only.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-HA-1014"> - <entry morerows="1">HA-1014</entry> - <entry>HA-1014 : Diverged transactions discarded</entry> - </row> - <row> - <entry> - <para>This node is in the process of rejoining the group but has discovered that some - of its transactions differ from those of the current master. The node will - automatically roll-back (i.e. discard) the diverging transactions in order to be - allowed to rejoin the group. This situation can only usually occur as a result of use - of the weak durability options. These allow the group to operate with fewer than - quorum nodes and therefore allow the inconsistencies to develop. </para> - <para>On encountering this condition, it is <emphasis>strongly</emphasis> recommendend - to run an application level reconcilation to determine the data that has been - lost.</para> - </entry> - </row> - - </tbody> - </tgroup> - </table> - - <table pgwide="1" id="Java-Broker-Appendix-Operation-Logging-Message-List-Port"> - <title>Port Log Messages</title> - <tgroup cols="2"> - <thead> - <row> - <entry>Message Id</entry> - <entry>Message Text / Purpose</entry> - </row> - </thead> - <tbody> - <row id="Java-Broker-Appendix-Operation-Logging-Message-PRT-1001"> - <entry morerows="1">PRT-1001</entry> - <entry>Create</entry> - </row> - <row> - <entry> - <para>Port has been created.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-PRT-1002"> - <entry morerows="1">PRT-1002</entry> - <entry>Open</entry> - </row> - <row> - <entry> - <para>Port has been open</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-PRT-1003"> - <entry morerows="1">PRT-1003</entry> - <entry>Close</entry> - </row> - <row> - <entry> - <para>Port has been closed</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-PRT-1004"> - <entry morerows="1">PRT-1004</entry> - <entry>Connection count <replaceable>number</replaceable> within <replaceable>warn limit</replaceable> % of maximum <replaceable>limit</replaceable> - </entry> - </row> - <row> - <entry> - <para>Warns that number of open connections approaches maximum allowed limit</para> - </entry> - </row> - <row id="Java-Broker-Appendix-Operation-Logging-Message-PRT-1005"> - <entry morerows="1">PRT-1005</entry> - <entry>Connection from <replaceable>host</replaceable> rejected</entry> - </row> - <row> - <entry> - <para>Connection from given host is rejected because of reaching the maximum allowed limit</para> - </entry> - </row> - </tbody> - </tgroup> -</table> - -</appendix> diff --git a/qpid/doc/book/src/java-broker/Java-Broker-Appendix-Queue-Alerts.xml b/qpid/doc/book/src/java-broker/Java-Broker-Appendix-Queue-Alerts.xml deleted file mode 100644 index 687a063289..0000000000 --- a/qpid/doc/book/src/java-broker/Java-Broker-Appendix-Queue-Alerts.xml +++ /dev/null @@ -1,101 +0,0 @@ -<?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. - ---> - -<appendix id="Java-Broker-Appendix-Queue-Alerts"> - <title>Queue Alerts</title> - <para>The Broker supports a variety of queue alerting thresholds. Once configured on a queue, - these limits will be periodically written to the log if these limits are breached, until the - condition is rectified.</para> - <para>For example, if queue <literal>myqueue</literal> is configured with a message count alert of - 1000, and then owing to a failure of a downstream system messages begin to accumulate on the - queue, the following alerts will be written periodically to the log. </para> - <screen> -INFO [default:VirtualHostHouseKeepingTask] (queue.NotificationCheck) - MESSAGE_COUNT_ALERT - On Queue myqueue - 1272: Maximum count on queue threshold (1000) breached. - </screen> - <para>Note that queue alerts are <emphasis>soft</emphasis> in nature; breaching the limit will - merely cause the alerts to be generated but messages will still be accepted to the queue.</para> - <table pgwide="1" id="Java-Broker-Appendix-Queue-Alerts-Alerting-Messages"> - <title>Queue Alerts</title> - <tgroup cols="2"> - <thead> - <row> - <entry>Alert Name</entry> - <entry>Alert Format and Purpose</entry> - </row> - </thead> - <tbody> - <row> - <entry morerows="1">MESSAGE_COUNT_ALERT</entry> - <entry> MESSAGE_COUNT_ALERT On Queue <replaceable>queuename</replaceable> - - <replaceable>number of messages</replaceable>: Maximum count on queue threshold - (<replaceable>limit</replaceable>) breached. </entry> - </row> - <row> - <entry> - <para>The number of messages on the given queue has breached its configured - limit.</para> - </entry> - </row> - <row> - <entry morerows="1">MESSAGE_SIZE_ALERT</entry> - <entry> MESSAGE_SIZE_ALERT On Queue <replaceable>queuename</replaceable> - -<replaceable>message size</replaceable> : Maximum message size threshold - (<replaceable>limit</replaceable>) breached. [Message ID=<replaceable>message - id</replaceable>]</entry> - </row> - <row> - <entry> - <para>The size of an individual messages has breached its configured limit.</para> - </entry> - </row> - <row> - <entry morerows="1">QUEUE_DEPTH_ALERT</entry> - <entry> QUEUE_DEPTH_ALERT On Queue <replaceable>queuename</replaceable> - - <replaceable>total size of all messages on queue</replaceable> : Maximum queue depth - threshold (<replaceable>limit</replaceable>) breached.</entry> - </row> - <row> - <entry> - <para>The total size of all messages on the queue has breached its configured - limit.</para> - </entry> - </row> - <row> - <entry morerows="1">MESSAGE_AGE_ALERT</entry> - <entry>MESSAGE_AGE_ALERT On Queue <replaceable>queuename</replaceable> - <replaceable>age - of message</replaceable> : Maximum age on queue threshold - (<replaceable>limit</replaceable>) breached. </entry> - </row> - <row> - <entry> - <para>The age of a message on the given queue has breached its configured limit.</para> - </entry> - </row> - </tbody> - </tgroup> - </table> -</appendix> diff --git a/qpid/doc/book/src/java-broker/Java-Broker-Appendix-System-Properties.xml b/qpid/doc/book/src/java-broker/Java-Broker-Appendix-System-Properties.xml deleted file mode 100644 index bee52f47b2..0000000000 --- a/qpid/doc/book/src/java-broker/Java-Broker-Appendix-System-Properties.xml +++ /dev/null @@ -1,144 +0,0 @@ -<?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. - ---> - -<appendix id="Java-Broker-Appendix-System-Properties"> - <title>System Properties</title> - <para>The following table describes the Java system properties used by the Broker to control - various optional behaviours.</para> - <para>The preferred method of enabling these system properties is using the <link - linkend="Java-Broker-Appendix-Environment-Variables-Qpid-Opts" - ><literal>QPID_OPTS</literal></link> environment variable described in the previous - section.</para> - <table pgwide="1"> - <title>System properties</title> - <tgroup cols="3"> - <thead> - <row> - <entry>System property</entry> - <entry>Default</entry> - <entry>Purpose</entry> - </row> - </thead> - <tbody> - <row id="Java-Broker-Appendix-System-Properties-Broker-Heartbeat-Timeout-Factor"> - <entry>qpid.broker_heartbeat_timeout_factor</entry> - <entry>2</entry> - <entry>Factor to determine the maximum length of that may elapse between heartbeats being - received from the peer before a connection is deemed to have been broken.</entry> - </row> - <row id="Java-Broker-Appendix-System-Properties-Broker-Dead-Letter-Exchange-Suffix"> - <entry>qpid.broker_dead_letter_exchange_suffix</entry> - <entry>_DLE</entry> - <entry>Used with the <xref - linkend="Java-Broker-Runtime-Handling-Undeliverable-Messages-Dead-Letter-Queues"/> - feature. Governs the suffix used when generating a name for a Dead Letter - Exchange.</entry> - </row> - <row id="Java-Broker-Appendix-System-Properties-Broker-Dead-Letter-Queue-Suffix"> - <entry>qpid.broker_dead_letter_queue_suffix</entry> - <entry>_DLQ</entry> - <entry>Used with the <xref - linkend="Java-Broker-Runtime-Handling-Undeliverable-Messages-Dead-Letter-Queues"/> - feature. Governs the suffix used when generating a name for a Dead Letter Queue.</entry> - </row> - <row> - <entry>qpid.broker_msg_auth</entry> - <entry>false</entry> - <entry> - <para>If set true, the Broker ensures that the user id of each received message matches - the user id of the producing connection. If this check fails, the message is returned - to the producer's connection with a 403 (Access Refused) error code.</para> - <para>This is check is currently not enforced when using AMQP 0-10 and 1-0 - protocols.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-System-Properties-Broker-Status-Updates"> - <entry>qpid.broker_status_updates</entry> - <entry>true</entry> - <entry> - <para>If set true, the Broker will produce operational logging messages.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-System-Properties-Broker-Default-Supported-Protocol-Version-Reply"> - <entry>qpid.broker_default_supported_protocol_version_reply</entry> - <entry>none</entry> - <entry> - <para>Used during protocol negotiation. If set, the Broker will offer this AMQP version - to a client requesting an AMQP protocol that is not supported by the Broker. If not set, the - Broker offers the highest protocol version it supports.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-System-Properties-Broker-Disabled-Features"> - <entry>qpid.broker_disabled_features</entry> - <entry>none</entry> - <entry> - <para>Allows optional Broker features to be disabled. Currently understood feature - names are: <literal>qpid.jms-selector</literal></para> - <para>Feature names should be comma separated.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-System-Properties-Broker-Frame-Size"> - <entry>qpid.broker_frame_size</entry> - <entry>65536</entry> - <entry> - <para>Maximum AMQP frame size supported by the Broker.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-System-Properties-Jmx-Method-Rights"> - <entry>qpid.broker_jmx_method_rights_infer_all_access</entry> - <entry>true</entry> - <entry> - <para>Used when using <link linkend="Java-Broker-Security-ACLs">ACLs</link> and the JMX - management interface.</para> - <para>If set true, the METHOD object permission is sufficient to allow the user to - perform the operation. If set false, the user will require both the METHOD object - permission and the underlying object permission too (for instance QUEUE object - permission if performing management operations on a queue). If the user is not granted - both permissions, the operation will be denied.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-System-Properties-Broker-Jmx-Custom-Rmi"> - <entry>qpid.broker_jmx_use_custom_rmi_socket_factory</entry> - <entry>true</entry> - <entry> - <para>Applicable to the JMX management interface. If true, the Broker creates a custom - RMI socket factory that is secured from changes outside of the JVM. If false, - a standard RMI socket factory is used.</para> - <para>It is not recommended to change this property from its default value.</para> - </entry> - </row> - <row id="Java-Broker-Appendix-System-Properties-Broker-Log-Record-Buffer-Size"> - <entry>qpid.broker_log_records_buffer_size</entry> - <entry>4096</entry> - <entry> - <para>Controls the number of recent Broker log entries that remain viewable online via - the HTTP Management interface.</para> - </entry> - </row> - </tbody> - </tgroup> - </table> -</appendix> 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 deleted file mode 100644 index 09bb2b4fcc..0000000000 --- a/qpid/doc/book/src/java-broker/Java-Broker-Backup-And-Recovery.xml +++ /dev/null @@ -1,137 +0,0 @@ -<?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> - <cmdsynopsis> - <command>java</command> - <arg choice="plain">-cp qpid-bdbstore-&qpidCurrentRelease;.jar</arg> - <arg choice="plain">org.apache.qpid.server.store.berkeleydb.BDBBackup</arg> - <sbr/> - <arg choice="plain">-fromdir <replaceable>${QPID_WORK}/<nodename>/config</replaceable></arg> - <arg choice="plain">-todir <replaceable>path/to/backup/folder</replaceable></arg> - </cmdsynopsis> - </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> - <cmdsynopsis> - <command>backup.sh</command> - <arg choice="plain">-fromdir <replaceable>${QPID_WORK}/<nodename>/config</replaceable></arg> - <arg choice="plain">-todir <replaceable>path/to/backup/folder</replaceable></arg> - </cmdsynopsis> - </example> - </section> - <section id="Java-Broker-Backup-And-Recovery-Virtualhost-Node-BDB-HA"> - <title>BDB-HA</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 deleted file mode 100644 index 7f871dcc20..0000000000 --- a/qpid/doc/book/src/java-broker/Java-Broker-Close-On-No-Route.xml +++ /dev/null @@ -1,74 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> -<section id="Java-Broker-Close-Connection-When-No-Route"> - <title>Closing client connections on unroutable mandatory messages</title> - - <section id="Java-Broker-Close-Connection-When-No-Route-Summary"> - <title>Summary</title> - <para> - Due to asynchronous nature of AMQP 0-8/0-9/0-9-1 protocols sending a message with a routing key for which no queue binding exist results - in either message being bounced back (if it is mandatory or immediate) or discarded on broker side otherwise. - </para> - <para> - When a 'mandatory' message is returned back, the Qpid JMS client conveys this by delivering - 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) - as they usually close the connection on receiving any JMSException. - </para> - <para> - In order to simplify application handling of scenarios where 'mandatory' messages - are being sent to queues which do not actually exist, the Java Broker can be configured such that - it will respond to this situation by closing the connection - rather than returning the unroutable message to the client as it normally should. - From the application perspective, this will result in failure of synchronous operations in progress such as a session commit() call. - </para> - <note> - <para>This feature affects only transacted sessions.</para> - <para> - Qpid JMS client sends 'mandatory' messages when using Queue destinations - and 'non-mandatory' messages when using Topic destinations. - </para> - </note> - </section> - <section id="Java-Broker-Close-Connection-When-No-Route-Configuration"> - <title>Configuring <emphasis>closeWhenNoRoute</emphasis></title> - <para> - The Broker attribute <emphasis>closeWhenNoRoute</emphasis> can be set to specify this feature on broker side. - By default, it is turned on. Setting <emphasis>closeWhenNoRoute</emphasis> to <emphasis>false</emphasis> switches it off. - </para> - <para> - Setting the <emphasis>closeWhenNoRoute</emphasis> in the JMS client connection URL can override the broker configuration - on a connection specific basis, for example : - </para> - <example> - <title>Disable feature to close connection on unroutable messages with client URL</title> - <screen><![CDATA[ -amqp://guest:guest@clientid/?brokerlist='tcp://localhost:5672'&closeWhenNoRoute='false']]></screen> - </example> - <para> - If no value is specified on the client the broker setting will be used. If client setting is specified then it will take precedence - over the broker-wide configuration. If the client specifies and broker does not support this feature the warning will be logged. - </para> - </section> -</section> diff --git a/qpid/doc/book/src/java-broker/Java-Broker-Concepts.xml b/qpid/doc/book/src/java-broker/Java-Broker-Concepts.xml deleted file mode 100644 index cabc04f150..0000000000 --- a/qpid/doc/book/src/java-broker/Java-Broker-Concepts.xml +++ /dev/null @@ -1,46 +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. - ---> - -<chapter id="Java-Broker-Concepts"> - <title>Concepts</title> - - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" - href="concepts/Java-Broker-Concepts-Overview.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" - href="concepts/Java-Broker-Concepts-Broker.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" - href="concepts/Java-Broker-Concepts-Virtualhost-Nodes.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" - href="concepts/Java-Broker-Concepts-RemoteReplicationNodes.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" - href="concepts/Java-Broker-Concepts-Virtualhosts.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" - href="concepts/Java-Broker-Concepts-Exchanges.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" - href="concepts/Java-Broker-Concepts-Queues.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" - href="concepts/Java-Broker-Concepts-Ports.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" - href="concepts/Java-Broker-Concepts-Authentication-Providers.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" - href="concepts/Java-Broker-Concepts-Other-Services.xml"/> -</chapter> diff --git a/qpid/doc/book/src/java-broker/Java-Broker-Exchanges-Binding-Arguments.xml b/qpid/doc/book/src/java-broker/Java-Broker-Exchanges-Binding-Arguments.xml deleted file mode 100644 index 06c5ee7336..0000000000 --- a/qpid/doc/book/src/java-broker/Java-Broker-Exchanges-Binding-Arguments.xml +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section id=""> -<title></title> - -</section> diff --git a/qpid/doc/book/src/java-broker/Java-Broker-Getting-Started.xml b/qpid/doc/book/src/java-broker/Java-Broker-Getting-Started.xml deleted file mode 100644 index 644190a92a..0000000000 --- a/qpid/doc/book/src/java-broker/Java-Broker-Getting-Started.xml +++ /dev/null @@ -1,174 +0,0 @@ -<?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-Getting-Started"> - <title>Getting Started</title> - - <section role="h2" id="Java-Broker-Getting-Started-Introduction"> - <title>Introduction</title> - <para> - This section describes how to start and stop the Java Broker, and outlines the various command line options. - </para> - <para> - For additional details about the broker configuration store and related command line arguments see - <xref linkend="Java-Broker-Initial-Configuration"/>. - The broker is fully configurable via its Web Management Console, for details of this see - <xref linkend="Java-Broker-Management-Channel-Web-Console"/>. - </para> - </section> - <section role="h2" id="Java-Broker-Getting-Started-Starting-Stopping-Windows"> - <title>Starting/Stopping the broker on Windows</title> - <para>Firstly change to the installation directory used during the <link linkend="Java-Broker-Installation-InstallationWindows">installation</link> - and ensure that the <link linkend="Java-Broker-Installation-InstallationWindows-SettingQPIDWORK">QPID_WORK environment variable is set</link>.</para> - <para>Now use the <command>qpid-server.bat</command> to start the server</para> - <programlisting><![CDATA[bin\qpid-server.bat]]></programlisting> - <para>Output similar to the following will be seen:</para> - <screen>[Broker] BRK-1006 : Using configuration : C:\qpidwork\config.json -[Broker] BRK-1007 : Using logging configuration : C:\qpid\&windowsExtractedBrokerDirName;\etc\log4j.xml -[Broker] BRK-1001 : Startup : Version: &qpidCurrentRelease; Build: 1478262 -[Broker] BRK-1010 : Platform : JVM : Oracle Corporation version: 1.7.0_21-b11 OS : Windows 7 version: 6.1 arch: x86 -[Broker] BRK-1011 : Maximum Memory : 1,060,372,480 bytes -[Broker] BRK-1002 : Starting : Listening on TCP port 5672 -[Broker] MNG-1001 : JMX Management Startup -[Broker] MNG-1002 : Starting : RMI Registry : Listening on port 8999 -[Broker] MNG-1002 : Starting : JMX RMIConnectorServer : Listening on port 9099 -[Broker] MNG-1004 : JMX Management Ready -[Broker] MNG-1001 : Web Management Startup -[Broker] MNG-1002 : Starting : HTTP : Listening on port 8080 -[Broker] MNG-1004 : Web Management Ready -[Broker] BRK-1004 : Qpid Broker Ready</screen> - <para>The BRK-1004 message confirms that the Broker is ready for work. The MNG-1002 and BRK-1002 confirm the ports to - which the Broker is listening (for HTTP/JMX management and AMQP respectively).</para> - <para>To stop the Broker, use Control-C or use the Shutdown MBean from the - <link linkend="Java-Broker-Management-Channel-JMX">JMX management plugin</link>.</para> - </section> - <section role="h2" id="Java-Broker-Getting-Started-Starting-Stopping-Unix"> - <title>Starting/Stopping the broker on Unix</title> - <para>Firstly change to the installation directory used during the <link linkend="Java-Broker-Installation-InstallationUnix">installation</link> - and ensure that the <link linkend="Java-Broker-Installation-InstallationUnix-SettingQPIDWORK">QPID_WORK environment variable is set</link>.</para> - <para>Now use the <command>qpid-server</command> script to start the server:</para> - <programlisting><![CDATA[bin/qpid-server]]></programlisting> - <para>Output similar to the following will be seen:</para> - <screen>[Broker] BRK-1006 : Using configuration : /var/qpidwork/config.json -[Broker] BRK-1007 : Using logging configuration : /usr/local/qpid/&unixExtractedBrokerDirName;/etc/log4j.xml -[Broker] BRK-1001 : Startup : Version: &qpidCurrentRelease; Build: exported -[Broker] BRK-1010 : Platform : JVM : Sun Microsystems Inc. version: 1.6.0_32-b05 OS : Linux version: 3.6.10-2.fc16.x86_64 arch: amd64 -[Broker] BRK-1011 : Maximum Memory : 1,065,025,536 bytes -[Broker] BRK-1002 : Starting : Listening on TCP port 5672 -[Broker] MNG-1001 : Web Management Startup -[Broker] MNG-1002 : Starting : HTTP : Listening on port 8080 -[Broker] MNG-1004 : Web Management Ready -[Broker] MNG-1001 : JMX Management Startup -[Broker] MNG-1002 : Starting : RMI Registry : Listening on port 8999 -[Broker] MNG-1002 : Starting : JMX RMIConnectorServer : Listening on port 9099 -[Broker] MNG-1004 : JMX Management Ready -[Broker] BRK-1004 : Qpid Broker Ready</screen> - <para>The BRK-1004 message confirms that the Broker is ready for work. The MNG-1002 and BRK-1002 confirm the ports to - which the Broker is listening (for HTTP/JMX management and AMQP respectively).</para> - <para>To stop the Broker, use Control-C from the controlling shell, use the - <command>bin/qpid.stop</command> script, use <command>kill -TERM <pid></command>, or - the Shutdown MBean from the <link linkend="Java-Broker-Management-Channel-JMX">JMX management plugin</link>.</para> - </section> - <section role="h2" id="Java-Broker-Getting-Started-LogFile"> - <title>Log file</title> - <para>The Java Broker writes a log file to record both details of its normal operation and any exceptional - conditions. By default the log file is written within the log subdirectory beneath the work directory - - <computeroutput>$QPID_WORK/log/qpid.log</computeroutput> (UNIX) and - <computeroutput>%QPID_WORK%\log\qpid.log</computeroutput> (Windows).</para> - <para>For details of how to control the logging, see <xref linkend="Java-Broker-Runtime-Log-Files"/></para> - </section> - <section role="h2" id="Java-Broker-Getting-Started-CommandLine"> - <title>Using the command line</title> - <para>The Java Broker understands a number of command line options which may be used to customise the configuration.</para> - <para> - For additional details about the broker configuration and related command line arguments see - <xref linkend="Java-Broker-Initial-Configuration"/>. - The broker is fully configurable via its Web Management Console, for details of this see - <xref linkend="Java-Broker-Management-Channel-Web-Console"/>. - </para> - <para>To see usage information for all command line options, use the <option>--help</option> option</para> - <programlisting><![CDATA[bin/qpid-server --help]]></programlisting> - <screen><![CDATA[usage: Qpid [-cic <path>] [-h] [-icp <path>] [-l <file>] [-mm] [-mmhttp <port>] - [-mmjmx <port>] [-mmpass <password>] [-mmqv] [-mmrmi <port>] [-os] - [-sp <path>] [-st <type>] [-v] [-w <period>] - -cic <path> Create a copy of the initial config - --create-initial-config <path> file, either to an optionally specified - file path, or as initial-config.json - in the current directory - - -h, Print this message - --help - - -icp <path> Set the location of initial JSON config - --initial-config-path <path> to use when creating/overwriting a - broker configuration store - - -l <file> Use the specified log4j xml configuration - --logconfig <file> file. By default looks for a file named - etc/log4j.xml in the same directory as - the configuration file - - -mm Start broker in management mode, - --management-mode disabling the AMQP ports - - -mmhttp <port> Override http management port in - --management-mode-http-port <port> management mode - - -mmjmx Override jmx connector port in - --management-mode-jmx-connector-port <port> management mode - - -mmpass <password> Set the password for the management - --management-mode-password <password> mode user mm_admin - - -mmqv Make virtualhosts stay in the quiesced - --management-mode-quiesce-virtualhosts state during management mode. - - -mmrmi <port> Override jmx rmi registry port in - --management-mode-rmi-registry-port <port> management mode - - -os Overwrite the broker configuration store - --overwrite-store with the current initial configuration - - -prop "<name=value>" Set a configuration property to use when - --config-property "<name=value>" resolving variables in the broker - configuration store, with format - "name=value" - - -sp <path> Use given configuration store location - --store-path <path> - - -st <type> Use given broker configuration store type - --store-type <type> - - -v Print the version information and exit - --version - - -w <period> Monitor the log file configuration file - --logwatch <period> for changes. Units are seconds. Zero - means do not check for changes. -]]></screen> - </section> -</chapter> 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 deleted file mode 100644 index 8282beaa5e..0000000000 --- a/qpid/doc/book/src/java-broker/Java-Broker-High-Availability.xml +++ /dev/null @@ -1,567 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!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-High-Availability"> - <title>High Availability</title> - - <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 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 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>Click the <literal>Add</literal> button on the Virtualhost Panel on the Broker - tab.</para> - <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> - <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> - </listitem> - <listitem> - <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> - <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> - <para>Repeat these steps until you have added all the nodes to the group.</para> - </listitem> - </orderedlist> - <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> - </listitem> - - </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-Create-3.png" format="PNG" scalefit="1"/> - </imageobject> - <textobject> - <phrase>View of group from one node</phrase> - </textobject> - </mediaobject> - </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>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>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><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> - <listitem> - <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><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><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><emphasis>High</emphasis>. Nodes with this priority will be favoured but not as - much so as those with Highest.</para> - </listitem> - <listitem> - <para><emphasis>Normal</emphasis>. This is default election priority.</para> - </listitem> - <listitem> - <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> - <para>Transaction loss is reported by message <link - linkend="Java-Broker-Appendix-Operation-Logging-Message-HA-1014">HA-1014</link>.</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> - <para>Transaction loss is reported by message <link - linkend="Java-Broker-Appendix-Operation-Logging-Message-HA-1014">HA-1014</link>.</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> - <para>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.</para> - <para>Transaction loss is reported by message <link - linkend="Java-Broker-Appendix-Operation-Logging-Message-HA-1014">HA-1014</link>.</para> - </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>The system first gives time for the chosen new master to become reasonable up to - date. </para> - </listitem> - <listitem> - <para>It then suspends transactions on the old master and allows the chosen node to - become up to date.</para> - </listitem> - <listitem> - <para>The suspended transactions are aborted and any messaging clients connected to the - old master are disconnected.</para> - </listitem> - <listitem> - <para>The chosen master becomes the new master. The old master becomes a replica.</para> - </listitem> - <listitem> - <para>Messaging clients reconnect the new master.</para> - </listitem> - </orderedlist></para> - </section> - </section> - - <section id="Java-Broker-High-Availability-ClientFailover"> - <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>The Qpid JMX API for HA is now deprecated. New users are recommended to use the <link - linkend="Java-Broker-Management-Channel-REST-API">REST API.</link></para> - </section> - - <section id="Java-Broker-High-Availability-DiskSpace"> - <title>Disk space requirements</title> - <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 group - in a separate network not impacted by any other traffic.</para> - </section> - - <section id="Java-Broker-High-Availability-Security"> - <title>Security</title> - <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>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-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>Resetting of replication group with <classname>DbResetRepGroup</classname></title> - <cmdsynopsis> - <command>java</command> - <arg choice="plain">-cp je-&oracleBdbProductVersion;.jar</arg> - <arg choice="plain">com.sleepycat.je.rep.util.DbResetRepGroup</arg> - <arg choice="plain">-h <replaceable>path/to/jelogfiles</replaceable></arg> - <sbr/> - <arg choice="plain">-groupName <replaceable>newgroupname</replaceable></arg> - <arg choice="plain">-nodeName <replaceable>newnodename</replaceable></arg> - <arg choice="plain">-nodeHostPort <replaceable>newhostname:5000</replaceable></arg> - </cmdsynopsis> - </example> - <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 deleted file mode 100644 index ce461d32d7..0000000000 --- a/qpid/doc/book/src/java-broker/Java-Broker-Initial-Configuration.xml +++ /dev/null @@ -1,360 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<chapter id="Java-Broker-Initial-Configuration"> - <title>Initial Configuration</title> - - - <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 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 database or an in-memory store which does not. The following - components configuration is stored there: <itemizedlist> - <listitem> - <para>Broker</para> - </listitem> - <listitem> - <para>Virtual Host</para> - </listitem> - <listitem> - <para>Port</para> - </listitem> - <listitem> - <para>Authentication Provider</para> - </listitem> - <listitem> - <para>Access Control Provider</para> - </listitem> - <listitem> - <para>Group Provider</para> - </listitem> - <listitem> - <para>Key store</para> - </listitem> - <listitem> - <para>Trust store</para> - </listitem> - <listitem> - <para>Plugin</para> - </listitem> - </itemizedlist> - </para> - - <para> Broker startup involves two configuration related items, the 'Initial Configuration' - and the Configuration Store. When the broker is started, if a Configuration Store does - not exist at the current <link linkend="Java-Broker-Initial-Configuration-Location" - >store location</link> then one will be initialised with the current <link - linkend="Java-Broker-Initial-Configuration-Initial-Config-Location">'Initial - Configuration'</link>. Unless otherwise requested to <link - linkend="Java-Broker-Initial-Configuration-Location">overwrite the configuration - store</link> then subsequent broker restarts will use the existing configuration - store and ignore the contents of the 'Initial Configuration'. </para> - </section> - - <section id="Java-Broker-Initial-Configuration-Location"> - <title>Configuration Store Location</title> - <para> The broker will default to using <link - linkend="Java-Broker-Initial-Configuration-Configuration-Properties" - >${qpid.work_dir}</link>/config.json as the path for its configuration store unless - otherwise instructed. </para> - <para> The command line argument <emphasis>-sp</emphasis> (or - <emphasis>--store-path</emphasis>) can optionally be used to specify a different - relative or absolute path to use for the broker configuration store: </para> - <screen> -$ ./qpid-server -sp ./my-broker-configuration.json - </screen> - - <para> If no configuration store exists at the specified/defaulted location when the broker - starts then one will be initialised using the current <link - linkend="Java-Broker-Initial-Configuration-Initial-Config-Location">'Initial - Configuration'</link>. </para> - </section> - - <section id="Java-Broker-Initial-Configuration-Initial-Config-Location"> - <title>'Initial Configuration' Location</title> - <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 - <emphasis>--initial-config-path</emphasis>) can be used to override the brokers - internal file and supply a <link - linkend="Java-Broker-Initial-Configuration-Create-Initial-Config">user-created - one</link>:</para> - <screen> -$ ./qpid-server -icp ./my-initial-configuration.json - </screen> - - <para> If a Configuration Store already exists at the current <link - linkend="Java-Broker-Initial-Configuration-Location">store location</link> then the - current 'Initial Configuration' will be ignored unless otherwise requested to <link - linkend="Java-Broker-Initial-Configuration-Location">overwrite the configuration - store</link> - </para> - </section> - - <section id="Java-Broker-Initial-Configuration-Create-Initial-Config"> - <title>Creating an 'Initial Configuration' JSON File</title> - - <para> It is possible to have the broker output its default internal 'Initial Configuration' - file to disk using the command line argument <emphasis>-cic</emphasis> (or - <emphasis>--create-initial-config</emphasis>). If the option is used without - providing a path, a file called <emphasis>initial-config.json</emphasis> will be created - in the current directory, or alternatively the file can be created at a specified - location: </para> - <screen> -$ ./qpid-server -cic ./initial-config.json - </screen> - - <para> The 'Initial Configuration' JSON file shares a common format with the brokers JSON - Configuration Store implementation, so it is possible to use a brokers Configuration - Store output as an initial configuration. Typically 'Initial Configuration' files would - not to contain IDs for the configured entities, so that IDs will be generated when the - configuration store is initialised and prevent use of the same IDs across multiple - brokers, however it may prove useful to include IDs if using the Memory <link - linkend="Java-Broker-Initial-Configuration-Type">Configuration Store Type</link>. </para> - <para> It can be useful to use <link - linkend="Java-Broker-Initial-Configuration-Configuration-Properties">Configuration - Properties</link> within 'Initial Configuration' files to allow a degree of - customisation with an otherwise fixed file. </para> - <para> For an example file, see <xref - linkend="Java-Broker-Configuring-And-Managing-Configuration-Initial-Config-Example" - /> - </para> - - </section> - - <section id="Java-Broker-Initial-Configuration-Overwrite-Config-Store"> - <title>Overwriting An Existing Configuration Store</title> - <para> If a configuration store already exists at the configured <link - linkend="Java-Broker-Initial-Configuration-Location">store location</link> then it - is used and the current <link - linkend="Java-Broker-Initial-Configuration-Initial-Config-Location">'Initial - Configuration'</link> is ignored. </para> - <para> The command line argument <emphasis>-os</emphasis> (or - <emphasis>--overwrite-store</emphasis>) can be used to force a new broker - configuration store to be initialised from the current 'Initial Configuration' even if - one exists: </para> - <screen> -$ ./qpid-server -os -icp ./my-initial-configuration.json - </screen> - <para> This can be useful to effectively play configuration into one or more broker to - pre-configure them to a particular state, or alternatively to ensure a broker is always - started with a fixed configuration. In the latter case, use of the Memory <link - linkend="Java-Broker-Initial-Configuration-Type">Configuration Store Type</link> may - also be useful. </para> - </section> - - <section id="Java-Broker-Initial-Configuration-Type"> - <title>Configuration Store Type</title> - <para> There are currently two implementations of the pluggable Broker Configuration Store, - the default one which persists content to disk in a JSON file, and another which - operates only in-memory and so does not retain changes across broker restarts and always - relies on the current <link - linkend="Java-Broker-Initial-Configuration-Initial-Config-Location">'Initial - 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 alternative, - such as <emphasis>memory</emphasis>) </para> - <screen> -$ ./qpid-server -st memory - </screen> - <para> This can be useful when running tests, or always wishing to start the broker with the - same <link linkend="Java-Broker-Initial-Configuration-Initial-Config-Location">'Initial - Configuration'</link> - </para> - </section> - - <section id="Java-Broker-Initial-Configuration-Configuration-Properties"> - <title>Customising Configuration using Configuration Properties</title> - <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 - line. If both are defined, System Property values take precedence. </para> - - <para> The broker has the following set of core configuration properties, with the indicated - default values if not otherwise configured by the user: <table> - <title>Base Configuration Properties</title> - <tgroup cols="3"> - <thead> - <row> - <entry> Name </entry> - <entry> Description </entry> - <entry> Value </entry> - </row> - </thead> - <tbody> - <row> - <entry> qpid.amqp_port </entry> - <entry> Port number used for the brokers default AMQP messaging port </entry> - <entry> "5672" </entry> - </row> - <row> - <entry> qpid.http_port </entry> - <entry> Port number used for the brokers default HTTP management port </entry> - <entry> "8080" </entry> - </row> - <row> - <entry> qpid.rmi_port </entry> - <entry> Port number used for the brokers default RMI Registry port, to - advertise the JMX ConnectorServer. </entry> - <entry> "8999" </entry> - </row> - <row> - <entry> qpid.jmx_port </entry> - <entry> Port number used for the brokers default JMX port </entry> - <entry> "9099" </entry> - </row> - <row> - <entry> qpid.home_dir </entry> - <entry> Location of the broker installation directory, which contains - the 'lib' directory and the 'etc' directory often used to store - files such as group and ACL files. </entry> - <entry> Defaults to the value set into the QPID_HOME system property if - it is set, or remains unset otherwise unless configured by the user. - </entry> - </row> - <row> - <entry> qpid.work_dir </entry> - <entry> Location of the broker working directory, which might contain - the persistent message store and broker configuration store files. </entry> - <entry> Defaults to the value set into the QPID_WORK system property if - it is set, or the 'work' subdirectory of the JVMs current working - directory. </entry> - </row> - </tbody> - </tgroup> - </table> - </para> - - <para> Use of these core properties can be seen in the <link - linkend="Java-Broker-Configuring-And-Managing-Configuration-Initial-Config-Example" - >default 'Initial Configuration' example</link>. </para> - - <para> Configuration Properties can be set on the command line using the - <emphasis>-prop</emphasis> (or <emphasis>--configuration-property</emphasis>) - command line argument: </para> - - <screen> -$ ./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 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 - port numbers instead. </para> - <para> NOTE: When running the broker on Windows and starting it via the qpid-server.bat - file, the "name=value" argument MUST be quoted. </para> - - </section> - - <section id="Java-Broker-Configuring-And-Managing-Configuration-Initial-Config-Example"> - <title>Example of JSON 'Initial Configuration'</title> - <para> An example of the default 'Initial Configuration' JSON file the broker uses is - provided below:</para> - <example> - <title>JSON 'Initial configuration' File</title> - <programlisting><![CDATA[ -{ - "name": "${broker.name}", - "modelVersion": "2.0", - "defaultVirtualHost" : "default", - "authenticationproviders" : [ { - "name" : "passwordFile", - "type" : "PlainPasswordFile", - "path" : "${qpid.home_dir}${file.separator}etc${file.separator}passwd", - "preferencesproviders" : [{ - "name": "fileSystemPreferences", - "type": "FileSystemPreferences", - "path" : "${qpid.work_dir}${file.separator}user.preferences.json" - }] - } ], - "ports" : [ { - "name" : "AMQP", - "port" : "${qpid.amqp_port}", - "authenticationProvider" : "passwordFile" - }, { - "name" : "HTTP", - "port" : "${qpid.http_port}", - "authenticationProvider" : "passwordFile", - "protocols" : [ "HTTP" ] - }, { - "name" : "RMI_REGISTRY", - "port" : "${qpid.rmi_port}", - "protocols" : [ "RMI" ] - }, { - "name" : "JMX_CONNECTOR", - "port" : "${qpid.jmx_port}", - "authenticationProvider" : "passwordFile", - "protocols" : [ "JMX_RMI" ] - }], - "virtualhostnodes" : [ { - "name" : "default", - "type" : "JSON", - "virtualHostInitialConfiguration" : "{ \"type\" : \"DERBY\" }" - } ], - "plugins" : [ { - "type" : "MANAGEMENT-HTTP", - "name" : "httpManagement" - }, { - "type" : "MANAGEMENT-JMX", - "name" : "jmxManagement" - } ] -} -]]></programlisting> - <para>In the configuration above the following entries are stored: <itemizedlist> - <listitem> - <para> Authentication Provider of type - <emphasis>PlainPasswordFile</emphasis> with name "passwordFile". - </para> - </listitem> - <listitem> - <para> Four Port entries: "AMQP", "HTTP", "RMI_REGISTRY", "JMX_CONNECTOR". - </para> - </listitem> - <listitem> - <para> Virtualhost Node called default. On initial startup, it - virtualHostInitialConfiguration will cause a virtualhost to be created - 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> - <listitem> - <para>Two management plugins: "jmxManagement" of type "MANAGEMENT-JMX" and - "httpManagement" of type "MANAGEMENT-HTTP".</para> - </listitem> - <listitem> - <para>Broker attributes are stored as a root entry.</para> - </listitem> - </itemizedlist> - </para> - </example> - </section> - -</chapter> diff --git a/qpid/doc/book/src/java-broker/Java-Broker-Installation.xml b/qpid/doc/book/src/java-broker/Java-Broker-Installation.xml deleted file mode 100644 index 5a8b8d910c..0000000000 --- a/qpid/doc/book/src/java-broker/Java-Broker-Installation.xml +++ /dev/null @@ -1,179 +0,0 @@ -<?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-Installation"> - <title>Installation</title> - <section role="h2" id="Java-Broker-Installation-Introduction"> - <title>Introduction</title> - <para>This document describes how to install the Java Broker on both Windows and UNIX - platforms.</para> - </section> - <section role="h2" id="Java-Broker-Installation-Prerequistes"> - <title>Prerequisites</title> - <section role="h3" id="Java-Broker-Installation-Prerequistes-Java"> - <title>Java Platform</title> - <para> The Java Broker is an 100% Java implementation and as such it can be used on any - operating system supporting Java 1.7 or higher<footnote><para>Java Cryptography Extension (JCE) - Unlimited Strength required for some features</para></footnote>. This includes Linux, Solaris, Mac OS X, and - Windows XP/Vista/7/8.</para> - <para> The broker has been tested with Java implementations from both Oracle and IBM. Whatever - platform you chose, it is recommended that you ensure it is patched with any critical - updates made available from the vendor. </para> - <para> Verify that your JVM is installed properly by following <link - linkend="Java-Broker-Miscellaneous-JVM-Verification">these instructions.</link> - </para> - </section> - <section role="h3" id="Java-Broker-Installation-Prerequistes-Disk"> - <title>Disk</title> - <para>The Java Broker installation requires approximately 20MB of free disk space.</para> - <para>The Java Broker also requires a working directory. The working directory is used for the - message store, that is, the area of the file-system used to record persistent messages - whilst they are passing through the Broker. The working directory is also used for the - default location of the log file. The size of the working directory will depend on the how - the Broker is used.</para> - <para>The performance of the file system hosting the work directory is key to the performance - of Broker as a whole. For best performance, choose a device that has low latency and one - that is uncontended by other applications.</para> - <para>Be aware that there are additional considerations if you are considering hosting the - working directory on NFS.</para> - </section> - <section role="h3" id="Java-Broker-Installation-Prerequistes-Memory"> - <title>Memory</title> - <para>Qpid caches messages on the heap for performance reasons, so in general, the Broker will - benefit from as much heap as possible. However, on a 32bit JVM, the maximum addressable - memory range for a process is 4GB, after leaving space for the JVM's own use this will give - a maximum heap size of approximately ~3.7GB.</para> - </section> - <section role="h3" id="Java-Broker-Installation-Prerequistes-OperatingSystemAccount"> - <title>Operating System Account</title> - <para>Installation or operation of Qpid does <emphasis>not</emphasis> require a privileged - account (i.e. root on UNIX platforms or Administrator on Windows). However it is suggested - that you use an dedicated account (e.g. qpid) for the installation and operation of the Java - Broker.</para> - </section> - </section> - - <section role="h2" id="Java-Broker-Installation-Download"> - <title>Download</title> - <section role="h3" id="Java-Broker-Installation-Download-Release"> - <title>Broker Release</title> - <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. Instructions are given on the download page. - </para> - </section> - </section> - - <section role="h2" id="Java-Broker-Installation-InstallationWindows"> - <title>Installation on Windows</title> - <para> Firstly, verify that your JVM is installed properly by following <link - linkend="Java-Broker-Miscellaneous-JVM-Verification-Windows">these instructions.</link> - </para> - <para>Now chose a directory for Qpid broker installation. This directory will be used for the - Qpid JARs and configuration files. It need not be the same location as the work directory used - for the persistent message store or the log file (you will choose this location later). For - the remainder this example we will assume that location c:\qpid has been chosen.</para> - <para>Next extract the &windowsBrokerDownloadFileName; package into the directory, using either - the zip file handling offered by Windows (right click the file and select 'Extract All') or a - third party tool of your choice.</para> - <para>The extraction of the broker package will have created a directory - &windowsExtractedBrokerDirName; within c:\qpid</para> - <screen> - Directory of c:\qpid\&windowsExtractedBrokerDirName; - -07/25/2012 11:22 PM . -09/30/2012 10:51 AM .. -09/30/2012 12:24 AM bin -08/21/2012 11:17 PM etc -07/25/2012 11:22 PM lib -07/20/2012 08:10 PM 65,925 LICENSE -07/20/2012 08:10 PM 3,858 NOTICE -07/20/2012 08:10 PM 1,346 README.txt -</screen> - <section role="h3" id="Java-Broker-Installation-InstallationWindows-SettingQPIDWORK"> - <title>Setting the working directory</title> - <para>Qpid requires a work directory. This directory is used for the default location of the - Qpid log file and is used for the storage of persistent messages. The work directory can be - set on the command-line (for the lifetime of the command interpreter), but you will normally - want to set the environment variable permanently via the Advanced System Settings in the - Control Panel.</para> - <screen>set QPID_WORK=C:\qpidwork</screen> - <para>If the directory referred to by <link - linkend="Java-Broker-Appendix-Environment-Variables-Qpid-Work">QPID_WORK</link> does not - exist, the Java Broker will attempt to create it on start-up.</para> - </section> - </section> - - <section role="h2" id="Java-Broker-Installation-InstallationUnix"> - <title>Installation on UNIX platforms</title> - <para> Firstly, verify that your JVM is installed properly by following <link - linkend="Java-Broker-Miscellaneous-JVM-Verification-Unix">these instructions.</link> - </para> - <para>Now chose a directory for Qpid broker installation. This directory will be used for the - Qpid JARs and configuration files. It need not be the same location as the work directory used - for the persistent message store or the log file (you will choose this location later). For - the remainder this example we will assume that location /usr/local/qpid has been - chosen.</para> - <para>Next extract the &unixBrokerDownloadFileName; package into the directory.</para> - <programlisting>mkdir /usr/local/qpid -cd /usr/local/qpid -tar xvzf &unixBrokerDownloadFileName;</programlisting> - <para>The extraction of the broker package will have created a directory - &unixExtractedBrokerDirName; within /usr/local/qpid</para> - <screen>ls -la &unixExtractedBrokerDirName;/ -total 152 -drwxr-xr-x 8 qpid qpid 272 25 Jul 23:22 . -drwxr-xr-x 45 qpid qpid 1530 30 Sep 10:51 .. --rw-r--r--@ 1 qpid qpid 65925 20 Jul 20:10 LICENSE --rw-r--r--@ 1 qpid qpid 3858 20 Jul 20:10 NOTICE --rw-r--r--@ 1 qpid qpid 1346 20 Jul 20:10 README.txt -drwxr-xr-x 10 qpid qpid 340 30 Sep 00:24 bin -drwxr-xr-x 9 qpid qpid 306 21 Aug 23:17 etc -drwxr-xr-x 34 qpid qpid 1156 25 Jul 23:22 lib - </screen> - <section role="h3" id="Java-Broker-Installation-InstallationUnix-SettingQPIDWORK"> - <title>Setting the working directory</title> - <para>Qpid requires a work directory. This directory is used for the default location of the - Qpid log file and is used for the storage of persistent messages. The work directory can be - set on the command-line (for the lifetime of the current shell), but you will normally want - to set the environment variable permanently the user's shell profile file (~/.bash_profile - for Bash etc).</para> - <screen><![CDATA[export QPID_WORK=/var/qpidwork]]> - </screen> - <para>If the directory referred to by <link - linkend="Java-Broker-Appendix-Environment-Variables-Qpid-Work">QPID_WORK</link> does not - exist, the Java Broker will attempt to create it on start-up. </para> - </section> - </section> - <section role="h2" id="Java-Broker-Installation-OptionalDependencies"> - <title>Optional Dependencies</title> - <para>If you wish to utilise storage options using Oracle BDB JE or an External Database, see - <xref linkend="Java-Broker-Miscellaneous-Installing-Oracle-BDB-JE"/> and <xref - linkend="Java-Broker-Miscellaneous-Installing-External-JDBC-Driver"/> for details of - installing their dependencies.</para> - </section> -</chapter> diff --git a/qpid/doc/book/src/java-broker/Java-Broker-Introduction.xml b/qpid/doc/book/src/java-broker/Java-Broker-Introduction.xml deleted file mode 100644 index 1eb33d810e..0000000000 --- a/qpid/doc/book/src/java-broker/Java-Broker-Introduction.xml +++ /dev/null @@ -1,89 +0,0 @@ -<?xml version="1.0"?> -<!DOCTYPE chapter[ -<!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-Introduction"> - <title>Introduction</title> - <para>The Java Broker is a powerful open-source message broker that implements all versions of the - <ulink url="http://www.amqp.org"> Advanced Message Queuing Protocol (AMQP)</ulink>. The Java - Broker is actually one of two message brokers provided by the <ulink - url="http://qpid.apache.org">Apache Qpid project</ulink>: the Java Broker and the C++ - Broker.</para> - <para>This document relates to the Java Broker. The <ulink url="&qpidCppBook;">C++ Broker is - described separately</ulink>.</para> - <para><emphasis>Headline features</emphasis></para> - <itemizedlist mark="circle"> - <listitem> - <para>100% Java implementation - runs on any platform supporting Java 1.7 or higher</para> - </listitem> - <listitem> - <para>Messaging clients support in Java, C++, Python.</para> - </listitem> - <listitem> - <para>JMS 1.1 compliance (Java client).</para> - </listitem> - <listitem> - <para>Persistent and non-persistent (transient) message support</para> - </listitem> - <listitem> - <para>Supports for all common messaging patterns (point-to-point, publish/subscribe, fan-out - etc).</para> - </listitem> - <listitem> - <para>Transaction support including XA<footnote> - <para>XA provided when using AMQP 0-10</para> - </footnote></para> - </listitem> - <listitem> - <para>Supports for all versions of the AMQP protocol</para> - </listitem> - <listitem> - <para>Automatic message translation, allowing clients using different AMQP versions to communicate with each other.</para> - </listitem> - <listitem> - <para>Pluggable authentication architecture with out-of-the-box support for Kerberos, LDAP, - External, and file-based authentication mechanisms.</para> - </listitem> - <listitem> - <para>Pluggable storage architecture with implementations including <ulink - url="http://db.apache.org/derby/">Apache Derby</ulink>, <ulink - url="&oracleBdbProductOverviewUrl;">Oracle BDB JE</ulink><footnote> - <para>Oracle BDB JE must be downloaded separately.</para> - </footnote>, and External Database</para> - </listitem> - <listitem> - <para>Web based management interface and programmatic management interfaces via REST and JMX - APIs.</para> - </listitem> - <listitem> - <para>SSL support</para> - </listitem> - <listitem> - <para>High availability (HA) support.<footnote> - <para>HA currently only available to users of the optional BDB JE HA based message store.</para> - </footnote></para> - </listitem> - </itemizedlist> -</chapter> 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 deleted file mode 100644 index 3a71f8c366..0000000000 --- a/qpid/doc/book/src/java-broker/Java-Broker-Management-Channels.xml +++ /dev/null @@ -1,49 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<chapter id="Java-Broker-Management-Channel"> - <title>Management Channels</title> - <para>The Broker can be managed over a number of different channels.</para> - <itemizedlist> - <listitem> - <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 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 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> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="management/channels/Java-Broker-Management-Channel-HTTP.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="management/channels/Java-Broker-Management-Channel-Web-Console.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="management/channels/Java-Broker-Management-Channel-REST-API.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="management/channels/Java-Broker-Management-Channel-JMX.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="management/channels/Java-Broker-Management-Channel-AMQP-Intrinsic.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="management/channels/Java-Broker-Management-Channel-QMF.xml"/> -</chapter> - 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 deleted file mode 100644 index 6a6fe11296..0000000000 --- a/qpid/doc/book/src/java-broker/Java-Broker-Management-Managing-Entities.xml +++ /dev/null @@ -1,119 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" - "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" -[ -<!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-Management-Managing-Entities"> - <title>Managing Entities</title> - <para>This section describes how to manage entities within the Broker. The principles underlying - entity management are the same regardless of entity type. For this reason, this section begins - with a general description that applies to all.</para> - <para>Since not all channels support the management of all entity type, this section commences - with a table showing which entity type is supported by each channel.</para> - - <section id="Java-Broker-Management-Managing-Entities-General"> - <title>General Description</title> - <para>The following description applies to all entities within the Broker regardless of their - type.</para> - <para> - <itemizedlist> - <listitem> - <para>All entities have a parent, and may have children. The parent of the Broker is - called the System Context. It has no parent.</para> - </listitem> - <listitem> - <para>Entities have one or more attributes. For example a <literal>name</literal>, an - <literal>id</literal> or a <literal>maximumQueueDepth</literal></para> - </listitem> - <listitem> - <para>Entities can be durable or non-durable. Durable entities survive a restart. - Non-durable entities will not.</para> - </listitem> - <listitem> - <para>Attributes may have a default value. If an attribute value is not specified the - default value is used.</para> - </listitem> - <listitem> - <para>Attributes values can be expressed as a simple value (e.g. <literal>myName</literal> - or <literal>1234</literal>), in terms of context variables - (e.g.<literal>${foo}</literal> or <literal>/data/${foo}/</literal>).</para> - </listitem> - <listitem> - <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. - It is read only and is populated with all Java System Properties. Thus it can be - influenced from the Broker's external environment. See <link - linkend="Java-Broker-Appendix-Environment-Variables-Qpid-Opts">QPID_OPTS </link> - environment variable.</para> - </listitem> - <listitem> - <para>When resolving an attribute's value, if the value contains a variable - (e.g.<literal>${foo}</literal>), the variable is first resolved using the entity's own - context variables. If the entity has no definition for the context variable, the - entity's parent is tried, then its grandparent and so forth, all the way until the - SystemContext is reached.</para> - </listitem> - <listitem> - <para>Some entities support state and have a lifecycle.</para> - </listitem> - </itemizedlist> - </para> - <para>What follows now is a section dedicated to each entity type. For each entity type key - features are described along with the entities key attributes, key context variables, details - of the entities lifecycle and any other operations.</para> - </section> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" - href="management/managing/Java-Broker-Management-Managing-Entities-Matrix.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" - href="management/managing/Java-Broker-Management-Managing-Broker.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" - href="management/managing/Java-Broker-Management-Managing-VirtualhostNodes.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" - href="management/managing/Java-Broker-Management-Managing-Virtualhosts.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" - href="management/managing/Java-Broker-Management-Managing-RemoteReplicationNodes.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" - href="management/managing/Java-Broker-Management-Managing-Exchanges.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" - href="management/managing/Java-Broker-Management-Managing-Queues.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" - href="management/managing/Java-Broker-Management-Managing-Ports.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" - href="management/managing/Java-Broker-Management-Managing-Authentication-Providers.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" - href="management/managing/Java-Broker-Management-Managing-Keystores.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" - href="management/managing/Java-Broker-Management-Managing-Truststores.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" - href="management/managing/Java-Broker-Management-Managing-Group-Providers.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" - href="management/managing/Java-Broker-Management-Managing-Access-Control-Providers.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" - href="management/managing/Java-Broker-Management-Managing-Plugins-HTTP.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" - href="management/managing/Java-Broker-Management-Managing-Plugins-JMX.xml"/> -</chapter> diff --git a/qpid/doc/book/src/java-broker/Java-Broker-Runtime-Background-Recovery.xml b/qpid/doc/book/src/java-broker/Java-Broker-Runtime-Background-Recovery.xml deleted file mode 100644 index 99f05c4544..0000000000 --- a/qpid/doc/book/src/java-broker/Java-Broker-Runtime-Background-Recovery.xml +++ /dev/null @@ -1,48 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section id="Java-Broker-Runtime-Background-Recovery"> - <title>Background Recovery</title> - <para>On startup of the Broker, or restart of a Virtualhost, the Broker restores all durable - queues and their messages from disk. In the Broker's default mode the Virtualhosts do not become - active until this recovery process completes. If queues have a large number of entries, this may - take considerable time. During this time no messaging can be performed.</para> - <para>The Broker has a background recovery feature allows the system to return to operation - sooner. If enabled the recovery process takes place in the background allow producers and - consumers to begin work earlier.</para> - <para>The feature respects the message delivery order requirements of standard queues, that is any - messages arriving whilst the background recovery is in flight won't overtake older messages - still to be recovered from disk. There is an exception for the out of order queue types whilst - background recovery is in flight. For instance, with priority queues older lower priority - messages may be delivered before newer, higher priority.</para> - <para>To activate the feature, set a <link - linkend="Java-Broker-Management-Managing-Entities-General">context variable</link> - <literal>use_async_message_store_recovery</literal> at the desired Virtualhost, or at Broker or - higher to enable the feature broker-wide.</para> - <note> - <para>The background recovery feature does not write operational log messages to indicate its - progress. This means messages <link - linkend="Java-Broker-Appendix-Operation-Logging-Message-MST-1004">MST-1004</link> and <link - linkend="Java-Broker-Appendix-Operation-Logging-Message-MST-1005">MST-1005</link> will not - be seen.</para> - </note> -</section> diff --git a/qpid/doc/book/src/java-broker/Java-Broker-Runtime-Connection-Limit.xml b/qpid/doc/book/src/java-broker/Java-Broker-Runtime-Connection-Limit.xml deleted file mode 100644 index 06cf6a6631..0000000000 --- a/qpid/doc/book/src/java-broker/Java-Broker-Runtime-Connection-Limit.xml +++ /dev/null @@ -1,52 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section id="Java-Broker-Runtime-Connection-Limit"> - <title>Connection Limits</title> - <para> - Each connection to the Broker consumes resources while it is connected. In order to protect - the Broker against malfunctioning (or malicious) client processes, it is possible to limit the - number of connections that can be active on any given port. - </para> - <para> - Connection limits on AMQP ports are controlled by an attribute "maxOpenConnections" on - the port. By default this takes the value of the context variable - <literal>qpid.port.max_open_connections</literal> which in itself is defaulted to the - value <literal>-1</literal> meaning there is no limit. - </para> - <para> - If the interpolated value of <literal>maxOpenConnections</literal> on an AMQP port is a - positive integer, then when that many active connections have been established no new - connections will be allowed (until an existing connection has been closed). Any such - rejection of a connection will be accompanied by the operational log message - <link linkend="Java-Broker-Appendix-Operation-Logging-Message-PRT-1005">PRT-1005</link>. - </para> - <para> - The context variable <literal>qpid.port.open_connections_warn_percent</literal> can be - used to control when a warning log message is generated as the number of open connections - approaches the limit for the port. The default value of this variable is - <literal>80</literal> meaning that if more the number of open connections to the port - has exceeded 80% of the given limit then the operatinal log message - <link linkend="Java-Broker-Appendix-Operation-Logging-Message-PRT-1004">PRT-1004</link> - will be generated. - </para> -</section> 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 deleted file mode 100644 index 8de3f7f0d3..0000000000 --- a/qpid/doc/book/src/java-broker/Java-Broker-Runtime-Disk-Space-Management-Producer-Flow-Control.xml +++ /dev/null @@ -1,176 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section id="Qpid-Producer-Flow-Control"> - <title>Producer Flow Control</title> - - <section role="h2" id="Java-Broker-Runtime-Disk-Space-Management-Producer-Flow-Control-GeneralInformation"> - <title>General Information</title> - <para> - The Java Broker supports a flow control mechanism to which can be used to prevent either a single queue - or an entire virtualhost exceeding configured limits. These two mechanisms are described - next. - </para> - </section> - <section role="h2" id="Java-Broker-Runtime-Disk-Space-Management-Producer-Flow-Control-ServerConfiguration"> - <title>Server Configuration</title> - <section role="h3"> - <title>Configuring a Queue to use flow control</title> - <para> - Flow control is enabled on a producer when it sends a message to a Queue - which is "overfull". The producer flow control will be rescinded when all - Queues on which a producer is blocking become "underfull". A Queue is defined - as overfull when the size (in bytes) of the messages on the queue exceeds the - <emphasis>capacity</emphasis> of the Queue. A Queue becomes "underfull" when its - size becomes less than the <emphasis>resume capacity</emphasis>. - </para> - <para> - The capacity and resume capacity can be specified when the queue is created. This - can be done using the Flow Control Settings within the Queue creation dialogue. - </para> - <section role="h4"> - <title>Broker Log Messages</title> - <para> - There are four Broker log messages that may occur if flow control through queue capacity limits is enabled. - Firstly, when a capacity limited queue becomes overfull, a log message similar to the following is produced - </para> - <programlisting> -MESSAGE [vh(/test)/qu(MyQueue)] [vh(/test)/qu(MyQueue)] QUE-1003 : Overfull : Size : 1,200 bytes, Capacity : 1,000 - </programlisting> - <para>Then for each channel which becomes blocked upon the overful queue a log message similar to the following is produced:</para> - <programlisting> -MESSAGE [con:2(guest@anonymous(713889609)/test)/ch:1] [con:2(guest@anonymous(713889609)/test)/ch:1] CHN-1005 : Flow Control Enforced (Queue MyQueue) - </programlisting> - <para>When enough messages have been consumed from the queue that it becomes underfull, then the following log is generated: </para> - <programlisting> -MESSAGE [vh(/test)/qu(MyQueue)] [vh(/test)/qu(MyQueue)] QUE-1004 : Underfull : Size : 600 bytes, Resume Capacity : 800 - </programlisting> - <para>And for every channel which becomes unblocked you will see a message similar to: </para> - <programlisting> -MESSAGE [con:2(guest@anonymous(713889609)/test)/ch:1] [con:2(guest@anonymous(713889609)/test)/ch:1] CHN-1006 : Flow Control Removed - </programlisting> - <para>Obviously the details of connection, virtual host, queue, size, capacity, etc would depend on the configuration in use.</para> - - - </section><!-- Broker Log Messages --> - </section><!-- Configuring a Queue to use flow control --> - - <section role="h3"> - <title>Disk quota-based flow control</title> - <para> - Flow control can also be triggered when a configured disk quota is exceeded. This is supported by the BDB and - Derby virtualhosts. - </para> - <para> - This functionality blocks all producers on reaching the disk overflow limit. When consumers - consume the messages, causing disk space usage to falls below the underflow limit, the - producers are unblocked and continue working as normal. - </para> - <para> - Two limits can be configured: - </para> - <para> - overfull limit - the maximum space on disk (in bytes). - </para> - <para> - underfull limit - when the space on disk drops below this limit, producers are allowed to resume publishing. - </para> - - <para> - The overfull and underful limit can be specified when a new virtualhost is created or an exiting - virtualhost is edited. This can be done using the Store Overflow and Store Underfull settings - within the virtual host creation and edit dialogue. If editing an existing virtualhost, the virtualhost - must be restarted for the new values to take effect. - </para> - - <para> - The disk quota functionality is based on "best effort" principle. This means the broker - cannot guarantee that the disk space limit will not be exceeded. If several concurrent - transactions are started before the limit is reached, which collectively cause the limit - to be exceeded, the broker may allow all of them to be committed. - </para> - - <section role="h4"> - <title>Broker Log Messages for quota flow control</title> - <para> - There are two broker log messages that may occur if flow control through disk quota limits is enabled. - When the virtual host is blocked due to exceeding of the disk quota limit the following message - appears in the broker log - <programlisting> -[vh(/test)/ms(BDBMessageStore)] MST-1008 : Store overfull, flow control will be enforced - </programlisting> - When virtual host is unblocked after cleaning the disk space the following message appears in the broker log - <programlisting> -[vh(/test)/ms(BDBMessageStore)] MST-1009 : Store overfull condition cleared - </programlisting> - </para> - </section> - </section><!-- Disk quota-based flow control --> - </section><!-- Server configuration --> - - - <section role="h2" id="Java-Broker-Runtime-Disk-Space-Management-Producer-Flow-Control-ClientImpact"> - <title>Client impact and configuration</title> - <para> - If a producer sends to a queue which is overfull, the broker will respond by - instructing the client not to send any more messages. The impact of this is - that any future attempts to send will block until the broker rescinds the flow control order. - </para> - <para> - While blocking the client will periodically log the fact that it is blocked waiting on flow control. - </para> - <programlisting> -WARN Message send delayed by 5s due to broker enforced flow control -WARN Message send delayed by 10s due to broker enforced flow control - </programlisting> - <para> - After a set period the send will timeout and throw a JMSException to the calling code. - </para> - <para> - If such a JMSException is thrown, the message will not be sent to the broker, - however the underlying Session may still be active - in particular if the - Session is transactional then the current transaction will not be automatically - rolled back. Users may choose to either attempt to resend the message, or to - roll back any transactional work and close the Session. - </para> - <para> - Both the timeout delay and the periodicity of the warning messages can be set - using Java system properties. - </para> - <para> - The amount of time (in milliseconds) to wait before timing out - is controlled by the property qpid.flow_control_wait_failure. - </para> - <para> - The frequency at which the log message informing that the producer is flow - controlled is sent is controlled by the system property qpid.flow_control_wait_notify_period. - </para> - <para> - Adding the following to the command line to start the client would result in a timeout of one minute, - with warning messages every ten seconds: - </para> - <programlisting> --Dqpid.flow_control_wait_failure=60000 --Dqpid.flow_control_wait_notify_period=10000 - </programlisting> - </section> <!-- Client impact and configuration --> -</section> diff --git a/qpid/doc/book/src/java-broker/Java-Broker-Runtime-Disk-Space-Management.xml b/qpid/doc/book/src/java-broker/Java-Broker-Runtime-Disk-Space-Management.xml deleted file mode 100644 index 814b366d9d..0000000000 --- a/qpid/doc/book/src/java-broker/Java-Broker-Runtime-Disk-Space-Management.xml +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section id="Java-Broker-Runtime-Disk-Space-Management"> - <title>Disk Space Management</title> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Java-Broker-Runtime-Disk-Space-Management-Producer-Flow-Control.xml"/> - -</section> 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 deleted file mode 100644 index 4ffde911bf..0000000000 --- a/qpid/doc/book/src/java-broker/Java-Broker-Runtime-Flow-To-Disk.xml +++ /dev/null @@ -1,46 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section id="Java-Broker-Runtime-Flow-To-Disk"> - <title>Flow to Disk</title> - <para>Flow to disk limits the amount of heap memory that can be occupied by messages. Once this - limit is reached any new transient messages and all existing transient messages will be - transferred to disk. Newly arriving transient messages will continue to go to the disk until the - 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 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. - The first queue will have a target size of 170MB and the second 230MB. Once 400MB is taken by - messages, messages will begin to flow to disk. New messages will cease to flow to disk when - their cumulative size falls beneath 400MB.</para> - <para>Flow to disk is configured by Broker context variable - <literal>broker.flowToDiskThreshold</literal>. It is expressed as a size in bytes and defaults - to 40% of the JVM maximum heap size.</para> - <para>Log message <link linkend="Java-Broker-Appendix-Operation-Logging-Message-BRK-1014" - >BRK-1014</link> is written when the feature activates. Once the total space of all messages - decreases below the threshold, the message <link - linkend="Java-Broker-Appendix-Operation-Logging-Message-BRK-1015">BRK-1015</link> is written - to show that the feature is no longer active.</para> -</section> diff --git a/qpid/doc/book/src/java-broker/Java-Broker-Runtime-Handling-Undeliverable-Messages.xml b/qpid/doc/book/src/java-broker/Java-Broker-Runtime-Handling-Undeliverable-Messages.xml deleted file mode 100644 index fe42cf0203..0000000000 --- a/qpid/doc/book/src/java-broker/Java-Broker-Runtime-Handling-Undeliverable-Messages.xml +++ /dev/null @@ -1,97 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!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. - ---> - -<section id="Java-Broker-Runtime-Handling-Undeliverable-Messages"> - <title>Handing Undeliverable Messages</title> - - <section role="h2" id="Java-Broker-Runtime-Handling-Undeliverable-Messages-Introduction"> - <title>Introduction</title> - <para> Messages that cannot be delivered successfully to a consumer (for instance, because the - client is using a transacted session and rolls-back the transaction) can be made available on - the queue again and then subsequently be redelivered, depending on the precise session - acknowledgement mode and messaging model used by the application. This is normally desirable - behaviour that contributes to the ability of a system to withstand unexpected errors. However, it - leaves open the possibility for a message to be repeatedly redelivered (potentially indefinitely), - consuming system resources and preventing the delivery of other messages. Such undeliverable - messages are sometimes known as poison messages.</para> - <para>For an example, consider a stock ticker application that has been designed to consume prices - contained within JMS TextMessages. What if inadvertently a BytesMessage is placed onto the queue? - As the ticker application does not expect the BytesMessage, its processing might fail and cause it - to roll-back the transaction, however the default behavior of the Broker would mean that the - BytesMessage would be delivered over and over again, preventing the delivery of other legitimate - messages, until an operator intervenes and removes the erroneous message from the queue. </para> - <para>Qpid has maximum delivery count and dead-letter queue (DLQ) features which can be used in - concert to construct a system that automatically handles such a condition. These features are - described in the following sections.</para> - </section> - - <section role="h2" id="Java-Broker-Runtime-Handling-Undeliverable-Messages-Maximum-Delivery-Count"> - <title>Maximum Delivery Count</title> - <para> Maximum delivery count is a property of a queue. If a consumer application is unable to - process a message more than the specified number of times, then the broker will either route the - message to a dead-letter queue (if one has been defined), or will discard the message. </para> - <para> In order for a maximum delivery count to be enforced, the consuming client - <emphasis>must</emphasis> call <ulink url="&oracleJeeDocUrl;javax/jms/Session.html#rollback()" - >Session#rollback()</ulink> (or <ulink url="&oracleJeeDocUrl;javax/jms/Session.html#recover()" - >Session#recover()</ulink> if the session is not transacted). It is during the Broker's - processing of Session#rollback() (or Session#recover()) that if a message has been seen - at least the maximum number of times then it will move the message to the DLQ or discard the - message.</para> - <para>If the consuming client fails in another manner, for instance, closes the connection, the - message will not be re-routed and consumer application will see the same poison message again - once it reconnects.</para> - <para> If the consuming application is using AMQP 0-9-1, 0-9, or 0-8 protocols, it is necessary to - set the client system property <varname>qpid.reject.behaviour</varname> or connection or binding - URL option <varname>rejectbehaviour</varname> to the value <literal>server</literal>.</para> - <para>It is possible to determine the number of times a message has been sent to a consumer via - the Management interfaces, but is not possible to determine this information from a message client. - Specifically, the optional JMS message header <property>JMSXDeliveryCount</property> is not - supported.</para> - <para>Maximum Delivery Count can be specified when a new queue is created or using the the - queue declare property <property>x-qpid-maximum-delivery-count</property></para> - </section> - - <section role="h2" id="Java-Broker-Runtime-Handling-Undeliverable-Messages-Dead-Letter-Queues"> - <title>Dead Letter Queues (DLQ)</title> - <para>A Dead Letter Queue (DLQ) acts as an destination for messages that have somehow exceeded the - normal bounds of processing and is utilised to prevent disruption to flow of other messages. When - a DLQ is enabled for a given queue if a consuming client indicates it no longer wishes the - receive the message (typically by exceeding a Maximum Delivery Count) then the message is moved - onto the DLQ and removed from the original queue. </para> - <para>The DLQ feature causes generation of a Dead Letter Exchange and a Dead Letter Queue. These - are named convention QueueName<emphasis>_DLE</emphasis> and QueueName<emphasis>_DLQ</emphasis>.</para> - <para>DLQs can be enabled when a new queue is created - or using the queue declare property <property>x-qpid-dlq-enabled</property>.</para> - <caution> - <title>Avoid excessive queue depth</title> - <para>Applications making use of DLQs <emphasis>should</emphasis> make provision for the frequent - examination of messages arriving on DLQs so that both corrective actions can be taken to resolve - the underlying cause and organise for their timely removal from the DLQ. Messages on DLQs - consume system resources in the same manner as messages on normal queues so excessive queue - depths should not be permitted to develop.</para> - </caution> - </section> -</section> 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 deleted file mode 100644 index 1fde82656d..0000000000 --- a/qpid/doc/book/src/java-broker/Java-Broker-Runtime-Log-Files.xml +++ /dev/null @@ -1,75 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section id="Java-Broker-Runtime-Log-Files"> - <title>Log Files</title> - <para> The Broker uses the <ulink url="http://logging.apache.org/log4j/1.2/">Apache Log4J</ulink> - Logging Framework for all logging activity. </para> - <para> In the Broker's shipped configuration, all logging is directed to log file <literal><link - linkend="Java-Broker-Appendix-Environment-Variables-Qpid-Work" - >${QPID_WORK}</link>/log/qpid.log</literal>. The log file is not rotated and will be overwritten - when the Broker restarts. Logging levels are configured in such a way that the log will comprise - of:</para> - <itemizedlist> - <listitem> - <para>Opertional Log Events. These report key events in the lifecycle of objects (Broker - start-up, Queue creation, Queue deletion etc) within the Broker. See <xref - linkend="Java-Broker-Appendix-Operation-Logging"/> for details of the formation of these - messages.</para> - </listitem> - <listitem> - <para>Queue Alert Events. These report when the queue thresholds have been breached. See <xref - linkend="Java-Broker-Appendix-Queue-Alerts"/> for details.</para> - </listitem> - <listitem> - <para>Any Error and Warning conditions.</para> - </listitem> - </itemizedlist> - <para>Logging can be reconfigured either by changing the logging configuration file <literal><link - linkend="Java-Broker-Appendix-Environment-Variables-Qpid-Home" - >${QPID_HOME}</link>/etc/log4j.xml</literal> or at runtime using the Logging Management MBean, - see <xref linkend="Java-Broker-Management-Channel-JMX-MBeans"/> for - details.</para> - <section id="Java-Broker-Runtime-Log-Files-Enable-Debug"> - <title>Enabling Debug</title> - <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 associated - with <literal>org.apache.qpid</literal> from <literal>WARN</literal> to - <literal>DEBUG</literal>.</para> - <example> - <title>Changing the log4j.xml configuration file to enable debug</title> - <screen><![CDATA[ -... -<logger additivity="true" name="org.apache.qpid"> - <level value="debug"/> <!-- change the level value from warn to debug --> -</logger> -...]]></screen> - </example> - <important> - <para>Running a production system at <literal>DEBUG</literal> level can have performance - implications by slowing the Broker down. It can also generate large log files. Take care to - revert the logging level back to <literal>WARN</literal> after the analysis is performed.</para> - </important> - </section> -</section> diff --git a/qpid/doc/book/src/java-broker/Java-Broker-Runtime-Message-Compression.xml b/qpid/doc/book/src/java-broker/Java-Broker-Runtime-Message-Compression.xml deleted file mode 100644 index ee080f85cf..0000000000 --- a/qpid/doc/book/src/java-broker/Java-Broker-Runtime-Message-Compression.xml +++ /dev/null @@ -1,53 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section id="Java-Broker-Runtime-Message-Compression"> - <title>Message Compression</title> - <para>The Java Broker supports<footnote><para>Message compression is not yet supported for the 1.0 - protocol.</para></footnote> message compression. This feature works in co-operation with Qpid - Clients implementing the same feature.</para> - <para>Once the feature is enabled (using Broker context variable - <emphasis>broker.messageCompressionEnabled</emphasis>), the Broker will advertise support for the - message compression feature to the client at connection time. This allows clients to opt to turn - on message compression, allowing message payload sizes to be reduced.</para> - <para>If the Broker has connections from clients who have message compression enabled and others who - do not, it will internally, on-the-fly, decompress compressed messages when sending to clients - without support and conversely, compress uncomressed messages when sending to clients who do.</para> - <para>The Broker has a threshold below which it will not consider compressing a message, this is - controlled by Broker content variable - (<literal>connection.messageCompressionThresholdSize</literal>) and expresses a size in bytes.</para> - <para>This feature <emphasis>may</emphasis> have a beneficial effect on performance by:</para> - <itemizedlist> - <listitem> - <para>Reducing the number of bytes transmitted over the wire, both between Client and Broker, and - in the HA case, Broker to Broker, for replication purposes.</para> - </listitem> - <listitem> - <para>Reducing storage space when data is at rest within the Broker, both on disk and in - memory.</para> - </listitem> - </itemizedlist> - <para>Of course, compression and decompression is computationally expensive. Turning on the feature - may have a negative impact on CPU utilization on Broker and/or Client. Also for small messages - payloads, message compression may increase the message size. It is recommended to test the feature - with representative data.</para> -</section> diff --git a/qpid/doc/book/src/java-broker/Java-Broker-Runtime-Producer-Transaction-Timeout.xml b/qpid/doc/book/src/java-broker/Java-Broker-Runtime-Producer-Transaction-Timeout.xml deleted file mode 100644 index 2813274c61..0000000000 --- a/qpid/doc/book/src/java-broker/Java-Broker-Runtime-Producer-Transaction-Timeout.xml +++ /dev/null @@ -1,137 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!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. - ---> - -<section id="Java-Broker-Runtime-Producer-Transaction-Timeout"> - <title>Producer Transaction Timeout</title> - <section role="h2" id="Java-Broker-Runtime-Producer-Transaction-Timeout-GeneralInformation"> - <title>General Information</title> - <para> The transaction timeout mechanism is used to control broker resources when clients - producing messages using transactional sessions hang or otherwise become unresponsive, or simply - begin a transaction and keep using it without ever calling <ulink - url="&oracleJeeDocUrl;javax/jms/Session.html#commit">Session#commit()</ulink>.</para> - <para>Users can choose to configure an idleWarn or openWarn threshold, after which the identified - transaction should be logged as a WARN level alert as well as (more importantly) an idleClose or - openClose threshold after which the transaction and the connection it applies to will be - closed.</para> - <para>This feature is particularly useful in environments where the owner of the broker does not - have full control over the implementation of clients, such as in a shared services - deployment.</para> - <para>The following section provide more details on this feature and its use.</para> - </section> - <section role="h2" id="Java-Broker-Runtime-Producer-Transaction-Timeout-Purpose"> - <title>Purpose</title> - <para> This feature has been introduced to address the scenario where an open transaction on the - broker holds an open transaction on the persistent store. This can have undesirable consequences - if the store does not time out or close long-running transactions, such as with BDB. This can can - result in a rapid increase in disk usage size, bounded only by available space, due to growth of - the transaction log. </para> - </section> - <section role="h2" id="Java-Broker-Runtime-Producer-Transaction-Timeout-Scope"> - <title>Scope</title> - <para>Note that only <ulink url="&oracleJeeDocUrl;javax/jms/MessageProducer.html" - >MessageProducer</ulink> clients will be affected by a transaction timeout, since store - transaction lifespan on a consumer only spans the execution of the call to Session#commit() and - there is no scope for a long-lived transaction to arise.</para> - <para>It is also important to note that the transaction timeout mechanism is purely a JMS - transaction timeout, and unrelated to any other timeouts in the Qpid client library and will have - no impact on any RDBMS your application may utilise.</para> - </section> - <section role="h2" id="Java-Broker-Runtime-Producer-Transaction-Timeout-Effect"> - <title>Effect</title> - <para>Full details of configuration options are provided in the sections that follow. This section - gives a brief overview of what the Transaction Timeout feature can do.</para> - <section role="h3" id="Java-Broker-Runtime-Producer-Transaction-Timeout-Effect-Broker-Side"> - <title>Broker Logging and Connection Close</title> - <para>When the openWarn or idleWarn specified threshold is exceeded, the broker will log a WARN - level alert with details of the connection and channel on which the threshold has been exceeded, - along with the age of the transaction.</para> - <para>When the openClose or idleClose specified threshold value is exceeded, the broker will - throw an exception back to the client connection via the <ulink - url="&oracleJeeDocUrl;javax/jms/ExceptionListener.html">ExceptionListener</ulink>, log the - action and then close the connection.</para> - <para>The example broker log output shown below is where the idleWarn threshold specified is - lower than the idleClose threshold and the broker therefore logs the idle transaction 3 times - before the close threshold is triggered and the connection closed out.</para> - <screen><![CDATA[CHN-1008 : Idle Transaction : 13,116 ms -CHN-1008 : Idle Transaction : 14,116 ms -CHN-1008 : Idle Transaction : 15,118 ms -CHN-1003 : Close]]> - </screen> - <para>The second example broker log output shown below illustrates the same mechanism operating - on an open transaction.</para> - <screen><![CDATA[ -CHN-1007 : Open Transaction : 12,406 ms -CHN-1007 : Open Transaction : 13,406 ms -CHN-1007 : Open Transaction : 14,406 ms -CHN-1003 : Close]]> - </screen> - </section> - <section role="h3" id="Java-Broker-Runtime-Producer-Transaction-Timeout-Effect-Client-Side"> - <title>Client Side Effect</title> - <para>After a Close threshold has been exceeded, the trigger client will receive this exception - on its <ulink url="&oracleJeeDocUrl;javax/jms/ExceptionListener.html">exception - listener</ulink>, prior to being disconnected:</para> - <computeroutput>org.apache.qpid.AMQConnectionClosedException: Error: Idle transaction timed out - [error code 506: resource error]</computeroutput> - <para>Any later attempt to use the connection will result in this exception being thrown:</para> - <screen><![CDATA[Producer: Caught an Exception: javax.jms.IllegalStateException: Object org.apache.qpid.client.AMQSession_0_8@129b0e1 has been closed - javax.jms.IllegalStateException: Object org.apache.qpid.client.AMQSession_0_8@129b0e1 has been closed - at org.apache.qpid.client.Closeable.checkNotClosed(Closeable.java:70) - at org.apache.qpid.client.AMQSession.checkNotClosed(AMQSession.java:555) - at org.apache.qpid.client.AMQSession.createBytesMessage(AMQSession.java:573)]]> - </screen> - <para>Thus clients must be able to handle this case successfully, reconnecting where required and - registering an exception listener on all connections. This is critical, and must be communicated - to client applications by any broker owner switching on transaction timeouts.</para> - </section> - - </section> - <section role="h2" id="Java-Broker-Runtime-Producer-Transaction-Timeout-Configuration"> - <title>Configuration</title> - <section role="h3" id="Java-Broker-Runtime-Producer-Transaction-Timeout-Configuration-Overview"> - <title>Configuration</title> - <para>The transaction timeouts can be specified when a new virtualhost is created or an exiting - virtualhost is edited.</para> - <para>We would recommend that only warnings are configured at first, which should allow broker - administrators to obtain an idea of the distribution of transaction lengths on their systems, - and configure production settings appropriately for both warning and closure. Ideally - establishing thresholds should be achieved in a representative UAT environment, with clients and - broker running, prior to any production deployment.</para> - <para>It is impossible to give suggested values, due to the large variation in usage depending on - the applications using a broker. However, clearly transactions should not span the expected - lifetime of any client application as this would indicate a hung client.</para> - <para>When configuring warning and closure timeouts, it should be noted that these only apply to - message producers that are connected to the broker, but that a timeout will cause the connection - to be closed - this disconnecting all producers and consumers created on that connection.</para> - <para>This should not be an issue for environments using Mule or Spring, where connection - factories can be configured appropriately to manage a single MessageProducer object per JMS - Session and Connection. Clients that use the JMS API directly should be aware that sessions - managing both consumers and producers, or multiple producers, will be affected by a single - producer hanging or leaving a transaction idle or open, and closed, and must take appropriate - action to handle that scenario.</para> - </section> - </section> -</section> diff --git a/qpid/doc/book/src/java-broker/Java-Broker-Runtime.xml b/qpid/doc/book/src/java-broker/Java-Broker-Runtime.xml deleted file mode 100644 index 25dc7e9684..0000000000 --- a/qpid/doc/book/src/java-broker/Java-Broker-Runtime.xml +++ /dev/null @@ -1,37 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<chapter id="Java-Broker-Runtime"> - <title>Runtime</title> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Java-Broker-Runtime-Log-Files.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" - href="Java-Broker-Runtime-Disk-Space-Management.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" - href="Java-Broker-Runtime-Producer-Transaction-Timeout.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" - href="Java-Broker-Runtime-Handling-Undeliverable-Messages.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Java-Broker-Close-On-No-Route.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Java-Broker-Runtime-Flow-To-Disk.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Java-Broker-Runtime-Background-Recovery.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Java-Broker-Runtime-Message-Compression.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Java-Broker-Runtime-Connection-Limit.xml"/> -</chapter> diff --git a/qpid/doc/book/src/java-broker/Java-Broker-Security.xml b/qpid/doc/book/src/java-broker/Java-Broker-Security.xml deleted file mode 100644 index 47d3cae164..0000000000 --- a/qpid/doc/book/src/java-broker/Java-Broker-Security.xml +++ /dev/null @@ -1,29 +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. - ---> - -<chapter id="Java-Broker-Security"> - <title>Security</title> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="security/Java-Broker-Security-Authentication-Providers.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="security/Java-Broker-Security-Group-Providers.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="security/Java-Broker-Security-ACLs.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="security/Java-Broker-Security-Configuration-Encryption.xml"/> -</chapter> diff --git a/qpid/doc/book/src/java-broker/Makefile b/qpid/doc/book/src/java-broker/Makefile deleted file mode 100644 index 0266a0f54d..0000000000 --- a/qpid/doc/book/src/java-broker/Makefile +++ /dev/null @@ -1,20 +0,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. -# - -include ../Makefile.inc diff --git a/qpid/doc/book/src/java-broker/commonEntities.xml b/qpid/doc/book/src/java-broker/commonEntities.xml deleted file mode 100644 index cdee906369..0000000000 --- a/qpid/doc/book/src/java-broker/commonEntities.xml +++ /dev/null @@ -1,52 +0,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. - ---> - -<!ENTITY qpidDownloadUrl "http://qpid.apache.org/download.html"> -<!ENTITY qpidCppBook "../../AMQP-Messaging-Broker-CPP-Book/html/"> - -<!ENTITY qpidCurrentRelease "0.32-SNAPSHOT"> - -<!ENTITY windowsBrokerDownloadFileName "qpid-java-broker-&qpidCurrentRelease;.zip"> -<!ENTITY windowsExtractedBrokerDirName "qpid-broker-&qpidCurrentRelease;"> -<!ENTITY unixBrokerDownloadFileName "qpid-java-broker-&qpidCurrentRelease;.tar.gz"> -<!ENTITY unixExtractedBrokerDirName "qpid-broker-&qpidCurrentRelease;"> - -<!-- Client doc links --> -<!ENTITY qpidjmsdocClientConectionUrl "../../Programming-In-Apache-Qpid/html/QpidJNDI.html#section-jms-connection-url"> - -<!-- Oracle javadoc --> -<!ENTITY oracleJdkDocUrl "http://docs.oracle.com/javase/7/docs/api/"> -<!ENTITY oracleJeeDocUrl "http://docs.oracle.com/javaee/6/api/"> -<!ENTITY oracleKeytool "http://docs.oracle.com/javase/7/docs/technotes/tools/solaris/keytool.html"> -<!ENTITY oracleJconsole "http://docs.oracle.com/javase/7/docs/technotes/guides/management/jconsole.html"> - -<!-- Oracle BDB JE--> -<!ENTITY oracleJeDownloadUrl "http://www.oracle.com/technetwork/products/berkeleydb/downloads/index.html?ssSourceSiteId=ocomen"> -<!ENTITY oracleBdbProductOverviewUrl "http://www.oracle.com/technetwork/products/berkeleydb/overview/index-093405.html"> -<!ENTITY oracleBdbRepGuideUrl "http://oracle.com/cd/E17277_02/html/ReplicationGuide/"> -<!ENTITY oracleBdbJavaDocUrl "http://docs.oracle.com/cd/E17277_02/html/java/"> -<!ENTITY oracleBdbProductVersion "5.0.104"> - -<!ENTITY oracleJmxTutorial "http://docs.oracle.com/javase/tutorial/jmx/"> - -<!ENTITY qpidSrc "http://svn.apache.org/viewvc/qpid/trunk/qpid/java/"> -<!ENTITY qpidManagementCommonSrc "&qpidSrc;management/common/src/main/java/"> -<!ENTITY qpidSrcSuffix ".java?view=co"> diff --git a/qpid/doc/book/src/java-broker/concepts/Java-Broker-Concepts-Authentication-Providers.xml b/qpid/doc/book/src/java-broker/concepts/Java-Broker-Concepts-Authentication-Providers.xml deleted file mode 100644 index d361efb0ab..0000000000 --- a/qpid/doc/book/src/java-broker/concepts/Java-Broker-Concepts-Authentication-Providers.xml +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section id="Java-Broker-Concepts-Authentication-Providers"> - <title>Authentication Providers</title> - <para> - <emphasis>Authentication Providers</emphasis> are used by <emphasis>Ports</emphasis> to authenticate connections. - Many <emphasis>Authentication Providers</emphasis> can be configured on the Broker at the same time, from which - each <emphasis>Port</emphasis> can be assigned one. - </para> - <para>Some Authentication Providers offer facilities for creation and deletion of users.</para> -</section> diff --git a/qpid/doc/book/src/java-broker/concepts/Java-Broker-Concepts-Broker.xml b/qpid/doc/book/src/java-broker/concepts/Java-Broker-Concepts-Broker.xml deleted file mode 100644 index 90193176a7..0000000000 --- a/qpid/doc/book/src/java-broker/concepts/Java-Broker-Concepts-Broker.xml +++ /dev/null @@ -1,26 +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. - ---> -<section id="Java-Broker-Concepts-Broker"> - <title>Broker</title> - <para>The <emphasis>Broker</emphasis> is the outermost entity within the system.</para> - <para>The Broker is backed by storage. This storage is used to record the durable entities that exist beneath it.</para> -</section> diff --git a/qpid/doc/book/src/java-broker/concepts/Java-Broker-Concepts-Exchanges.xml b/qpid/doc/book/src/java-broker/concepts/Java-Broker-Concepts-Exchanges.xml deleted file mode 100644 index 5eb02dc5dd..0000000000 --- a/qpid/doc/book/src/java-broker/concepts/Java-Broker-Concepts-Exchanges.xml +++ /dev/null @@ -1,204 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section id="Java-Broker-Concepts-Exchanges"> -<title>Exchanges</title> - <para>An <emphasis>Exchange</emphasis> is a named entity within the <emphasis>Virtualhost</emphasis> which receives - messages from producers and routes them to matching <emphasis>Queue</emphasis>s within the <emphasis>Virtualhost</emphasis>.</para> - <para>The server provides a set of exchange types with each exchange type implementing a different routing algorithm. For details of how - these exchanges types work see <xref linkend="Java-Broker-Concepts-Exchanges-Types"/> below.</para> - <para>The server predeclares a number of exchange instances with names starting with "<literal>amq.</literal>". These are defined in - <xref linkend="Java-Broker-Concepts-Exchanges-Predeclared"/>.</para> - <para>Applications can make use the pre-declared exchanges, or they may declare their own. The number of exchanges within a virtual host is - limited only by resource constraints.</para> - <para>The behaviour when an exchange is unable to route a message to any queue is defined in <xref linkend="Java-Broker-Concepts-Exchanges-UnroutableMessage"/></para> - <section id="Java-Broker-Concepts-Exchanges-Predeclared"> - <title>Predeclared Exchanges</title> - <para>Each virtual host pre-declares the following exchanges: - <itemizedlist> - <listitem><para>amq.direct (an instance of a direct exchange)</para></listitem> - <listitem><para>amq.topic (an instance of a topic exchange)</para></listitem> - <listitem><para>amq.fanout (an instance of a fanout exchange)</para></listitem> - <listitem><para>amq.match (an instance of a headers exchange)</para></listitem> - </itemizedlist> - </para> - <para>The conceptual "<literal>default exchange</literal>" always exists, effectively a special instance of - direct exchange which uses the empty string as its name. All queues are automatically bound to it upon their creation - using the queue name as the binding key, and unbound upon their deletion. It is not possible to manually add or remove - bindings within this exchange.</para> - <para>Applications may not declare exchanges with names beginning with "<literal>amq.</literal>". Such names are reserved for system use.</para> - </section> - <section id="Java-Broker-Concepts-Exchanges-Types"> - <title>Exchange Types</title> - <para> - The following Exchange types are supported. - <itemizedlist> - <listitem><para>Direct</para></listitem> - <listitem><para>Topic</para></listitem> - <listitem><para>Fanout</para></listitem> - <listitem><para>Headers</para></listitem> - </itemizedlist> - These exchange types are described in the following sub-sections.</para> - - <section id="Java-Broker-Concepts-Exchanges-Types-Direct"> - <title>Direct</title> - <para>The direct exchange type routes messages to queues based on an exact match between - the routing key of the message, and the binding key used to bind the queue to the exchange. Additional - filter rules may be specified using a <link linkend="Java-Broker-Concepts-Exchanges-BindingArguments-JMSSelector"> - binding argument specifying a JMS message selector</link>. - </para> - <para>This exchange type is often used to implement point to point messaging. When used in this manner, the normal - convention is that the binding key matches the name of the queue. It is also possible to use this exchange type - for multi-cast, in this case the same binding key is associated with many queues.</para> - <figure> - <title>Direct exchange</title> - <mediaobject> - <imageobject> - <imagedata fileref="images/Exchange-Direct.png" format="PNG" scalefit="1"/> - </imageobject> - </mediaobject> - </figure> - <para>The figure above illustrates the operation of direct exchange type. The yellow messages published with the routing key - "<literal>myqueue</literal>" match the binding key corresponding to queue "<literal>myqueue</literal>" and so are routed there. The red - messages published with the routing key "<literal>foo</literal>" match two bindings in the table so a copy of the message is - routed to both the "<literal>bar1</literal>" and "<literal>bar2</literal>" queues.</para> - <para>The routing key of the blue message matches no binding keys, so the message is unroutable. It is handled as described - in <xref linkend="Java-Broker-Concepts-Exchanges-UnroutableMessage"/>.</para> - </section> - <section id="Java-Broker-Concepts-Exchanges-Types-Topic"> - <title>Topic</title> - <para>This exchange type is used to support the classic publish/subscribe paradigm.</para> - <para>The topic exchange is capable of routing messages to queues based on wildcard matches between the routing key and the - binding key pattern defined by the queue binding. Routing keys are formed from one or more words, with each word delimited - by a full-stop (.). The pattern matching characters are the * and # symbols. The * symbol matches a single word and the # - symbol matches zero or more words.</para> - <para>Additional filter rules may be specified using a <link linkend="Java-Broker-Concepts-Exchanges-BindingArguments-JMSSelector"> - binding argument specifying a JMS message selector</link>.</para> - <para>The following three figures help explain how the topic exchange functions.</para> - <para></para> - <figure> - <title>Topic exchange - exact match on topic name</title> - <mediaobject> - <imageobject> - <imagedata fileref="images/Exchange-Topic.png" format="PNG" scalefit="1"/> - </imageobject> - </mediaobject> - </figure> - <para>The figure above illustrates publishing messages with routing key "<literal>weather</literal>". The exchange routes each - message to every bound queue whose binding key matches the routing key.</para> - <para>In the case illustrated, this means that each subscriber's queue receives every yellow message.</para> - <figure> - <title>Topic exchange - matching on hierarchical topic patterns</title> - <mediaobject> - <imageobject> - <imagedata fileref="images/Exchange-Topic-Hierarchical.png" format="PNG" scalefit="1"/> - </imageobject> - </mediaobject> - </figure> - <para>The figure above illustrates publishing messages with hierarchical routing keys. As before, the exchange routes each - message to every bound queue whose binding key matches the routing key but as the binding keys contain wildcards, the - wildcard rules described above apply.</para> - <para>In the case illustrated, <literal>sub1</literal> has received the red and green message as "<literal>news.uk</literal>" and "<literal>news.de</literal>" - match binding key "<literal>news.#</literal>". The red message has also gone to <literal>sub2</literal> and <literal>sub3</literal> as it's routing key - is matched exactly by "<literal>news.uk</literal>" and by "<literal>*.uk</literal>".</para> - <para>The routing key of the yellow message matches no binding keys, so the message is unroutable. It is handled as described - in <xref linkend="Java-Broker-Concepts-Exchanges-UnroutableMessage"/>.</para> - <figure> - <title>Topic exchange - matching on JMS message selector</title> - <mediaobject> - <imageobject> - <imagedata fileref="images/Exchange-Topic-JMSSelector.png" format="PNG" scalefit="1"/> - </imageobject> - </mediaobject> - </figure> - <para>The figure above illustrates messages with properties published with routing key "<literal>shipping</literal>".</para> - <para>As before, the exchange routes each message to every bound queue whose binding key matches the routing key but as a JMS selector - argument has been specified, the expression is evaluated against each matching message. Only messages whose message header values or properties - match the expression are routed to the queue.</para> - <para>In the case illustrated, <literal>sub1</literal> has received the yellow and blue message as their property "<literal>area</literal>" - cause expression "<literal>area in ('Forties', 'Cromarty')</literal>" to evaluate true. Similarly, the yellow message has also gone to - <literal>gale_alert</literal> as its property "<literal>speed</literal>" causes expression "<literal>speed > 7 and speed < 10</literal>" - to evaluate true.</para> - <para>The properties of purple message cause no expressions to evaluate true, so the message is unroutable. It is handled as described in - <xref linkend="Java-Broker-Concepts-Exchanges-UnroutableMessage"/>.</para> - </section> - <section id="Java-Broker-Concepts-Exchanges-Types-Fanout"> - <title>Fanout</title> - <para>The fanout exchange type routes messages to all queues bound to the exchange, regardless of the message's routing key.</para> - <para>Filter rules may be specified using a <link linkend="Java-Broker-Concepts-Exchanges-BindingArguments-JMSSelector"> - binding argument specifying a JMS message selector</link>.</para> - <figure> - <title>Fanout exchange</title> - <mediaobject> - <imageobject> - <imagedata fileref="images/Exchange-Fanout.png" format="PNG" scalefit="1"/> - </imageobject> - </mediaobject> - </figure> - </section> - <section id="Java-Broker-Concepts-Exchanges-Types-Headers"> - <title>Headers</title> - <para>The headers exchange type routes messages to queues based on header properties within the message. The message is passed to - a queue if the header properties of the message satisfy the <link linkend="Java-Broker-Concepts-Exchanges-BindingArguments-x-match"> - x-match expression</link> specified by the binding arguments with which the queue was bound. - </para> - </section> - </section> - <section id="Java-Broker-Concepts-Exchanges-BindingArguments"> - <title>Binding Arguments</title> - <para>Binding arguments are used by certain exchange types to further filter messages.</para> - <section id="Java-Broker-Concepts-Exchanges-BindingArguments-JMSSelector"> - <title>JMS Selector</title> - <para>The binding argument <literal>x-filter-jms-selector</literal> specifies a JMS selector conditional expression. The expression - is written in terms of message header and message property names. If the expression evaluates to true, the message is routed to the queue. - This type of binding argument is understood by exchange types direct, topic and fanout.<footnote><para> - This is a Qpid specific extension.</para></footnote>.</para> - </section> - <section id="Java-Broker-Concepts-Exchanges-BindingArguments-x-match"> - <title>x-match</title> - <para>The binding argument <literal>x-match</literal> is understood by exchange type headers. It can take two values, dictating how the - rest of the name value pairs are treated during matching.</para> - <itemizedlist> - <listitem><para><literal>all</literal> implies that all the other pairs must match the headers property of a message for that message to be routed - (i.e. an AND match)</para></listitem> - <listitem><para><literal>any</literal> implies that the message should be routed if any of the fields in the headers property match one of the - fields in the arguments table (i.e. an OR match)</para></listitem> - </itemizedlist> - <para>A field in the bind arguments matches a field in the message if either the field in the bind arguments has no value and a field of the - same name is present in the message headers or if the field in the bind arguments has a value and a field of the same name exists in the - message headers and has that same value.</para> - </section> - </section> - <section id="Java-Broker-Concepts-Exchanges-UnroutableMessage"> - <title>Unrouteable Messages</title> - <para>If an exchange is unable to route a message to any queues, the Broker will: - <itemizedlist> - <listitem><para>If using AMQP 0-10 protocol, and an alternate exchange has been set on the exchange, the message is routed to the alternate exchange. - The alternate exchange routes the message according to its routing algorithm and its binding table. If the messages is still unroutable, - the message is discarded.</para></listitem> - <listitem><para>If using AMQP protocols 0-8..0-9-1, and the publisher set the mandatory flag and the<link linkend="Java-Broker-Close-Connection-When-No-Route"> - close when no route</link> feature did not close the connection, the message is returned to the Producer.</para></listitem> - <listitem><para>Otherwise, the message is discarded.</para></listitem> - </itemizedlist> - </para> - </section> -</section> diff --git a/qpid/doc/book/src/java-broker/concepts/Java-Broker-Concepts-Other-Services.xml b/qpid/doc/book/src/java-broker/concepts/Java-Broker-Concepts-Other-Services.xml deleted file mode 100644 index 854a8001d6..0000000000 --- a/qpid/doc/book/src/java-broker/concepts/Java-Broker-Concepts-Other-Services.xml +++ /dev/null @@ -1,58 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section id="Java-Broker-Concepts-Other-Services"> -<title>Other Services</title> - <para> - The Broker can also have <emphasis>Access Control Providers</emphasis>, <emphasis>Group Providers</emphasis>, - <emphasis>Keystores</emphasis>, <emphasis>Trustores</emphasis> and [Management] <emphasis>Plugins</emphasis> configured. - </para> - - <section id="Java-Broker-Concepts-Access-Control-Providers"> - <title>Access Control Providers</title> - <para><emphasis>Access Control Providers</emphasis> are used to authorize various operations relating to Broker objects.</para> - <para>Access Control Provider configuration and management details are covered in <xref linkend="Java-Broker-Security-ACLs"/>.</para> - </section> - - <section id="Java-Broker-Concepts-Group-Providers"> - <title>Group Providers</title> - <para><emphasis>Group Providers</emphasis> are used to aggregate authenticated user principals into groups - which can be then be used in Access Control rules applicable to the whole group.</para> - <para>Group Provider configuration and management is covered in <xref linkend="Java-Broker-Security-Group-Providers"/>.</para> - </section> - - <section id="Java-Broker-Concepts-Keystores"> - <title>Keystores</title> - <para><emphasis>Keystores</emphasis> are used to configure details of keystores holding SSL keys and certificates - for the SSL transports on Ports.</para> - <para>Keystore configuration and management is covered in <xref linkend="Java-Broker-Management-Managing-Keystores"/>.</para> - </section> - - <section id="Java-Broker-Concepts-Truststores"> - <title>Truststores</title> - <para><emphasis>Truststores </emphasis> are used to configure details of keystores holding SSL certificates - for trusting Client Certificate on SSL ports. - </para> - <para>Truststore configuration and management is covered in <xref linkend="Java-Broker-Management-Managing-Truststores"/>.</para> - </section> - -</section> 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 deleted file mode 100644 index 691cf2aab3..0000000000 --- a/qpid/doc/book/src/java-broker/concepts/Java-Broker-Concepts-Overview.xml +++ /dev/null @@ -1,77 +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. - ---> -<section id="Java-Broker-Concepts-Overview"> - <title>Overview</title> - <para>The Broker comprises of a number of entities. This section summaries the purpose of - each of the entities and describes the relationships between them. These details are developed - further in the sub-sections that follow.</para> - <para>The most important entity is the <emphasis>Virtualhost</emphasis>. A virtualhost is an - independent namespace in which messaging is performed. A <emphasis>virtualhost</emphasis> exists - in a container called a <emphasis>virtualhost node</emphasis>. A virtualhost node has exactly - one virtualhost.</para> - <para><emphasis>Ports</emphasis> accept connections for messaging and management. The Broker - supports any number of ports. When connecting for messaging, the user specifies a virtualhost - name to indicate the virtualhost to which it is to be connected.</para> - <para><emphasis>Authentication Providers</emphasis> assert the identity of the user as it connects - for messaging or management. The Broker supports any number of authentication providers. Each - port is associated with exactly one authentication provider. The port uses the authentication - provider to assert the identity of the user as new connections are received.</para> - <para><emphasis>Group Providers</emphasis> provide mechanisms that provide grouping of users. A - Broker supports zero or more group providers.</para> - <para><emphasis>Access Control Provider</emphasis> allows the abilities of users (or groups of - users) to be restrained. A Broker can have zero or one access control providers.</para> - <para><emphasis>Keystores</emphasis> provide a repositories of certificates and are used when the - Broker accepts SSL connections. Any number of keystore providers can be defined. Keystores are - be associated with Ports defined to accepts SSL.</para> - <para><emphasis>Truststores</emphasis> provide a repositories of trust and are used to validate a - peer. Any number of truststore provides can be defined. Truststores can be associated with Ports - and other entities that form SSL connections.</para> - <para><emphasis>Remote Replication Nodes</emphasis> are used when the high availability feature is - in use. It is the remote representation of other virtualhost nodes that form part of the same - group.</para> - <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 through Key Entities</title> - <mediaobject> - <imageobject> - <imagedata fileref="images/Broker-MessageFlow.png" format="PNG" scalefit="1"/> - </imageobject> - <textobject> - <phrase>Message Flow through the Key Entities of the Broker</phrase> - </textobject> - </mediaobject> - </figure></para> - <para><figure> - <title>Broker Structure</title> - <mediaobject> - <imageobject> - <imagedata fileref="images/Broker-Model.png" format="PNG" scalefit="1"/> - </imageobject> - <textobject> - <phrase>Broker Structure</phrase> - </textobject> - </mediaobject> - </figure> - </para> - -</section> 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 deleted file mode 100644 index 9f577ca5f4..0000000000 --- a/qpid/doc/book/src/java-broker/concepts/Java-Broker-Concepts-Ports.xml +++ /dev/null @@ -1,60 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section id="Java-Broker-Concepts-Ports"> - <title>Ports</title> - <para> The Broker supports configuration of <emphasis>Ports</emphasis> to specify the particular - AMQP messaging and HTTP/JMX management connectivity it offers for use. </para> - <para> Each Port is configured with the particular <emphasis>Protocols</emphasis> and - <emphasis>Transports</emphasis> it supports, as well as the <emphasis>Authentication - Provider</emphasis> to be used to authenticate connections. Where SSL is in use, the - <emphasis>Port</emphasis> configuration also defines which <emphasis>Keystore</emphasis> - to use and (where supported) which <emphasis>TrustStore(s)</emphasis> and whether Client - Certificates should be requested/required. </para> - <para> Different <emphasis>Ports</emphasis> can support different protocols, and many - <emphasis>Ports</emphasis> can be configured on the Broker.</para> - <para> The following AMQP protocols are currently supported by the Broker: <itemizedlist> - <listitem><para><emphasis>AMQP 0-8</emphasis></para></listitem> - <listitem><para><emphasis>AMQP 0-9</emphasis></para></listitem> - <listitem><para><emphasis>AMQP 0-9-1</emphasis></para></listitem> - <listitem><para><emphasis>AMQP 0-10</emphasis></para></listitem> - <listitem><para><emphasis>AMQP 1.0</emphasis></para></listitem> - </itemizedlist> - </para> - - <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> - and an Access Control Provider work together to allow an application to form a connection to - a Virtualhost.<figure> - <title>Control flow during Authentication</title> - <mediaobject> - <imageobject> - <imagedata fileref="images/Broker-PortAuthFlow.png" format="PNG" scalefit="1"/> - </imageobject> - <textobject> - <phrase>Control flow during Authentication</phrase> - </textobject> - </mediaobject> - </figure></para> -</section> 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 deleted file mode 100644 index 103a62ec38..0000000000 --- a/qpid/doc/book/src/java-broker/concepts/Java-Broker-Concepts-Queues.xml +++ /dev/null @@ -1,372 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<!DOCTYPE entities [ -<!ENTITY % entities SYSTEM "../commonEntities.xml"> -%entities; -]> -<section id="Java-Broker-Concepts-Queues"> - <title>Queues</title> - <para><emphasis>Queue</emphasis>s are named entities within a <link linkend="Java-Broker-Concepts-Virtualhosts">Virtualhost</link> that - 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 messages on a queue to be treated as a group.</para> - <section id="Java-Broker-Concepts-Queues-Types"> - <title>Types</title> - <para>The Broker supports four different queue types, each with different delivery semantics.<itemizedlist> - <listitem> - <para><link linkend="Java-Broker-Concepts-Queues-Types-Standard" - >Standard</link> - a simple First-In-First-Out (FIFO) queue</para> - </listitem> - <listitem> - <para><link linkend="Java-Broker-Concepts-Queues-Types-Priority" - >Priority</link> - delivery order depends on the priority of each message</para> - </listitem> - <listitem> - <para><link linkend="Java-Broker-Concepts-Queues-Types-Sorted">Sorted</link> - - delivery order depends on the value of the sorting key property in each message</para> - </listitem> - <listitem> - <para><link linkend="Java-Broker-Concepts-Queues-Types-LVQ">Last Value - Queue</link> - also known as an LVQ, retains only the last (newest) message received - with a given LVQ key value</para> - </listitem> - </itemizedlist></para> - <section id="Java-Broker-Concepts-Queues-Types-Standard"> - <title>Standard</title> - <para>A simple First-In-First-Out (FIFO) queue</para> - </section> - <section id="Java-Broker-Concepts-Queues-Types-Priority"> - <title>Priority</title> - <para>In a priority queue, messages on the queue are delivered in an order determined by the - <ulink url="&oracleJeeDocUrl;javax/jms/Message.html#getJMSPriority()">JMS priority message - header</ulink> within the message. By default Qpid supports the 10 priority levels - mandated by JMS, with priority value 0 as the lowest priority and 9 as the highest. </para> - <para>It is possible to reduce the effective number of priorities if desired.</para> - <para>JMS defines the <ulink url="&oracleJeeDocUrl;javax/jms/Message.html#DEFAULT_PRIORITY"> - default message priority</ulink> as 4. Messages sent without a specified priority use this - default. </para> - </section> - <section id="Java-Broker-Concepts-Queues-Types-Sorted"> - <title>Sorted Queues</title> - <para>Sorted queues allow the message delivery order to be determined by value of an arbitrary - <ulink url="&oracleJeeDocUrl;javax/jms/Message.html#getStringProperty()">JMS message - property</ulink>. Sort order is alpha-numeric and the property value must have a type - java.lang.String.</para> - <para>Messages sent to a sorted queue without the specified JMS message property will be - inserted into the 'last' position in the queue.</para> - </section> - <section id="Java-Broker-Concepts-Queues-Types-LVQ"> - <title>Last Value Queues (LVQ)</title> - <para>LVQs (or conflation queues) are special queues that automatically discard any message - when a newer message arrives with the same key value. The key is specified by arbitrary - <ulink url="&oracleJeeDocUrl;javax/jms/Message.html#getPropertyNames()">JMS message - property</ulink>.</para> - <para>An example of an LVQ might be where a queue represents prices on a stock exchange: when - you first consume from the queue you get the latest quote for each stock, and then as new - prices come in you are sent only these updates. </para> - <para>Like other queues, LVQs can either be browsed or consumed from. When browsing an - individual subscriber does not remove the message from the queue when receiving it. This - allows for many subscriptions to browse the same LVQ (i.e. you do not need to create and - bind a separate LVQ for each subscriber who wishes to receive the contents of the - LVQ).</para> - <para>Messages sent to an LVQ without the specified property will be delivered as normal and - will never be "replaced".</para> - </section> - </section> - <section id="Java-Broker-Concepts-Queues-QueueDeclareArguments"> - <title>Queue Declare Arguments</title> - <para>To create a priority, sorted or LVQ queue programmatically from JMX or AMQP, pass the - appropriate queue-declare arguments.</para> - <table> - <title>Queue-declare arguments understood for priority, sorted and LVQ queues</title> - <tgroup cols="4"> - <thead> - <row> - <entry>Queue type</entry> - <entry>Argument name</entry> - <entry>Argument name</entry> - <entry>Argument Description</entry> - </row> - </thead> - <tbody> - <row> - <entry>priority</entry> - <entry>x-qpid-priorities</entry> - <entry>java.lang.Integer</entry> - <entry>Specifies a priority queue with given number priorities</entry> - </row> - <row> - <entry>sorted</entry> - <entry>qpid.queue_sort_key</entry> - <entry>java.lang.String</entry> - <entry>Specifies sorted queue with given message property used to sort the - entries</entry> - </row> - <row> - <entry>lvq</entry> - <entry>qpid.last_value_queue_key</entry> - <entry>java.lang.String</entry> - <entry>Specifies lvq queue with given message property used to conflate the - entries</entry> - </row> - </tbody> - </tgroup> - </table> - </section> - <section id="Java-Broker-Concepts-Queues-Message-Grouping"> - <title>Messaging Grouping</title> - <para> The broker allows messaging applications to classify a set of related messages as - belonging to a group. This allows a message producer to indicate to the consumer that a group - of messages should be considered a single logical operation with respect to the application. </para> - <para> The broker can use this group identification to enforce policies controlling how messages - from a given group can be distributed to consumers. For instance, the broker can be configured - to guarantee all the messages from a particular group are processed in order across multiple - consumers. </para> - <para> For example, assume we have a shopping application that manages items in a virtual - shopping cart. A user may add an item to their shopping cart, then change their mind and - remove it. If the application sends an <emphasis>add</emphasis> message to the broker, - immediately followed by a <emphasis>remove</emphasis> message, they will be queued in the - proper order - <emphasis>add</emphasis>, followed by <emphasis>remove</emphasis>. </para> - <para> However, if there are multiple consumers, it is possible that once a consumer acquires - the <emphasis>add</emphasis> message, a different consumer may acquire the - <emphasis>remove</emphasis> message. This allows both messages to be processed in parallel, - which could result in a "race" where the <emphasis>remove</emphasis> operation is incorrectly - performed before the <emphasis>add</emphasis> operation. </para> - <section id="Java-Broker-Concepts-Queues-GroupingMessages"> - <title>Grouping Messages</title> - <para> In order to group messages, the application would designate a particular message header - as containing a message's <emphasis>group identifier</emphasis>. The group identifier stored - in that header field would be a string value set by the message producer. Messages from the - same group would have the same group identifier value. The key that identifies the header - must also be known to the message consumers. This allows the consumers to determine a - message's assigned group. </para> - <para> The header that is used to hold the group identifier, as well as the values used as - group identifiers, are totally under control of the application. </para> - </section> - <section id="Java-Broker-Concepts-Queues-BrokerRole"> - <title> The Role of the Broker in Message Grouping </title> - <para> The broker will apply the following processing on each grouped message: <itemizedlist> - <listitem> - <para>Enqueue a received message on the destination queue.</para> - </listitem> - <listitem> - <para>Determine the message's group by examining the message's group identifier - header.</para> - </listitem> - <listitem> - <para>Enforce <emphasis>consumption ordering</emphasis> among messages belonging to the - same group. <emphasis>Consumption ordering</emphasis> means one of two things - depending on how the queue has been configured. </para> - <itemizedlist> - <listitem> - <para> In default mode, a group gets assigned to a single consumer for the lifetime - of that consumer, and the broker will pass all subsequent messages in the group to - that consumer. </para> - </listitem> - <listitem> - <para>In 'shared groups' mode (which gives the same behaviour as the Qpid C++ - Broker) the broker enforces a looser guarantee, namely that all the - <emphasis>currently unacknowledged messages</emphasis> in a group are sent to - the same consumer, but the consumer used may change over time even if the - consumers do not. This means that only one consumer can be processing messages - from a particular group at any given time, however if the consumer acknowledges - all of its acquired messages then the broker <emphasis>may</emphasis> pass the - next pending message in that group to a different consumer. </para> - </listitem> - </itemizedlist> - </listitem> - </itemizedlist> - </para> - <para> The absence of a value in the designated group header field of a message is treated as - follows: <itemizedlist> - <listitem> - <para> In default mode, failure for a message to specify a group is treated as a desire - for the message not to be grouped at all. Such messages will be distributed to any - available consumer, without the ordering quarantees imposed by grouping. </para> - </listitem> - <listitem> - <para> In 'shared groups' mode (which gives the same behaviour as the Qpid C++ Broker) - the broker assigns messages without a group value to a 'default group'. Therefore, all - such "unidentified" messages are considered by the broker as part of the same group, - which will handled like any other group. The name of this default group is - "qpid.no-group", although it can be customised as detailed below. </para> - </listitem> - </itemizedlist> - </para> - <para> Note that message grouping has no effect on queue browsers.</para> - <para> Note well that distinct message groups would not block each other from delivery. For - example, assume a queue contains messages from two different message groups - say group "A" - and group "B" - and they are enqueued such that "A"'s messages are in front of "B". If the - first message of group "A" is in the process of being consumed by a client, then the - remaining "A" messages are blocked, but the messages of the "B" group are available for - consumption by other consumers - even though it is "behind" group "A" in the queue. </para> -</section> -</section> - <section id="Java-Broker-Concepts-Queues-SetLowPrefetch"> - <title>Using low pre-fetch with special queue types</title> - <para>Qpid clients receive buffered messages in batches, sized according to the pre-fetch value. - The current default is 500. </para> - <para>However, if you use the default value you will probably <emphasis>not</emphasis> see - desirable behaviour when using priority, sorted, lvq or grouped queues. Once the broker has - sent a message to the client its delivery order is then fixed, regardless of the special - behaviour of the queue. </para> - <para>For example, if using a priority queue and a prefetch of 100, and 100 messages arrive with - priority 2, the broker will send these messages to the client. If then a new message arrives - will priority 1, the broker cannot leap frog messages of lower priority. The priority 1 will - be delivered at the front of the next batch of messages to be sent to the client.</para> - <para> So, you need to set the prefetch values for your client (consumer) to make this sensible. - To do this set the Java system property <varname>max_prefetch</varname> on the client - environment (using -D) before creating your consumer. </para> - <para>A default for all client connections can be set via a system property: </para> - <programlisting> --Dmax_prefetch=1 -</programlisting> - <para> The prefetch can be also be adjusted on a per connection basis by adding a - <varname>maxprefetch</varname> value to the <ulink url="&qpidjmsdocClientConectionUrl;" - >Connection URLs</ulink> - </para> - <programlisting> -amqp://guest:guest@client1/development?maxprefetch='1'&brokerlist='tcp://localhost:5672' -</programlisting> - <para>Setting the Qpid pre-fetch to 1 will give exact queue-type semantics as perceived by the - client however, this brings a performance cost. You could test with a slightly higher - pre-fetch to trade-off between throughput and exact semantics.</para> - </section> - <section id="Java-Broker-Concepts-Queue-EnsureNonDestructiveConsumers"> - <title>Forcing all consumers to be non-destructive</title> - <para>When a consumer attaches to a queue, the normal behaviour is that messages are - sent to that consumer are acquired exclusively by that consumer, and when the consumer - acknowledges them, the messages are removed from the queue.</para> - <para>Another common pattern is to have queue "browsers" which send all messages to the - browser, but do not prevent other consumers from receiving the messages, and do not - remove them from the queue when the browser is done with them. Such a browser is an - instance of a "non-destructive" consumer.</para> - <para>If every consumer on a queue is non destructive then we can obtain some interesting - behaviours. In the case of a <link linked="Java-Broker-Concepts-Queues-Types-LVQ">LVQ - </link> then the queue will always contain the most up to date value for every key. For - a standard queue, if every consumer is non-destructive then we have something that - behaves like a topic (every consumer receives every message) except that instead of - only seeing messages that arrive after the point at which the consumer is created, all - messages which have not been removed due to TTL expiry (or, in the case of LVQs, - overwirtten by newer values for the same key).</para> - <para>A queue can be created to enforce all consumers are non-destructive. This can be - be achieved using the following queue declare argument:</para> - <table> - <tgroup cols="3"> - <thead> - <row> - <entry>Argument Name</entry> - <entry>Argument Type</entry> - <entry>Argument Description</entry> - </row> - </thead> - <tbody> - <row> - <entry>qpid.ensure_nondestructive_consumers</entry> - <entry>java.lang.Boolean</entry> - <entry>Set to true if the queue should make all consumers attached to it behave - non-destructively. (Default is false).</entry> - </row> - </tbody> - </tgroup> - </table> - <para>Through the <link linkend="Java-Broker-Management-Channel-REST-API">REST</link> api, - the equivalent attribute is named <varname>ensureNondestructiveConsumers</varname>. - </para> - <section> - <title>Bounding size using min/max TTL</title> - <para>For queues other than LVQs, having only non-destructive consumers could mean that - messages would never get deleted, leaving the queue to grow unconstrainedly. To - prevent this you can use the ability to set the maximum TTL of the queue. To ensure - all messages have the same TTL you could also set the minimum TTL to the same value. - </para> - <para>Minimum/Maximum TTL for a queue can be set though the HTTP Management UI, using the - REST API or by hand editing the configuration file (for JSON configuration stores). - The attribute names are <varname>minimumMessageTtl</varname> and - <varname>maximumMessageTtl</varname> and the TTL value is given in milliseconds.</para> - </section> - <section> - <title>Choosing to receive messages based on arrival time</title> - <para>A queue with no destructive consumers will retain all messages until they expire - due to TTL. It may be the case that a consumer only wishes to receive messages - that have been sent in the last 60 minutes, and any new messages that arrive, or - alternatively it may wish only to receive newly arriving messages and not any that - are already in the queue. This can be achieved by using a filter on the arrival - time.</para> - <para>A special parameter <varname>x-qpid-replay-period</varname> can be used in the - consumer declaration to control the messages the consumer wishes to receive. The - value of <varname>x-qpid-replay-period</varname> is the time, in seconds, for which - the consumer wishes to see messages. A replay period of 0 indicates only newly - arriving messages should be sent. A replay period of 3600 indicates that only - messages sent in the last hour - along with any newly arriving messages - should be - sent.</para> - <table> - <title>Setting the replay period</title> - <tgroup cols="2"> - <thead> - <row> - <entry>Syntax</entry> - <entry>Example</entry> - </row> - </thead> - <tbody> - <row> - <entry>Addressing</entry> - <entry>myqueue ; { link : { x-subscribe: { arguments : { x-qpid-replay-period : '3600' } } } }</entry> - </row> - <row> - <entry>Binding URL</entry> - <entry>direct://amq.direct/myqueue/myqueue?x-qpid-replay-period='3600'</entry> - </row> - </tbody> - </tgroup> - </table> - </section> - <section> - <title>Setting a default filter</title> - <para>A common case might be that the desired default behaviour is that newly attached consumers - see only newly arriving messages (i.e. standard topic-like behaviour) but other consumers - may wish to start their message stream from some point in the past. This can be achieved by - setting a default filter on the queue so that consumers which do not explicitly set a replay - period get a default (in this case the desired default would be 0).</para> - <para>The default filter set for a queue can be set via the REST API using the attribute named - <varname>defaultFilters</varname>. This value is a map from filter name to type and arguments. - To set the default behaviour for the queue to be that consumers only receive newly arrived - messages, then you should set this attribute to the value:</para> - <screen> - { "x-qpid-replay-period" : { "x-qpid-replay-period" : [ "0" ] } } - </screen> - <para> - If the desired default behaviour is that each consumer should see all messages arriving in - the last minute, as well as all new messages then the value would need to be:</para> - <screen> - { "x-qpid-replay-period" : { "x-qpid-replay-period" : [ "60" ] } } - </screen> - - </section> - - - </section> - -</section> diff --git a/qpid/doc/book/src/java-broker/concepts/Java-Broker-Concepts-RemoteReplicationNodes.xml b/qpid/doc/book/src/java-broker/concepts/Java-Broker-Concepts-RemoteReplicationNodes.xml deleted file mode 100644 index b9162fd8e3..0000000000 --- a/qpid/doc/book/src/java-broker/concepts/Java-Broker-Concepts-RemoteReplicationNodes.xml +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section id="Java-Broker-Concepts-RemoteReplicationNodes"> - <title>Remote Replication Nodes</title> - <para>Used for HA only. A <emphasis>remote replication node</emphasis> is a representation of - another virtualhost node in the group.</para> -</section> diff --git a/qpid/doc/book/src/java-broker/concepts/Java-Broker-Concepts-Virtualhost-Nodes.xml b/qpid/doc/book/src/java-broker/concepts/Java-Broker-Concepts-Virtualhost-Nodes.xml deleted file mode 100644 index c1dd903aed..0000000000 --- a/qpid/doc/book/src/java-broker/concepts/Java-Broker-Concepts-Virtualhost-Nodes.xml +++ /dev/null @@ -1,37 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section id="Java-Broker-Concepts-Virtualhost-Nodes"> - <title>Virtualhost Nodes</title> - <para>A <emphasis>virtualhost node</emphasis> is a container for the virtualhost. It has exactly - one virtualhost.</para> - <para>A <emphasis>virtualhost node</emphasis> is backed by storage. This storage is used to record - the durable entities that exist beneath the virtualhost node (the virtualhost, queues, exchanges - etc).</para> - <para>When HA is in use, it is the virtualhost nodes of many Brokers that come together to form - the group. The virtualhost nodes together elect a master. When the high availability feature is - in use, the virtualhost node has <link linkend="Java-Broker-Concepts-RemoteReplicationNodes" - >remote replications nodes</link>. There is a remote replication node corresponding to each - remote virtualhost node that form part of the group.</para> - - -</section> diff --git a/qpid/doc/book/src/java-broker/concepts/Java-Broker-Concepts-Virtualhosts.xml b/qpid/doc/book/src/java-broker/concepts/Java-Broker-Concepts-Virtualhosts.xml deleted file mode 100644 index ecc898627e..0000000000 --- a/qpid/doc/book/src/java-broker/concepts/Java-Broker-Concepts-Virtualhosts.xml +++ /dev/null @@ -1,60 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section id="Java-Broker-Concepts-Virtualhosts"> - <title>Virtualhosts</title> - <para>A virtualhost is a namespace in which messaging is performed. Virtualhosts are independent; - the messaging goes on a within a virtualhost is independent of any messaging that goes on in - another virtualhost. For instance, a queue named <emphasis>foo</emphasis> defined in one - virtualhost is completely independent of a queue named <emphasis>foo</emphasis> in another - virtualhost.</para> - <para>A virtualhost is identified by a name which must be unique broker-wide. Clients use the name - to identify the virtualhost to which they wish to connect when they connect.</para> - <para>A virtualhost exists in a container called a virtualhost node.</para> - <para>The virtualhost comprises of a number of entities. This section summaries the purpose of - each of the entities and describes the relationships between them. These details are developed - further in the sub-sections that follow.</para> - <para><emphasis>Exchanges</emphasis> is a named entity within the Virtual Host which receives - messages from producers and routes them to matching Queues.</para> - <para><emphasis>Queues</emphasis> are named entities that hold messages for delivery to consumer - applications.</para> - <para><emphasis>Bindings</emphasis> are relationships between Exchanges and Queue that facilitate - routing of messages from the Exchange to the Queue.</para> - <para><emphasis>Connections</emphasis> represent a live connection to the virtualhost from a - messaging client.</para> - <para>A <emphasis>Session</emphasis> represents a context for the production or consumption of - messages. Connection support many Sessions.</para> - <para>A <emphasis>Consumer</emphasis> represents a live consumer that is attached to queue.</para> - <para> The following diagram depicts the Virtualhost model: <figure> - <title>Virtualhost Model</title> - <mediaobject> - <imageobject> - <imagedata fileref="images/VirtualHost-Model.png" format="PNG" scalefit="1"/> - </imageobject> - <textobject> - <phrase>Virtual Host Model</phrase> - </textobject> - </mediaobject> - </figure> - </para> - <para>A <emphasis>virtualhost</emphasis> is backed by storage which is used to store the messages.</para> -</section> diff --git a/qpid/doc/book/src/java-broker/images/Broker-MessageFlow.png b/qpid/doc/book/src/java-broker/images/Broker-MessageFlow.png Binary files differdeleted file mode 100644 index b687dfe2eb..0000000000 --- a/qpid/doc/book/src/java-broker/images/Broker-MessageFlow.png +++ /dev/null diff --git a/qpid/doc/book/src/java-broker/images/Broker-Model.png b/qpid/doc/book/src/java-broker/images/Broker-Model.png Binary files differdeleted file mode 100644 index 8dd0118010..0000000000 --- a/qpid/doc/book/src/java-broker/images/Broker-Model.png +++ /dev/null diff --git a/qpid/doc/book/src/java-broker/images/Broker-PortAuthFlow.png b/qpid/doc/book/src/java-broker/images/Broker-PortAuthFlow.png Binary files differdeleted file mode 100644 index 4df2fa1c5e..0000000000 --- a/qpid/doc/book/src/java-broker/images/Broker-PortAuthFlow.png +++ /dev/null diff --git a/qpid/doc/book/src/java-broker/images/Exchange-Direct.png b/qpid/doc/book/src/java-broker/images/Exchange-Direct.png Binary files differdeleted file mode 100644 index 184fb80704..0000000000 --- a/qpid/doc/book/src/java-broker/images/Exchange-Direct.png +++ /dev/null diff --git a/qpid/doc/book/src/java-broker/images/Exchange-Direct.svg b/qpid/doc/book/src/java-broker/images/Exchange-Direct.svg deleted file mode 100644 index 76d25fa2ab..0000000000 --- a/qpid/doc/book/src/java-broker/images/Exchange-Direct.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="17 70 436 355" width="436pt" height="355pt"><metadata xmlns:dc="http://purl.org/dc/elements/1.1/"><dc:date>2013-10-01 22:37Z</dc:date><!-- Produced by OmniGraffle Professional 5.4.4 --></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><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><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.2 0 L 0 -1.2 L 0 1.2 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/></g></marker><font-face font-family="Helvetica" font-size="9" 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><font-face font-family="Helvetica" font-size="9" units-per-em="1000" underline-position="-75.683594" underline-thickness="49.316406" slope="-1333.3334" x-height="539.55078" cap-height="719.72656" ascent="770.01953" descent="-229.98047" font-style="italic" font-weight="bold"><font-face-src><font-face-name name="Helvetica-BoldOblique"/></font-face-src></font-face></defs><g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1"><title>Canvas 1</title><g><title>Layer 1</title><g><use xl:href="#id4_Graphic" filter="url(#Shadow)"/><use xl:href="#id1902_Graphic" filter="url(#Shadow)"/><use xl:href="#id2284_Graphic" filter="url(#Shadow)"/></g><g id="id4_Graphic"><path d="M 66.296997 107.000005 L 160.297 107.000005 C 165.26756 107.000005 169.297 111.02944 169.297 116.000005 L 169.297 136.000005 C 169.297 140.97057 165.26756 145.000005 160.297 145.000005 L 66.296997 145.000005 C 61.326434 145.000005 57.296997 140.97057 57.296997 136.000005 L 57.296997 116.000005 C 57.296997 111.02944 61.326434 107.000005 66.296997 107.000005 Z" fill="#acffa2"/><path d="M 66.296997 107.000005 L 160.297 107.000005 C 165.26756 107.000005 169.297 111.02944 169.297 116.000005 L 169.297 136.000005 C 169.297 140.97057 165.26756 145.000005 160.297 145.000005 L 66.296997 145.000005 C 61.326434 145.000005 57.296997 140.97057 57.296997 136.000005 L 57.296997 116.000005 C 57.296997 111.02944 61.326434 107.000005 66.296997 107.000005 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(62.296997 112.000005)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="0" y="11" textLength="56.015625">Producer </tspan><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="55.576172" y="11" textLength="8.6660156">A</tspan></text></g><g id="id1902_Graphic"><path d="M 197.65201 107.500005 L 291.652 107.500005 C 296.62257 107.500005 300.652 111.52944 300.652 116.500005 L 300.652 136.500005 C 300.652 141.47057 296.62257 145.500005 291.652 145.500005 L 197.65201 145.500005 C 192.68144 145.500005 188.65201 141.47057 188.65201 136.500005 L 188.65201 116.500005 C 188.65201 111.52944 192.68144 107.500005 197.65201 107.500005 Z" fill="#acffa2"/><path d="M 197.65201 107.500005 L 291.652 107.500005 C 296.62257 107.500005 300.652 111.52944 300.652 116.500005 L 300.652 136.500005 C 300.652 141.47057 296.62257 145.500005 291.652 145.500005 L 197.65201 145.500005 C 192.68144 145.500005 188.65201 141.47057 188.65201 136.500005 L 188.65201 116.500005 C 188.65201 111.52944 192.68144 107.500005 197.65201 107.500005 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(193.65201 112.500005)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="0" y="11" textLength="64.68164">Producer B</tspan></text></g><rect x="255.297" y="90.000006" width="31.222" height="16.5076" fill="#ff0b22"/><rect x="255.297" y="90.000006" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="256.716" y1="91.375606" x2="263.812" y2="91.375606" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="256.716" y1="92.750806" x2="263.812" y2="92.750806" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="256.716" y1="94.126806" x2="263.812" y2="94.126806" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="265.231" y1="98.253806" x2="276.585" y2="98.253806" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="265.231" y1="99.629806" x2="276.585" y2="99.629806" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="265.231" y1="101.004806" x2="276.585" y2="101.004806" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="282.261" y="91.375606" width="2.83837" height="2.75126" fill="none"/><rect x="282.261" y="91.375606" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="262.297" y="96.08351" width="31.222" height="16.5076" fill="#ff0b22"/><rect x="262.297" y="96.08351" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="263.716" y1="97.45851" x2="270.812" y2="97.45851" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="263.716" y1="98.83451" x2="270.812" y2="98.83451" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="263.716" y1="100.20951" x2="270.812" y2="100.20951" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="272.231" y1="104.33651" x2="283.584" y2="104.33651" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="272.231" y1="105.71251" x2="283.584" y2="105.71251" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="272.231" y1="107.08751" x2="283.584" y2="107.08751" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="289.261" y="97.45851" width="2.83837" height="2.75126" fill="none"/><rect x="289.261" y="97.45851" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="124.296996" y="90.00001" width="31.222" height="16.5076" fill="#ff9"/><rect x="124.296996" y="90.00001" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="125.715996" y1="91.37501" x2="132.812" y2="91.37501" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="125.715996" y1="92.75101" x2="132.812" y2="92.75101" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="125.715996" y1="94.12701" x2="132.812" y2="94.12701" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="134.231" y1="98.25351" x2="145.585" y2="98.25351" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="134.231" y1="99.62951" x2="145.585" y2="99.62951" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="134.231" y1="101.00551" x2="145.585" y2="101.00551" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="151.261" y="91.37501" width="2.83837" height="2.75126" fill="none"/><rect x="151.261" y="91.37501" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="129.084" y="96.08351" width="31.222" height="16.5076" fill="#ff9"/><rect x="129.084" y="96.08351" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="130.503" y1="97.45851" x2="137.599" y2="97.45851" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="130.503" y1="98.83451" x2="137.599" y2="98.83451" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="130.503" y1="100.21051" x2="137.599" y2="100.21051" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="139.018" y1="104.33651" x2="150.372" y2="104.33651" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="139.018" y1="105.71251" x2="150.372" y2="105.71251" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="139.018" y1="107.08851" x2="150.372" y2="107.08851" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="156.048" y="97.45851" width="2.83837" height="2.75126" fill="none"/><rect x="156.048" y="97.45851" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="134.002" y="103.58351" width="31.222" height="16.5076" fill="#ff9"/><rect x="134.002" y="103.58351" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="135.422" y1="104.95951" x2="142.518" y2="104.95951" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="135.422" y1="106.33451" x2="142.518" y2="106.33451" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="135.422" y1="107.71051" x2="142.518" y2="107.71051" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="143.937" y1="111.83751" x2="155.29" y2="111.83751" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="143.937" y1="113.21251" x2="155.29" y2="113.21251" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="143.937" y1="114.58851" x2="155.29" y2="114.58851" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="160.967" y="104.95951" width="2.83837" height="2.75126" fill="none"/><rect x="160.967" y="104.95951" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><path d="M 133.699005 163 L 355.605 163 C 360.57557 163 364.605 167.02944 364.605 172 L 364.605 391.274 C 364.605 396.24457 360.57557 400.274 355.605 400.274 L 133.699005 400.274 C 128.72844 400.274 124.699005 396.24457 124.699005 391.274 L 124.699005 172 C 124.699005 167.02944 128.72844 163 133.699005 163 Z" fill="#78caff"/><path d="M 133.699005 163 L 355.605 163 C 360.57557 163 364.605 167.02944 364.605 172 L 364.605 391.274 C 364.605 396.24457 360.57557 400.274 355.605 400.274 L 133.699005 400.274 C 128.72844 400.274 124.699005 396.24457 124.699005 391.274 L 124.699005 172 C 124.699005 167.02944 128.72844 163 133.699005 163 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(129.699005 168)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="0" y="11" textLength="69.345703">Qpid Broker</tspan></text><path d="M 148.554005 211.5 L 255.554 211.5 C 260.52457 211.5 264.554 215.52944 264.554 220.5 L 264.554 311.5 C 264.554 316.47057 260.52457 320.5 255.554 320.5 L 148.554005 320.5 C 143.58344 320.5 139.554005 316.47057 139.554005 311.5 L 139.554005 220.5 C 139.554005 215.52944 143.58344 211.5 148.554005 211.5 Z" fill="#a788ff"/><path d="M 148.554005 211.5 L 255.554 211.5 C 260.52457 211.5 264.554 215.52944 264.554 220.5 L 264.554 311.5 C 264.554 316.47057 260.52457 320.5 255.554 320.5 L 148.554005 320.5 C 143.58344 320.5 139.554005 316.47057 139.554005 311.5 L 139.554005 220.5 C 139.554005 215.52944 143.58344 211.5 148.554005 211.5 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(144.554005 216.5)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="0" y="11" textLength="60.685547">amq.direct</tspan></text><path d="M 282.554 211.5 L 341.554 211.5 C 346.52457 211.5 350.554 215.52944 350.554 220.5 L 350.554 255.5 C 350.554 260.47057 346.52457 264.5 341.554 264.5 L 282.554 264.5 C 277.58344 264.5 273.554 260.47057 273.554 255.5 L 273.554 220.5 C 273.554 215.52944 277.58344 211.5 282.554 211.5 Z" fill="#93d9ff"/><path d="M 282.554 211.5 L 341.554 211.5 C 346.52457 211.5 350.554 215.52944 350.554 220.5 L 350.554 255.5 C 350.554 260.47057 346.52457 264.5 341.554 264.5 L 282.554 264.5 C 277.58344 264.5 273.554 260.47057 273.554 255.5 L 273.554 220.5 C 273.554 215.52944 277.58344 211.5 282.554 211.5 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(278.554 216.5)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="7.1591797" y="11" textLength="52.68164">myqueue</tspan></text><path d="M 250.19663 211.12414 C 257.98164 202.25032 264.9523 188.93692 273.554 184.5 C 282.1557 180.06309 296.25709 180.08229 301.812 184.5 C 303.83 186.10487 304.82832 188.87613 305.36258 192.17813" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/><path d="M 282.554 274.425 L 341.554 274.425 C 346.52457 274.425 350.554 278.45444 350.554 283.425 L 350.554 318.425 C 350.554 323.39557 346.52457 327.425 341.554 327.425 L 282.554 327.425 C 277.58344 327.425 273.554 323.39557 273.554 318.425 L 273.554 283.425 C 273.554 278.45444 277.58344 274.425 282.554 274.425 Z" fill="#93d9ff"/><path d="M 282.554 274.425 L 341.554 274.425 C 346.52457 274.425 350.554 278.45444 350.554 283.425 L 350.554 318.425 C 350.554 323.39557 346.52457 327.425 341.554 327.425 L 282.554 327.425 C 277.58344 327.425 273.554 323.39557 273.554 318.425 L 273.554 283.425 C 273.554 278.45444 277.58344 274.425 282.554 274.425 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(278.554 279.425)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="20.826172" y="11" textLength="25.347656">bar1</tspan></text><rect x="210.054" y="291.18696" width="48" height="13.6119385" fill="white"/><rect x="210.054" y="291.18696" width="48" height="13.6119385" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(215.054 292.49293)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="13.249756" y="9" textLength="11.500488">….</tspan></text><rect x="146.05401" y="291.18696" width="63.999992" height="13.6119385" fill="white"/><rect x="146.05401" y="291.18696" width="63.999992" height="13.6119385" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(151.05401 292.49293)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="23.249264" y="9" textLength="7.501465">...</tspan></text><rect x="210.054" y="277.57496" width="48" height="13.6119995" fill="white"/><rect x="210.054" y="277.57496" width="48" height="13.6119995" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(215.054 278.88096)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="9.993408" y="9" textLength="18.013184">bar2</tspan></text><rect x="146.05401" y="277.57496" width="63.999992" height="13.6119995" fill="white"/><rect x="146.05401" y="277.57496" width="63.999992" height="13.6119995" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(151.05401 278.88096)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="20.744381" y="9" textLength="12.5112305">foo</tspan></text><rect x="210.054" y="263.96296" width="48" height="13.6119995" fill="white"/><rect x="210.054" y="263.96296" width="48" height="13.6119995" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(215.054 265.26896)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="9.993408" y="9" textLength="18.013184">bar1</tspan></text><rect x="146.05401" y="263.96296" width="63.999992" height="13.6119995" fill="white"/><rect x="146.05401" y="263.96296" width="63.999992" height="13.6119995" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(151.05401 265.26896)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="20.744381" y="9" textLength="12.5112305">foo</tspan></text><rect x="210.054" y="250.35105" width="48" height="13.611908" fill="white"/><rect x="210.054" y="250.35105" width="48" height="13.611908" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(215.054 251.65701)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x=".4880371" y="9" textLength="37.023926">myqueue</tspan></text><rect x="146.05401" y="250.35105" width="63.999992" height="13.611908" fill="white"/><rect x="146.05401" y="250.35105" width="63.999992" height="13.611908" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(151.05401 251.65701)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="8.4880333" y="9" textLength="37.023926">myqueue</tspan></text><rect x="210.054" y="239.57501" width="48" height="10.776047" fill="white"/><rect x="210.054" y="239.57501" width="48" height="10.776047" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(215.054 239.46303)" fill="black"><tspan font-family="Helvetica" font-size="9" font-style="italic" font-weight="bold" x="5.748291" y="9" textLength="26.503418">queue</tspan></text><rect x="146.05401" y="239.57501" width="63.999992" height="10.776047" fill="white"/><rect x="146.05401" y="239.57501" width="63.999992" height="10.776047" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(151.05401 239.46303)" fill="black"><tspan font-family="Helvetica" font-size="9" font-style="italic" font-weight="bold" x=".74486923" y="9" textLength="52.510254">binding_key</tspan></text><path d="M 222.4567 320.96876 C 224.43994 326.31197 225.22727 333.49515 228.407 337 C 231.58674 340.50486 233.90403 344.3383 241.537 342 C 245.68743 340.72856 251.76463 337.0884 258.19681 333.01168" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/><path d="M 282.554 337.349 L 341.554 337.349 C 346.52457 337.349 350.554 341.37844 350.554 346.349 L 350.554 381.349 C 350.554 386.31957 346.52457 390.349 341.554 390.349 L 282.554 390.349 C 277.58344 390.349 273.554 386.31957 273.554 381.349 L 273.554 346.349 C 273.554 341.37844 277.58344 337.349 282.554 337.349 Z" fill="#93d9ff"/><path d="M 282.554 337.349 L 341.554 337.349 C 346.52457 337.349 350.554 341.37844 350.554 346.349 L 350.554 381.349 C 350.554 386.31957 346.52457 390.349 341.554 390.349 L 282.554 390.349 C 277.58344 390.349 273.554 386.31957 273.554 381.349 L 273.554 346.349 C 273.554 341.37844 277.58344 337.349 282.554 337.349 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(278.554 342.349)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="20.826172" y="11" textLength="25.347656">bar2</tspan></text><path d="M 217.1713 320.98211 C 219.37232 328.98728 220.64087 338.99762 223.775 345 C 226.90914 351.00239 227.76532 354.44391 235.978 357 C 240.33458 358.35593 247.02521 358.89955 254.1924 359.2772" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/><rect x="307.659" y="230.333" width="31.222" height="16.5076" fill="#ff9"/><rect x="307.659" y="230.333" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="309.078" y1="231.708" x2="316.174" y2="231.708" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="309.078" y1="233.084" x2="316.174" y2="233.084" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="309.078" y1="234.46" x2="316.174" y2="234.46" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="317.593" y1="238.587" x2="328.947" y2="238.587" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="317.593" y1="239.963" x2="328.947" y2="239.963" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="317.593" y1="241.339" x2="328.947" y2="241.339" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="334.623" y="231.708" width="2.83837" height="2.75126" fill="none"/><rect x="334.623" y="231.708" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="312.446" y="236.417" width="31.222" height="16.5076" fill="#ff9"/><rect x="312.446" y="236.417" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="313.865" y1="237.792" x2="320.961" y2="237.792" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="313.865" y1="239.168" x2="320.961" y2="239.168" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="313.865" y1="240.544" x2="320.961" y2="240.544" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="322.38" y1="244.67" x2="333.734" y2="244.67" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="322.38" y1="246.046" x2="333.734" y2="246.046" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="322.38" y1="247.422" x2="333.734" y2="247.422" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="339.41" y="237.792" width="2.83837" height="2.75126" fill="none"/><rect x="339.41" y="237.792" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="317.364" y="243.917" width="31.222" height="16.5076" fill="#ff9"/><rect x="317.364" y="243.917" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="318.783" y1="245.293" x2="325.879" y2="245.293" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="318.783" y1="246.668" x2="325.879" y2="246.668" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="318.783" y1="248.044" x2="325.879" y2="248.044" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="327.298" y1="252.171" x2="338.652" y2="252.171" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="327.298" y1="253.546" x2="338.652" y2="253.546" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="327.298" y1="254.922" x2="338.652" y2="254.922" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="344.328" y="245.293" width="2.83837" height="2.75126" fill="none"/><rect x="344.328" y="245.293" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="309.079" y="294.564" width="31.222" height="16.5076" fill="#ff0b22"/><rect x="309.079" y="294.564" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="310.498" y1="295.94" x2="317.594" y2="295.94" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="310.498" y1="297.316" x2="317.594" y2="297.316" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="310.498" y1="298.691" x2="317.594" y2="298.691" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="319.013" y1="302.818" x2="330.366" y2="302.818" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="319.013" y1="304.194" x2="330.366" y2="304.194" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="319.013" y1="305.569" x2="330.366" y2="305.569" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="336.043" y="295.94" width="2.83837" height="2.75126" fill="none"/><rect x="336.043" y="295.94" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="312.873" y="300.984" width="31.222" height="16.5076" fill="#ff0b22"/><rect x="312.873" y="300.984" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="314.292" y1="302.359" x2="321.388" y2="302.359" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="314.292" y1="303.736" x2="321.388" y2="303.736" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="314.292" y1="305.111" x2="321.388" y2="305.111" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="322.807" y1="309.238" x2="334.16" y2="309.238" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="322.807" y1="310.614" x2="334.16" y2="310.614" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="322.807" y1="311.989" x2="334.16" y2="311.989" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="339.837" y="302.359" width="2.83837" height="2.75126" fill="none"/><rect x="339.837" y="302.359" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="308.652" y="359.347" width="31.222" height="16.5076" fill="#ff0b22"/><rect x="308.652" y="359.347" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="310.071" y1="360.723" x2="317.167" y2="360.723" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="310.071" y1="362.099" x2="317.167" y2="362.099" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="310.071" y1="363.474" x2="317.167" y2="363.474" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="318.586" y1="367.601" x2="329.939" y2="367.601" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="318.586" y1="368.977" x2="329.939" y2="368.977" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="318.586" y1="370.352" x2="329.939" y2="370.352" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="335.616" y="360.723" width="2.83837" height="2.75126" fill="none"/><rect x="335.616" y="360.723" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="312.446" y="365.767" width="31.222" height="16.5076" fill="#ff0b22"/><rect x="312.446" y="365.767" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="313.865" y1="367.142" x2="320.961" y2="367.142" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="313.865" y1="368.519" x2="320.961" y2="368.519" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="313.865" y1="369.894" x2="320.961" y2="369.894" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="322.38" y1="374.021" x2="333.733" y2="374.021" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="322.38" y1="375.397" x2="333.733" y2="375.397" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="322.38" y1="376.772" x2="333.733" y2="376.772" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="339.41" y="367.142" width="2.83837" height="2.75126" fill="none"/><rect x="339.41" y="367.142" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><text transform="translate(26.796997 79.00001)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="42.09546" y="9" textLength="88.80908">routing_key=myqueue</tspan></text><text transform="translate(202.031 79.00001)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="10.472812" y="9" textLength="64.296387">routing_key=foo</tspan></text><g id="id2284_Graphic"><path d="M 329.00702 107.000005 L 423.00702 107.000005 C 427.97758 107.000005 432.00702 111.02944 432.00702 116.000005 L 432.00702 136.000005 C 432.00702 140.97057 427.97758 145.000005 423.00702 145.000005 L 329.00702 145.000005 C 324.03645 145.000005 320.00702 140.97057 320.00702 136.000005 L 320.00702 116.000005 C 320.00702 111.02944 324.03645 107.000005 329.00702 107.000005 Z" fill="#acffa2"/><path d="M 329.00702 107.000005 L 423.00702 107.000005 C 427.97758 107.000005 432.00702 111.02944 432.00702 116.000005 L 432.00702 136.000005 C 432.00702 140.97057 427.97758 145.000005 423.00702 145.000005 L 329.00702 145.000005 C 324.03645 145.000005 320.00702 140.97057 320.00702 136.000005 L 320.00702 116.000005 C 320.00702 111.02944 324.03645 107.000005 329.00702 107.000005 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(325.00702 112.000005)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="0" y="11" textLength="64.68164">Producer C</tspan></text></g><text transform="translate(333.38602 79.00001)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="9.473056" y="9" textLength="66.2959">routing_key=qux</tspan></text><path d="M 348.5369 145.28732 C 342.97682 149.191155 347.46709 154.21483 331.855 157 C 316.24291 159.78517 271.83745 152.99187 254.855 162 C 243.4814 168.03298 239.89471 180.65409 236.27266 193.24423" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/><path d="M 147.98082 145.24257 C 161.65251 152.82762 181.23191 161.374425 189 168 C 196.76809 174.62558 193.26267 177.8337 194.594 185 C 194.99444 187.15549 195.29843 189.58266 195.54949 192.1589" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/><path d="M 240.89769 145.99098 C 240.38351 148.66039 243.08474 149.24897 239.355 154 C 235.62526 158.75103 223.08431 164.99963 218.517 174.5 C 216.17447 179.37265 215.08286 185.64978 214.27983 192.25062" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/><rect x="393" y="96.08351" width="31.222" height="16.5076" fill="#0d46ff"/><rect x="393" y="96.08351" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="394.419" y1="97.45851" x2="401.515" y2="97.45851" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="394.419" y1="98.83451" x2="401.515" y2="98.83451" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="394.419" y1="100.20951" x2="401.515" y2="100.20951" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="402.934" y1="104.33651" x2="414.287" y2="104.33651" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="402.934" y1="105.71251" x2="414.287" y2="105.71251" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="402.934" y1="107.08751" x2="414.287" y2="107.08751" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="419.964" y="97.45851" width="2.83837" height="2.75126" fill="none"/><rect x="419.964" y="97.45851" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/></g></g></svg> diff --git a/qpid/doc/book/src/java-broker/images/Exchange-Fanout.png b/qpid/doc/book/src/java-broker/images/Exchange-Fanout.png Binary files differdeleted file mode 100644 index 1e7f8ca397..0000000000 --- a/qpid/doc/book/src/java-broker/images/Exchange-Fanout.png +++ /dev/null diff --git a/qpid/doc/book/src/java-broker/images/Exchange-Fanout.svg b/qpid/doc/book/src/java-broker/images/Exchange-Fanout.svg deleted file mode 100644 index 2768886c48..0000000000 --- a/qpid/doc/book/src/java-broker/images/Exchange-Fanout.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="139 112 321 304" width="321pt" height="304pt"><metadata xmlns:dc="http://purl.org/dc/elements/1.1/"><dc:date>2013-10-01 22:37Z</dc:date><!-- Produced by OmniGraffle Professional 5.4.4 --></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><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><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.2 0 L 0 -1.2 L 0 1.2 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/></g></marker></defs><g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1"><title>Canvas 5</title><g><title>Layer 1</title><g><use xl:href="#id2069_Graphic" filter="url(#Shadow)"/><use xl:href="#id2082_Graphic" filter="url(#Shadow)"/><use xl:href="#id2083_Graphic" filter="url(#Shadow)"/><use xl:href="#id2120_Graphic" filter="url(#Shadow)"/><use xl:href="#id2158_Graphic" filter="url(#Shadow)"/><use xl:href="#id2196_Graphic" filter="url(#Shadow)"/></g><g id="id2069_Graphic"><path d="M 170.145 132 L 431 132 C 435.97056 132 440 136.02944 440 141 L 440 161 C 440 165.97056 435.97056 170 431 170 L 170.145 170 C 165.17444 170 161.145 165.97056 161.145 161 L 161.145 141 C 161.145 136.02944 165.17444 132 170.145 132 Z" fill="#acffa2"/><path d="M 170.145 132 L 431 132 C 435.97056 132 440 136.02944 440 141 L 440 161 C 440 165.97056 435.97056 170 431 170 L 170.145 170 C 165.17444 170 161.145 165.97056 161.145 161 L 161.145 141 C 161.145 136.02944 165.17444 132 170.145 132 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(166.145 137)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="0" y="11" textLength="52.68164">Producer</tspan></text></g><g id="id2082_Graphic"><path d="M 168 191.924 L 431 191.924 C 435.97056 191.924 440 195.95344 440 200.924 L 440 383 C 440 387.97056 435.97056 392 431 392 L 168 392 C 163.02944 392 159 387.97056 159 383 L 159 200.924 C 159 195.95344 163.02944 191.924 168 191.924 Z" fill="#78caff"/><path d="M 168 191.924 L 431 191.924 C 435.97056 191.924 440 195.95344 440 200.924 L 440 383 C 440 387.97056 435.97056 392 431 392 L 168 392 C 163.02944 392 159 387.97056 159 383 L 159 200.924 C 159 195.95344 163.02944 191.924 168 191.924 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(164 196.924)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="0" y="11" textLength="69.345703">Qpid Broker</tspan></text></g><g id="id2083_Graphic"><path d="M 175.42 240.5 L 312.5 240.5 C 317.47056 240.5 321.5 244.52944 321.5 249.5 L 321.5 269.5 C 321.5 274.47056 317.47056 278.5 312.5 278.5 L 175.42 278.5 C 170.44944 278.5 166.42 274.47056 166.42 269.5 L 166.42 249.5 C 166.42 244.52944 170.44944 240.5 175.42 240.5 Z" fill="#a788ff"/><path d="M 175.42 240.5 L 312.5 240.5 C 317.47056 240.5 321.5 244.52944 321.5 249.5 L 321.5 269.5 C 321.5 274.47056 317.47056 278.5 312.5 278.5 L 175.42 278.5 C 170.44944 278.5 166.42 274.47056 166.42 269.5 L 166.42 249.5 C 166.42 244.52944 170.44944 240.5 175.42 240.5 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(171.42 245.5)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="0" y="11" textLength="64.664062">amq.fanout</tspan></text></g><path d="M 280.99889 170.35153 C 276.90333 174.40062 273.73998 175.77393 268.711 182.5 C 263.68202 189.22607 254.4898 201.12881 250.822 210.712 C 249.50102 214.16344 248.77526 217.662 248.32317 221.18214" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/><g id="id2120_Graphic"><path d="M 364.92 200.5 L 423.92 200.5 C 428.89056 200.5 432.92 204.52944 432.92 209.5 L 432.92 244.5 C 432.92 249.47056 428.89056 253.5 423.92 253.5 L 364.92 253.5 C 359.94944 253.5 355.92 249.47056 355.92 244.5 L 355.92 209.5 C 355.92 204.52944 359.94944 200.5 364.92 200.5 Z" fill="#93d9ff"/><path d="M 364.92 200.5 L 423.92 200.5 C 428.89056 200.5 432.92 204.52944 432.92 209.5 L 432.92 244.5 C 432.92 249.47056 428.89056 253.5 423.92 253.5 L 364.92 253.5 C 359.94944 253.5 355.92 249.47056 355.92 244.5 L 355.92 209.5 C 355.92 204.52944 359.94944 200.5 364.92 200.5 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(360.92 205.5)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="19.496094" y="11" textLength="28.007812">sub1</tspan></text></g><path d="M 298.44469 240.33408 C 310.86446 235.96522 327.14095 230.28589 337.56869 226.59386" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/><g id="id2158_Graphic"><path d="M 364.92 262.848 L 423.92 262.848 C 428.89056 262.848 432.92 266.87744 432.92 271.848 L 432.92 306.848 C 432.92 311.81856 428.89056 315.848 423.92 315.848 L 364.92 315.848 C 359.94944 315.848 355.92 311.81856 355.92 306.848 L 355.92 271.848 C 355.92 266.87744 359.94944 262.848 364.92 262.848 Z" fill="#93d9ff"/><path d="M 364.92 262.848 L 423.92 262.848 C 428.89056 262.848 432.92 266.87744 432.92 271.848 L 432.92 306.848 C 432.92 311.81856 428.89056 315.848 423.92 315.848 L 364.92 315.848 C 359.94944 315.848 355.92 311.81856 355.92 306.848 L 355.92 271.848 C 355.92 266.87744 359.94944 262.848 364.92 262.848 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(360.92 267.848)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="19.496094" y="11" textLength="28.007812">sub2</tspan></text></g><path d="M 295.42725 278.67456 C 308.7835 283.65054 326.71209 291.09168 335.5 293.604 C 335.857 293.70606 336.20043 293.80022 336.53099 293.88695" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/><g id="id2196_Graphic"><path d="M 364.92 325.196 L 423.92 325.196 C 428.89056 325.196 432.92 329.22544 432.92 334.196 L 432.92 369.196 C 432.92 374.16656 428.89056 378.196 423.92 378.196 L 364.92 378.196 C 359.94944 378.196 355.92 374.16656 355.92 369.196 L 355.92 334.196 C 355.92 329.22544 359.94944 325.196 364.92 325.196 Z" fill="#93d9ff"/><path d="M 364.92 325.196 L 423.92 325.196 C 428.89056 325.196 432.92 329.22544 432.92 334.196 L 432.92 369.196 C 432.92 374.16656 428.89056 378.196 423.92 378.196 L 364.92 378.196 C 359.94944 378.196 355.92 374.16656 355.92 369.196 L 355.92 334.196 C 355.92 329.22544 359.94944 325.196 364.92 325.196 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(360.92 330.196)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="19.496094" y="11" textLength="28.007812">sub3</tspan></text></g><path d="M 266.10958 278.82875 C 290.2373 299.88373 323.68641 329.52704 338.5 342 C 338.934 342.36542 339.3543 342.71778 339.76141 343.05758" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/><rect x="293.017" y="123" width="31.222" height="16.5076" fill="#ee0026"/><rect x="293.017" y="123" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="294.436" y1="124.376" x2="301.532" y2="124.376" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="294.436" y1="125.752" x2="301.532" y2="125.752" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="294.436" y1="127.127" x2="301.532" y2="127.127" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="302.951" y1="131.254" x2="314.305" y2="131.254" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="302.951" y1="132.63" x2="314.305" y2="132.63" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="302.951" y1="134.005" x2="314.305" y2="134.005" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="319.981" y="124.376" width="2.83837" height="2.75126" fill="none"/><rect x="319.981" y="124.376" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="283.295" y="128.508" width="31.222" height="16.5076" fill="#17ee07"/><rect x="283.295" y="128.508" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="284.715" y1="129.884" x2="291.811" y2="129.884" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="284.715" y1="131.26" x2="291.811" y2="131.26" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="284.715" y1="132.635" x2="291.811" y2="132.635" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="293.23" y1="136.762" x2="304.583" y2="136.762" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="293.23" y1="138.138" x2="304.583" y2="138.138" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="293.23" y1="139.513" x2="304.583" y2="139.513" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="310.26" y="129.884" width="2.83837" height="2.75126" fill="none"/><rect x="310.26" y="129.884" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="276.906" y="133.722" width="31.222" height="16.5076" fill="#ff9"/><rect x="276.906" y="133.722" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="278.325" y1="135.098" x2="285.421" y2="135.098" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="278.325" y1="136.474" x2="285.421" y2="136.474" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="278.325" y1="137.849" x2="285.421" y2="137.849" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="286.84" y1="141.976" x2="298.193" y2="141.976" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="286.84" y1="143.352" x2="298.193" y2="143.352" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="286.84" y1="144.727" x2="298.193" y2="144.727" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="303.87" y="135.098" width="2.83837" height="2.75126" fill="none"/><rect x="303.87" y="135.098" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="392.111" y="217.97" width="31.222" height="16.5076" fill="#ee0026"/><rect x="392.111" y="217.97" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="393.53" y1="219.346" x2="400.626" y2="219.346" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="393.53" y1="220.722" x2="400.626" y2="220.722" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="393.53" y1="222.097" x2="400.626" y2="222.097" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="402.045" y1="226.224" x2="413.399" y2="226.224" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="402.045" y1="227.6" x2="413.399" y2="227.6" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="402.045" y1="228.975" x2="413.399" y2="228.975" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="419.075" y="219.346" width="2.83837" height="2.75126" fill="none"/><rect x="419.075" y="219.346" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="382.389" y="223.477" width="31.222" height="16.5076" fill="#17ee07"/><rect x="382.389" y="223.477" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="383.809" y1="224.853" x2="390.905" y2="224.853" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="383.809" y1="226.229" x2="390.905" y2="226.229" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="383.809" y1="227.604" x2="390.905" y2="227.604" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="392.324" y1="231.731" x2="403.677" y2="231.731" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="392.324" y1="233.107" x2="403.677" y2="233.107" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="392.324" y1="234.482" x2="403.677" y2="234.482" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="409.354" y="224.853" width="2.83837" height="2.75126" fill="none"/><rect x="409.354" y="224.853" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="376" y="228.691" width="31.222" height="16.5076" fill="#ff9"/><rect x="376" y="228.691" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="377.419" y1="230.067" x2="384.515" y2="230.067" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="377.419" y1="231.443" x2="384.515" y2="231.443" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="377.419" y1="232.818" x2="384.515" y2="232.818" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="385.934" y1="236.945" x2="397.287" y2="236.945" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="385.934" y1="238.321" x2="397.287" y2="238.321" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="385.934" y1="239.696" x2="397.287" y2="239.696" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="402.964" y="230.067" width="2.83837" height="2.75126" fill="none"/><rect x="402.964" y="230.067" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="392.111" y="284" width="31.222" height="16.5076" fill="#ee0026"/><rect x="392.111" y="284" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="393.53" y1="285.376" x2="400.626" y2="285.376" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="393.53" y1="286.752" x2="400.626" y2="286.752" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="393.53" y1="288.127" x2="400.626" y2="288.127" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="402.045" y1="292.254" x2="413.399" y2="292.254" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="402.045" y1="293.63" x2="413.399" y2="293.63" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="402.045" y1="295.005" x2="413.399" y2="295.005" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="419.075" y="285.376" width="2.83837" height="2.75126" fill="none"/><rect x="419.075" y="285.376" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="382.389" y="289.507" width="31.222" height="16.5076" fill="#17ee07"/><rect x="382.389" y="289.507" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="383.809" y1="290.883" x2="390.905" y2="290.883" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="383.809" y1="292.259" x2="390.905" y2="292.259" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="383.809" y1="293.634" x2="390.905" y2="293.634" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="392.324" y1="297.761" x2="403.677" y2="297.761" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="392.324" y1="299.137" x2="403.677" y2="299.137" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="392.324" y1="300.512" x2="403.677" y2="300.512" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="409.354" y="290.883" width="2.83837" height="2.75126" fill="none"/><rect x="409.354" y="290.883" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="376" y="294.721" width="31.222" height="16.5076" fill="#ff9"/><rect x="376" y="294.721" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="377.419" y1="296.097" x2="384.515" y2="296.097" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="377.419" y1="297.473" x2="384.515" y2="297.473" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="377.419" y1="298.848" x2="384.515" y2="298.848" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="385.934" y1="302.975" x2="397.287" y2="302.975" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="385.934" y1="304.351" x2="397.287" y2="304.351" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="385.934" y1="305.726" x2="397.287" y2="305.726" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="402.964" y="296.097" width="2.83837" height="2.75126" fill="none"/><rect x="402.964" y="296.097" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="392.111" y="344.523" width="31.222" height="16.5076" fill="#ee0026"/><rect x="392.111" y="344.523" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="393.53" y1="345.899" x2="400.626" y2="345.899" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="393.53" y1="347.275" x2="400.626" y2="347.275" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="393.53" y1="348.65" x2="400.626" y2="348.65" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="402.045" y1="352.777" x2="413.399" y2="352.777" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="402.045" y1="354.153" x2="413.399" y2="354.153" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="402.045" y1="355.528" x2="413.399" y2="355.528" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="419.075" y="345.899" width="2.83837" height="2.75126" fill="none"/><rect x="419.075" y="345.899" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="382.389" y="350.03" width="31.222" height="16.5076" fill="#17ee07"/><rect x="382.389" y="350.03" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="383.809" y1="351.406" x2="390.905" y2="351.406" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="383.809" y1="352.782" x2="390.905" y2="352.782" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="383.809" y1="354.157" x2="390.905" y2="354.157" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="392.324" y1="358.284" x2="403.677" y2="358.284" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="392.324" y1="359.66" x2="403.677" y2="359.66" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="392.324" y1="361.035" x2="403.677" y2="361.035" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="409.354" y="351.406" width="2.83837" height="2.75126" fill="none"/><rect x="409.354" y="351.406" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="376" y="355.244" width="31.222" height="16.5076" fill="#ff9"/><rect x="376" y="355.244" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="377.419" y1="356.62" x2="384.515" y2="356.62" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="377.419" y1="357.996" x2="384.515" y2="357.996" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="377.419" y1="359.371" x2="384.515" y2="359.371" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="385.934" y1="363.498" x2="397.287" y2="363.498" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="385.934" y1="364.874" x2="397.287" y2="364.874" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="385.934" y1="366.249" x2="397.287" y2="366.249" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="402.964" y="356.62" width="2.83837" height="2.75126" fill="none"/><rect x="402.964" y="356.62" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/></g></g></svg> diff --git a/qpid/doc/book/src/java-broker/images/Exchange-Topic-Hierarchical.png b/qpid/doc/book/src/java-broker/images/Exchange-Topic-Hierarchical.png Binary files differdeleted file mode 100644 index faa7507dad..0000000000 --- a/qpid/doc/book/src/java-broker/images/Exchange-Topic-Hierarchical.png +++ /dev/null diff --git a/qpid/doc/book/src/java-broker/images/Exchange-Topic-Hierarchical.svg b/qpid/doc/book/src/java-broker/images/Exchange-Topic-Hierarchical.svg deleted file mode 100644 index 28ac5a072b..0000000000 --- a/qpid/doc/book/src/java-broker/images/Exchange-Topic-Hierarchical.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="52 209 464 364" width="464pt" height="364pt"><metadata xmlns:dc="http://purl.org/dc/elements/1.1/"><dc:date>2013-10-01 22:37Z</dc:date><!-- Produced by OmniGraffle Professional 5.4.4 --></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><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><font-face font-family="Helvetica" font-size="9" 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><font-face font-family="Helvetica" font-size="9" units-per-em="1000" underline-position="-75.683594" underline-thickness="49.316406" slope="-1333.3334" x-height="539.55078" cap-height="719.72656" ascent="770.01953" descent="-229.98047" font-style="italic" font-weight="bold"><font-face-src><font-face-name name="Helvetica-BoldOblique"/></font-face-src></font-face><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.2 0 L 0 -1.2 L 0 1.2 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/></g></marker></defs><g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1"><title>Canvas 3</title><g><title>Layer 1</title><g><use xl:href="#id2069_Graphic" filter="url(#Shadow)"/><use xl:href="#id2082_Graphic" filter="url(#Shadow)"/><use xl:href="#id2083_Graphic" filter="url(#Shadow)"/><use xl:href="#id2120_Graphic" filter="url(#Shadow)"/><use xl:href="#id2158_Graphic" filter="url(#Shadow)"/><use xl:href="#id2196_Graphic" filter="url(#Shadow)"/><use xl:href="#id2235_Graphic" filter="url(#Shadow)"/><use xl:href="#id2236_Graphic" filter="url(#Shadow)"/><use xl:href="#id2237_Graphic" filter="url(#Shadow)"/></g><g id="id2069_Graphic"><path d="M 81.699857 247.80647 L 163.69994 247.80647 C 168.6705 247.80647 172.69994 251.83591 172.69994 256.80647 L 172.69994 276.80647 C 172.69994 281.77704 168.6705 285.80647 163.69994 285.80647 L 81.699857 285.80647 C 76.729294 285.80647 72.699857 281.77704 72.699857 276.80647 L 72.699857 256.80647 C 72.699857 251.83591 76.729294 247.80647 81.699857 247.80647 Z" fill="#acffa2"/><path d="M 81.699857 247.80647 L 163.69994 247.80647 C 168.6705 247.80647 172.69994 251.83591 172.69994 256.80647 L 172.69994 276.80647 C 172.69994 281.77704 168.6705 285.80647 163.69994 285.80647 L 81.699857 285.80647 C 76.729294 285.80647 72.699857 281.77704 72.699857 276.80647 L 72.699857 256.80647 C 72.699857 251.83591 76.729294 247.80647 81.699857 247.80647 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(77.699857 252.80647)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="0" y="11" textLength="56.015625">Producer </tspan><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="55.576172" y="11" textLength="8.6660156">A</tspan></text></g><g id="id2082_Graphic"><path d="M 170.34993 308.80649 L 389.34993 308.80649 C 394.3205 308.80649 398.34993 312.83592 398.34993 317.80649 L 398.34993 539.7315 C 398.34993 544.70205 394.3205 548.7315 389.34993 548.7315 L 170.34993 548.7315 C 165.37937 548.7315 161.34993 544.70205 161.34993 539.7315 L 161.34993 317.80649 C 161.34993 312.83592 165.37937 308.80649 170.34993 308.80649 Z" fill="#78caff"/><path d="M 170.34993 308.80649 L 389.34993 308.80649 C 394.3205 308.80649 398.34993 312.83592 398.34993 317.80649 L 398.34993 539.7315 C 398.34993 544.70205 394.3205 548.7315 389.34993 548.7315 L 170.34993 548.7315 C 165.37937 548.7315 161.34993 544.70205 161.34993 539.7315 L 161.34993 317.80649 C 161.34993 312.83592 165.37937 308.80649 170.34993 308.80649 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(166.34993 313.80649)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="0" y="11" textLength="69.345703">Qpid Broker</tspan></text></g><g id="id2083_Graphic"><path d="M 178.70493 355.91948 L 285.70493 355.91948 C 290.67549 355.91948 294.70493 359.94892 294.70493 364.91948 L 294.70493 432.91948 C 294.70493 437.89005 290.67549 441.91948 285.70493 441.91948 L 178.70493 441.91948 C 173.73437 441.91948 169.70493 437.89005 169.70493 432.91948 L 169.70493 364.91948 C 169.70493 359.94892 173.73437 355.91948 178.70493 355.91948 Z" fill="#a788ff"/><path d="M 178.70493 355.91948 L 285.70493 355.91948 C 290.67549 355.91948 294.70493 359.94892 294.70493 364.91948 L 294.70493 432.91948 C 294.70493 437.89005 290.67549 441.91948 285.70493 441.91948 L 178.70493 441.91948 C 173.73437 441.91948 169.70493 437.89005 169.70493 432.91948 L 169.70493 364.91948 C 169.70493 359.94892 173.73437 355.91948 178.70493 355.91948 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(174.70493 360.91948)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="0" y="11" textLength="56.671875">amq.topic</tspan></text></g><rect x="176.20493" y="419.31606" width="64" height="13.6119995" fill="white"/><rect x="176.20493" y="419.31606" width="64" height="13.6119995" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(181.20493 420.62206)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="19.24585" y="9" textLength="15.508301">*.uk</tspan></text><rect x="240.20493" y="419.31606" width="48.000015" height="13.6119995" fill="white"/><rect x="240.20493" y="419.31606" width="48.000015" height="13.6119995" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(245.20493 420.62206)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="9.241951" y="9" textLength="19.516113">sub3</tspan></text><rect x="240.20493" y="405.70406" width="48.000015" height="13.6119995" fill="white"/><rect x="240.20493" y="405.70406" width="48.000015" height="13.6119995" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(245.20493 407.01006)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="9.241951" y="9" textLength="19.516113">sub2</tspan></text><rect x="176.20493" y="405.70406" width="64" height="13.6119995" fill="white"/><rect x="176.20493" y="405.70406" width="64" height="13.6119995" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(181.20493 407.01006)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="10.4919434" y="9" textLength="33.016113">news.uk</tspan></text><rect x="240.20493" y="392.09218" width="48.000015" height="13.6118774" fill="white"/><rect x="240.20493" y="392.09218" width="48.000015" height="13.6118774" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(245.20493 393.39812)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="9.241951" y="9" textLength="19.516113">sub1</tspan></text><rect x="176.20493" y="392.09218" width="64" height="13.6118774" fill="white"/><rect x="176.20493" y="392.09218" width="64" height="13.6118774" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(181.20493 393.39812)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="12.741943" y="9" textLength="28.516113">news.#</tspan></text><rect x="240.20493" y="381.31612" width="48.000015" height="10.776062" fill="white"/><rect x="240.20493" y="381.31612" width="48.000015" height="10.776062" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(245.20493 381.20415)" fill="black"><tspan font-family="Helvetica" font-size="9" font-style="italic" font-weight="bold" x="5.7482986" y="9" textLength="26.503418">queue</tspan></text><rect x="176.20493" y="381.31612" width="64" height="10.776062" fill="white"/><rect x="176.20493" y="381.31612" width="64" height="10.776062" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(181.20493 381.20415)" fill="black"><tspan font-family="Helvetica" font-size="9" font-style="italic" font-weight="bold" x=".74487305" y="9" textLength="52.510254">binding_key</tspan></text><path d="M 153.46981 286.07181 C 161.04743 290.81623 166.92217 293.43473 176.20493 300.30649 C 185.48769 307.17824 202.16984 318.1179 209.17193 327.30649 C 211.60625 330.50095 213.07719 333.74156 214.08712 337.0042" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/><g id="id2120_Graphic"><path d="M 323.26993 354.34449 L 382.26993 354.34449 C 387.2405 354.34449 391.26993 358.37392 391.26993 363.34449 L 391.26993 398.34449 C 391.26993 403.31505 387.2405 407.34449 382.26993 407.34449 L 323.26993 407.34449 C 318.29937 407.34449 314.26993 403.31505 314.26993 398.34449 L 314.26993 363.34449 C 314.26993 358.37392 318.29937 354.34449 323.26993 354.34449 Z" fill="#93d9ff"/><path d="M 323.26993 354.34449 L 382.26993 354.34449 C 387.2405 354.34449 391.26993 358.37392 391.26993 363.34449 L 391.26993 398.34449 C 391.26993 403.31505 387.2405 407.34449 382.26993 407.34449 L 323.26993 407.34449 C 318.29937 407.34449 314.26993 403.31505 314.26993 398.34449 L 314.26993 363.34449 C 314.26993 358.37392 318.29937 354.34449 323.26993 354.34449 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(319.26993 359.34449)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="19.496094" y="11" textLength="28.007812">sub1</tspan></text></g><path d="M 283.20617 355.59578 C 289.20516 350.49986 296.27813 343.43139 301.20493 340.30649 C 306.13173 337.18158 308.24742 334.5667 312.76993 336.84449 C 313.84402 337.38546 314.99355 338.31366 316.19163 339.49113" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/><g id="id2158_Graphic"><path d="M 323.26993 417.26849 L 382.26993 417.26849 C 387.2405 417.26849 391.26993 421.29792 391.26993 426.26849 L 391.26993 461.26849 C 391.26993 466.23905 387.2405 470.2685 382.26993 470.2685 L 323.26993 470.2685 C 318.29937 470.2685 314.26993 466.23905 314.26993 461.26849 L 314.26993 426.26849 C 314.26993 421.29792 318.29937 417.26849 323.26993 417.26849 Z" fill="#93d9ff"/><path d="M 323.26993 417.26849 L 382.26993 417.26849 C 387.2405 417.26849 391.26993 421.29792 391.26993 426.26849 L 391.26993 461.26849 C 391.26993 466.23905 387.2405 470.2685 382.26993 470.2685 L 323.26993 470.2685 C 318.29937 470.2685 314.26993 466.23905 314.26993 461.26849 L 314.26993 426.26849 C 314.26993 421.29792 318.29937 417.26849 323.26993 417.26849 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(319.26993 422.26849)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="19.496094" y="11" textLength="28.007812">sub2</tspan></text></g><path d="M 295.20184 391.88853 C 299.9174 391.36223 302.1593 387.06715 309.34993 390.30949 C 313.65869 392.25235 321.3357 397.83387 327.92422 402.946" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/><g id="id2196_Graphic"><path d="M 323.26993 480.1935 L 382.26993 480.1935 C 387.2405 480.1935 391.26993 484.22292 391.26993 489.1935 L 391.26993 524.1935 C 391.26993 529.16405 387.2405 533.1935 382.26993 533.1935 L 323.26993 533.1935 C 318.29937 533.1935 314.26993 529.16405 314.26993 524.1935 L 314.26993 489.1935 C 314.26993 484.22292 318.29937 480.1935 323.26993 480.1935 Z" fill="#93d9ff"/><path d="M 323.26993 480.1935 L 382.26993 480.1935 C 387.2405 480.1935 391.26993 484.22292 391.26993 489.1935 L 391.26993 524.1935 C 391.26993 529.16405 387.2405 533.1935 382.26993 533.1935 L 323.26993 533.1935 C 318.29937 533.1935 314.26993 529.16405 314.26993 524.1935 L 314.26993 489.1935 C 314.26993 484.22292 318.29937 480.1935 323.26993 480.1935 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(319.26993 485.1935)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="19.496094" y="11" textLength="28.007812">sub3</tspan></text></g><path d="M 272.52525 442.28566 C 276.13311 446.16607 278.5463 451.01454 283.34993 453.92806 C 288.15356 456.84157 294.6819 455.44752 301.34993 459.76849 C 303.9937 461.48168 306.84803 463.9417 309.78764 466.7043" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/><g id="id2235_Graphic"><path d="M 190.46685 247.91247 L 272.46693 247.91247 C 277.4375 247.91247 281.46693 251.94191 281.46693 256.91247 L 281.46693 276.91247 C 281.46693 281.88304 277.4375 285.91247 272.46693 285.91247 L 190.46685 285.91247 C 185.49629 285.91247 181.46685 281.88304 181.46685 276.91247 L 181.46685 256.91247 C 181.46685 251.94191 185.49629 247.91247 190.46685 247.91247 Z" fill="#acffa2"/><path d="M 190.46685 247.91247 L 272.46693 247.91247 C 277.4375 247.91247 281.46693 251.94191 281.46693 256.91247 L 281.46693 276.91247 C 281.46693 281.88304 277.4375 285.91247 272.46693 285.91247 L 190.46685 285.91247 C 185.49629 285.91247 181.46685 281.88304 181.46685 276.91247 L 181.46685 256.91247 C 181.46685 251.94191 185.49629 247.91247 190.46685 247.91247 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(186.46685 252.91247)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="0" y="11" textLength="64.68164">Producer B</tspan></text></g><g id="id2236_Graphic"><path d="M 296.99493 247.80649 L 378.99501 247.80649 C 383.96558 247.80649 387.99501 251.83592 387.99501 256.80649 L 387.99501 276.80649 C 387.99501 281.77705 383.96558 285.80649 378.99501 285.80649 L 296.99493 285.80649 C 292.02437 285.80649 287.99493 281.77705 287.99493 276.80649 L 287.99493 256.80649 C 287.99493 251.83592 292.02437 247.80649 296.99493 247.80649 Z" fill="#acffa2"/><path d="M 296.99493 247.80649 L 378.99501 247.80649 C 383.96558 247.80649 387.99501 251.83592 387.99501 256.80649 L 387.99501 276.80649 C 387.99501 281.77705 383.96558 285.80649 378.99501 285.80649 L 296.99493 285.80649 C 292.02437 285.80649 287.99493 281.77705 287.99493 276.80649 L 287.99493 256.80649 C 287.99493 251.83592 292.02437 247.80649 296.99493 247.80649 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(292.99493 252.80649)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="0" y="11" textLength="64.68164">Producer C</tspan></text></g><rect x="107.088896" y="232.4977" width="31.222" height="16.5076" fill="#ee0026"/><rect x="107.088896" y="232.4977" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="108.507896" y1="233.8737" x2="115.603896" y2="233.8737" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="108.507896" y1="235.2497" x2="115.603896" y2="235.2497" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="108.507896" y1="236.6247" x2="115.603896" y2="236.6247" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="117.022896" y1="240.7517" x2="128.3769" y2="240.7517" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="117.022896" y1="242.1277" x2="128.3769" y2="242.1277" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="117.022896" y1="243.5027" x2="128.3769" y2="243.5027" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="134.0529" y="233.8737" width="2.83837" height="2.75126" fill="none"/><rect x="134.0529" y="233.8737" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><g id="id2237_Graphic"><path d="M 404.967 247.91247 L 486.96707 247.91247 C 491.93764 247.91247 495.96707 251.94191 495.96707 256.91247 L 495.96707 276.91247 C 495.96707 281.88304 491.93764 285.91247 486.96707 285.91247 L 404.967 285.91247 C 399.99643 285.91247 395.967 281.88304 395.967 276.91247 L 395.967 256.91247 C 395.967 251.94191 399.99643 247.91247 404.967 247.91247 Z" fill="#acffa2"/><path d="M 404.967 247.91247 L 486.96707 247.91247 C 491.93764 247.91247 495.96707 251.94191 495.96707 256.91247 L 495.96707 276.91247 C 495.96707 281.88304 491.93764 285.91247 486.96707 285.91247 L 404.967 285.91247 C 399.99643 285.91247 395.967 281.88304 395.967 276.91247 L 395.967 256.91247 C 395.967 251.94191 399.99643 247.91247 404.967 247.91247 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(400.967 252.91247)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="0" y="11" textLength="64.68164">Producer D</tspan></text></g><text transform="translate(81.111363 218.61297)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x=".099365234" y="9" textLength="84.80127">routing_key=news.uk</tspan></text><text transform="translate(189.37836 218.61297)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x=".34667969" y="9" textLength="85.30664">routing_key=news.de</tspan></text><text transform="translate(292.90649 218.61297)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x=".3413086" y="9" textLength="83.80371">routing_key=weather</tspan><tspan font-family="Helvetica" font-size="9" font-weight="500" x="83.65283" y="9" textLength="12.0058594">.uk</tspan></text><text transform="translate(398.87849 218.61297)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x=".088623047" y="9" textLength="83.80371">routing_key=weather</tspan><tspan font-family="Helvetica" font-size="9" font-weight="500" x="83.400146" y="9" textLength="12.5112305">.de</tspan></text><rect x="215.85588" y="232.4977" width="31.222" height="16.5076" fill="#17ee07"/><rect x="215.85588" y="232.4977" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="217.27588" y1="233.8737" x2="224.37188" y2="233.8737" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="217.27588" y1="235.2497" x2="224.37188" y2="235.2497" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="217.27588" y1="236.6247" x2="224.37188" y2="236.6247" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="225.79088" y1="240.7517" x2="237.14388" y2="240.7517" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="225.79088" y1="242.1277" x2="237.14388" y2="242.1277" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="225.79088" y1="243.5027" x2="237.14388" y2="243.5027" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="242.82088" y="233.8737" width="2.83837" height="2.75126" fill="none"/><rect x="242.82088" y="233.8737" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="322.38399" y="234.99617" width="31.222" height="16.5076" fill="#151fee"/><rect x="322.38399" y="234.99617" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="323.80299" y1="236.37217" x2="330.89899" y2="236.37217" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="323.80299" y1="237.74817" x2="330.89899" y2="237.74817" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="323.80299" y1="239.12317" x2="330.89899" y2="239.12317" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="332.31799" y1="243.25017" x2="343.67199" y2="243.25017" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="332.31799" y1="244.62617" x2="343.67199" y2="244.62617" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="332.31799" y1="246.00117" x2="343.67199" y2="246.00117" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="349.34799" y="236.37217" width="2.83837" height="2.75126" fill="none"/><rect x="349.34799" y="236.37217" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="430.35602" y="233.30401" width="31.222" height="16.5076" fill="#ff9"/><rect x="430.35602" y="233.30401" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="431.77502" y1="234.68001" x2="438.87102" y2="234.68001" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="431.77502" y1="236.056" x2="438.87102" y2="236.056" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="431.77502" y1="237.431" x2="438.87102" y2="237.431" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="440.29002" y1="241.558" x2="451.64302" y2="241.558" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="440.29002" y1="242.934" x2="451.64302" y2="242.934" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="440.29002" y1="244.309" x2="451.64302" y2="244.309" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="457.32002" y="234.68001" width="2.83837" height="2.75126" fill="none"/><rect x="457.32002" y="234.68001" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><path d="M 238.00501 286.38647 C 239.78647 291.69261 242.7925 295.82047 243.34993 302.30649 C 243.90736 308.7925 242.30674 316.45457 241.34993 325.30649 C 240.97244 328.79884 240.50454 332.66089 239.99976 336.67375" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/><path d="M 321.99586 286.19211 C 317.01305 292.22963 315.81937 297.62143 307.04593 304.30649 C 298.27248 310.99155 278.11851 317.77936 269.34993 326.30649 C 265.69521 329.86056 263.35894 333.83017 261.51688 337.95542" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/><path d="M 402.4166 285.86763 C 389.06238 291.68 380.30008 296.0674 362.34993 303.30649 C 344.39978 310.54557 309.90419 320.60053 294.70493 329.30649 C 288.48867 332.86708 284.7298 336.44155 281.92084 340.0213" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/><rect x="349.73893" y="379.80949" width="31.222" height="16.5076" fill="#17ee07"/><rect x="349.73893" y="379.80949" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="351.15893" y1="381.18549" x2="358.25493" y2="381.18549" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="351.15893" y1="382.56149" x2="358.25493" y2="382.56149" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="351.15893" y1="383.93649" x2="358.25493" y2="383.93649" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="359.67393" y1="388.06349" x2="371.02693" y2="388.06349" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="359.67393" y1="389.43949" x2="371.02693" y2="389.43949" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="359.67393" y1="390.81449" x2="371.02693" y2="390.81449" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="376.70393" y="381.18549" width="2.83837" height="2.75126" fill="none"/><rect x="376.70393" y="381.18549" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="355.41593" y="386.30949" width="31.222" height="16.5076" fill="#ee0026"/><rect x="355.41593" y="386.30949" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="356.83493" y1="387.68549" x2="363.93093" y2="387.68549" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="356.83493" y1="389.06149" x2="363.93093" y2="389.06149" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="356.83493" y1="390.43649" x2="363.93093" y2="390.43649" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="365.34993" y1="394.56349" x2="376.70393" y2="394.56349" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="365.34993" y1="395.93949" x2="376.70393" y2="395.93949" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="365.34993" y1="397.31449" x2="376.70393" y2="397.31449" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="382.37993" y="387.68549" width="2.83837" height="2.75126" fill="none"/><rect x="382.37993" y="387.68549" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="355.41593" y="441.28849" width="31.222" height="16.5076" fill="#ee0026"/><rect x="355.41593" y="441.28849" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="356.83493" y1="442.66449" x2="363.93093" y2="442.66449" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="356.83493" y1="444.04049" x2="363.93093" y2="444.04049" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="356.83493" y1="445.41549" x2="363.93093" y2="445.41549" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="365.34993" y1="449.54249" x2="376.70393" y2="449.54249" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="365.34993" y1="450.91849" x2="376.70393" y2="450.91849" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="365.34993" y1="452.29349" x2="376.70393" y2="452.29349" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="382.37993" y="442.66449" width="2.83837" height="2.75126" fill="none"/><rect x="382.37993" y="442.66449" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="349.73893" y="498.4395" width="31.222" height="16.5076" fill="#ee0026"/><rect x="349.73893" y="498.4395" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="351.15793" y1="499.8155" x2="358.25393" y2="499.8155" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="351.15793" y1="501.1915" x2="358.25393" y2="501.1915" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="351.15793" y1="502.5665" x2="358.25393" y2="502.5665" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="359.67293" y1="506.6935" x2="371.02693" y2="506.6935" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="359.67293" y1="508.0695" x2="371.02693" y2="508.0695" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="359.67293" y1="509.4445" x2="371.02693" y2="509.4445" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="376.70293" y="499.8155" width="2.83837" height="2.75126" fill="none"/><rect x="376.70293" y="499.8155" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="355.41593" y="505.8065" width="31.222" height="16.5076" fill="#151fee"/><rect x="355.41593" y="505.8065" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="356.83493" y1="507.1825" x2="363.93093" y2="507.1825" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="356.83493" y1="508.5585" x2="363.93093" y2="508.5585" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="356.83493" y1="509.9335" x2="363.93093" y2="509.9335" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="365.34993" y1="514.0605" x2="376.70393" y2="514.0605" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="365.34993" y1="515.4365" x2="376.70393" y2="515.4365" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="365.34993" y1="516.8115" x2="376.70393" y2="516.8115" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="382.37993" y="507.1825" width="2.83837" height="2.75126" fill="none"/><rect x="382.37993" y="507.1825" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/></g></g></svg> diff --git a/qpid/doc/book/src/java-broker/images/Exchange-Topic-JMSSelector.png b/qpid/doc/book/src/java-broker/images/Exchange-Topic-JMSSelector.png Binary files differdeleted file mode 100644 index 7272949204..0000000000 --- a/qpid/doc/book/src/java-broker/images/Exchange-Topic-JMSSelector.png +++ /dev/null diff --git a/qpid/doc/book/src/java-broker/images/Exchange-Topic-JMSSelector.svg b/qpid/doc/book/src/java-broker/images/Exchange-Topic-JMSSelector.svg deleted file mode 100644 index 568761a18d..0000000000 --- a/qpid/doc/book/src/java-broker/images/Exchange-Topic-JMSSelector.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="100 43 404 422" width="404pt" height="422pt"><metadata xmlns:dc="http://purl.org/dc/elements/1.1/"><dc:date>2013-10-01 22:37Z</dc:date><!-- Produced by OmniGraffle Professional 5.4.4 --></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><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><font-face font-family="Helvetica" font-size="9" 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><font-face font-family="Helvetica" font-size="9" units-per-em="1000" underline-position="-75.683594" underline-thickness="49.316406" slope="-1333.3334" x-height="539.55078" cap-height="719.72656" ascent="770.01953" descent="-229.98047" font-style="italic" font-weight="bold"><font-face-src><font-face-name name="Helvetica-BoldOblique"/></font-face-src></font-face><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.2 0 L 0 -1.2 L 0 1.2 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/></g></marker></defs><g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1"><title>Canvas 4</title><g><title>Layer 1</title><g><use xl:href="#id2069_Graphic" filter="url(#Shadow)"/><use xl:href="#id2082_Graphic" filter="url(#Shadow)"/><use xl:href="#id2083_Graphic" filter="url(#Shadow)"/><use xl:href="#id2120_Graphic" filter="url(#Shadow)"/><use xl:href="#id2158_Graphic" filter="url(#Shadow)"/><use xl:href="#id2196_Graphic" filter="url(#Shadow)"/><use xl:href="#id2711_Graphic" filter="url(#Shadow)"/></g><g id="id2069_Graphic"><path d="M 139 132 L 451.288 132 C 456.25856 132 460.288 136.02944 460.288 141 L 460.288 161 C 460.288 165.97056 456.25856 170 451.288 170 L 139 170 C 134.02944 170 130 165.97056 130 161 L 130 141 C 130 136.02944 134.02944 132 139 132 Z" fill="#acffa2"/><path d="M 139 132 L 451.288 132 C 456.25856 132 460.288 136.02944 460.288 141 L 460.288 161 C 460.288 165.97056 456.25856 170 451.288 170 L 139 170 C 134.02944 170 130 165.97056 130 161 L 130 141 C 130 136.02944 134.02944 132 139 132 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(135 137)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="0" y="11" textLength="52.68164">Producer</tspan></text></g><g id="id2082_Graphic"><path d="M 143.000015 185.848 L 451.288 185.848 C 456.25857 185.848 460.288 189.87744 460.288 194.848 L 460.288 431.424 C 460.288 436.39456 456.25857 440.424 451.288 440.424 L 143.000015 440.424 C 138.02945 440.424 134.000015 436.39456 134.000015 431.424 L 134.000015 194.848 C 134.000015 189.87744 138.02945 185.848 143.000015 185.848 Z" fill="#78caff"/><path d="M 143.000015 185.848 L 451.288 185.848 C 456.25857 185.848 460.288 189.87744 460.288 194.848 L 460.288 431.424 C 460.288 436.39456 456.25857 440.424 451.288 440.424 L 143.000015 440.424 C 138.02945 440.424 134.000015 436.39456 134.000015 431.424 L 134.000015 194.848 C 134.000015 189.87744 138.02945 185.848 143.000015 185.848 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(139.000015 190.848)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="0" y="11" textLength="69.345703">Qpid Broker</tspan></text></g><g id="id2083_Graphic"><path d="M 152.39604 234.424 L 312 234.424 C 316.97056 234.424 321 238.45344 321 243.424 L 321 409 C 321 413.97057 316.97056 418 312 418 L 152.39604 418 C 147.42548 418 143.39604 413.97057 143.39604 409 L 143.39604 243.424 C 143.39604 238.45344 147.42548 234.424 152.39604 234.424 Z" fill="#a788ff"/><path d="M 152.39604 234.424 L 312 234.424 C 316.97056 234.424 321 238.45344 321 243.424 L 321 409 C 321 413.97057 316.97056 418 312 418 L 152.39604 418 C 147.42548 418 143.39604 413.97057 143.39604 409 L 143.39604 243.424 C 143.39604 238.45344 147.42548 234.424 152.39604 234.424 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(148.39604 239.424)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="0" y="11" textLength="56.671875">amq.topic</tspan></text></g><rect x="149.727025" y="391.12524" width="49.897038" height="21.874771" fill="white"/><rect x="149.727025" y="391.12524" width="49.897038" height="21.874771" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(154.72703 396.56262)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="3.1855793" y="9" textLength="33.525879">shipping</tspan></text><rect x="239.35857" y="391.12524" width="72.732437" height="21.874771" fill="white"/><rect x="239.35857" y="391.12524" width="72.732437" height="21.874771" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(244.35857 396.56262)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="6.3437576" y="9" textLength="50.044922">speed >= 10</tspan></text><rect x="199.62406" y="391.12523" width="39.734509" height="21.874771" fill="white"/><rect x="199.62406" y="391.12523" width="39.734509" height="21.874771" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(204.62406 391.06261)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="1.1145687" y="9" textLength="27.505371">storm_</tspan><tspan font-family="Helvetica" font-size="9" font-weight="500" x="6.113348" y="20" textLength="17.507812">alert</tspan></text><rect x="239.35857" y="353.12523" width="72.732437" height="37.999992" fill="white"/><rect x="239.35857" y="353.12523" width="72.732437" height="37.999992" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(244.35857 361.12523)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="2.7160721" y="9" textLength="59.80078">speed > 7 and </tspan><tspan font-family="Helvetica" font-size="9" font-weight="500" x="8.9716873" y="20" textLength="44.789062">speed < 10</tspan></text><rect x="239.35857" y="280" width="72.732437" height="35.125237" fill="white"/><rect x="239.35857" y="280" width="72.732437" height="35.125237" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(244.35857 281.06262)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="17.606941" y="9" textLength="30.019043">area in </tspan><tspan font-family="Helvetica" font-size="9" font-weight="500" x="13.146492" y="20" textLength="38.939941">('Forties', </tspan><tspan font-family="Helvetica" font-size="9" font-weight="500" x="9.648445" y="31" textLength="43.435547">'Cromarty')</tspan></text><rect x="239.35857" y="315.12524" width="72.732437" height="38" fill="white"/><rect x="239.35857" y="315.12524" width="72.732437" height="38" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(244.35857 317.62524)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="17.606941" y="9" textLength="30.019043">area in </tspan><tspan font-family="Helvetica" font-size="9" font-weight="500" x="12.144539" y="20" textLength="40.943848">('Rockall', </tspan><tspan font-family="Helvetica" font-size="9" font-weight="500" x="17.396004" y="31" textLength="27.94043">'Malin')</tspan></text><rect x="239.35857" y="256.772" width="72.732437" height="23.227997" fill="white"/><rect x="239.35857" y="256.772" width="72.732437" height="23.227997" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(244.35857 262.886)" fill="black"><tspan font-family="Helvetica" font-size="9" font-style="italic" font-weight="bold" x="8.3608475" y="9" textLength="46.010742">arguments</tspan></text><rect x="149.727025" y="353.12523" width="49.897038" height="37.999992" fill="white"/><rect x="149.727025" y="353.12523" width="49.897038" height="37.999992" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(154.72703 366.62523)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="3.1855793" y="9" textLength="33.525879">shipping</tspan></text><rect x="199.62406" y="353.12523" width="39.734509" height="37.999992" fill="white"/><rect x="199.62406" y="353.12523" width="39.734509" height="37.999992" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(204.62406 361.12523)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="3.8567562" y="9" textLength="22.020996">gale_</tspan><tspan font-family="Helvetica" font-size="9" font-weight="500" x="6.113348" y="20" textLength="17.507812">alert</tspan></text><rect x="199.62406" y="315.12524" width="39.734509" height="38" fill="white"/><rect x="199.62406" y="315.12524" width="39.734509" height="38" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(204.62406 328.62524)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="5.1091976" y="9" textLength="19.516113">sub2</tspan></text><rect x="149.727025" y="315.12524" width="49.897038" height="38" fill="white"/><rect x="149.727025" y="315.12524" width="49.897038" height="38" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(154.72703 328.62524)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="3.1855793" y="9" textLength="33.525879">shipping</tspan></text><rect x="199.62406" y="280" width="39.734509" height="35.125237" fill="white"/><rect x="199.62406" y="280" width="39.734509" height="35.125237" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(204.62406 292.06262)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="5.1091976" y="9" textLength="19.516113">sub1</tspan></text><rect x="149.727025" y="280" width="49.897038" height="35.125237" fill="white"/><rect x="149.727025" y="280" width="49.897038" height="35.125237" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(154.72703 292.06262)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="3.1855793" y="9" textLength="33.525879">shipping</tspan></text><rect x="199.62406" y="256.772" width="39.734509" height="23.227997" fill="white"/><rect x="199.62406" y="256.772" width="39.734509" height="23.227997" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(204.62406 262.886)" fill="black"><tspan font-family="Helvetica" font-size="9" font-style="italic" font-weight="bold" x="1.6155453" y="9" textLength="26.503418">queue</tspan></text><rect x="149.727025" y="256.772" width="49.897038" height="23.227997" fill="white"/><rect x="149.727025" y="256.772" width="49.897038" height="23.227997" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(154.72703 257.386)" fill="black"><tspan font-family="Helvetica" font-size="9" font-style="italic" font-weight="bold" x="1.20144844" y="9" textLength="37.49414">binding_</tspan><tspan font-family="Helvetica" font-size="9" font-style="italic" font-weight="bold" x="12.440462" y="20" textLength="15.016113">key</tspan></text><path d="M 272.37818 170.32356 C 269.9827 172.35684 269.36995 170.70583 265.19101 176.424 C 261.01207 182.14217 250.88966 195.05299 247.30201 204.636 C 246.0141 208.07615 245.33821 211.56306 244.94479 215.07148" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/><g id="id2120_Graphic"><path d="M 361.40001 194.424 L 420.4 194.424 C 425.37057 194.424 429.4 198.45344 429.4 203.424 L 429.4 238.424 C 429.4 243.39456 425.37057 247.424 420.4 247.424 L 361.40001 247.424 C 356.42945 247.424 352.40001 243.39456 352.40001 238.424 L 352.40001 203.424 C 352.40001 198.45344 356.42945 194.424 361.40001 194.424 Z" fill="#93d9ff"/><path d="M 361.40001 194.424 L 420.4 194.424 C 425.37057 194.424 429.4 198.45344 429.4 203.424 L 429.4 238.424 C 429.4 243.39456 425.37057 247.424 420.4 247.424 L 361.40001 247.424 C 356.42945 247.424 352.40001 243.39456 352.40001 238.424 L 352.40001 203.424 C 352.40001 198.45344 356.42945 194.424 361.40001 194.424 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(357.40001 199.424)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="19.496094" y="11" textLength="28.007812">sub1</tspan></text></g><path d="M 319.89446 238.15621 C 324.70855 233.3224 330.2482 227.10227 334.897 222.58499" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/><g id="id2158_Graphic"><path d="M 361.40001 256.772 L 420.4 256.772 C 425.37057 256.772 429.4 260.80144 429.4 265.772 L 429.4 300.772 C 429.4 305.74256 425.37057 309.772 420.4 309.772 L 361.40001 309.772 C 356.42945 309.772 352.40001 305.74256 352.40001 300.772 L 352.40001 265.772 C 352.40001 260.80144 356.42945 256.772 361.40001 256.772 Z" fill="#93d9ff"/><path d="M 361.40001 256.772 L 420.4 256.772 C 425.37057 256.772 429.4 260.80144 429.4 265.772 L 429.4 300.772 C 429.4 305.74256 425.37057 309.772 420.4 309.772 L 361.40001 309.772 C 356.42945 309.772 352.40001 305.74256 352.40001 300.772 L 352.40001 265.772 C 352.40001 260.80144 356.42945 256.772 361.40001 256.772 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(357.40001 261.772)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="19.496094" y="11" textLength="28.007812">sub2</tspan></text></g><path d="M 321.4662 291.60405 C 324.97045 290.2455 328.1181 288.18294 331.98001 287.528 C 332.3119 287.47172 332.65571 287.42685 333.00907 287.39181" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/><g id="id2196_Graphic"><path d="M 361.40001 319.12 L 420.4 319.12 C 425.37057 319.12 429.4 323.14944 429.4 328.12 L 429.4 363.12 C 429.4 368.09056 425.37057 372.12 420.4 372.12 L 361.40001 372.12 C 356.42945 372.12 352.40001 368.09056 352.40001 363.12 L 352.40001 328.12 C 352.40001 323.14944 356.42945 319.12 361.40001 319.12 Z" fill="#93d9ff"/><path d="M 361.40001 319.12 L 420.4 319.12 C 425.37057 319.12 429.4 323.14944 429.4 328.12 L 429.4 363.12 C 429.4 368.09056 425.37057 372.12 420.4 372.12 L 361.40001 372.12 C 356.42945 372.12 352.40001 368.09056 352.40001 363.12 L 352.40001 328.12 C 352.40001 323.14944 356.42945 319.12 361.40001 319.12 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(357.40001 324.12)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="5.4833984" y="11" textLength="56.033203">gale_alert</tspan></text></g><path d="M 321.49778 334.65005 C 325.9914 335.07466 329.98347 333.76622 334.98001 335.924 C 335.44844 336.1263 335.94927 336.37619 336.47464 336.66459" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/><rect x="143.39604" y="111.60699" width="31.222" height="16.5076" fill="#ee0026"/><rect x="143.39604" y="111.60699" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="144.81504" y1="112.98299" x2="151.91104" y2="112.98299" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="144.81504" y1="114.35899" x2="151.91104" y2="114.35899" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="144.81504" y1="115.73399" x2="151.91104" y2="115.73399" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="153.33004" y1="119.86099" x2="164.68404" y2="119.86099" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="153.33004" y1="121.23699" x2="164.68404" y2="121.23699" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="153.33004" y1="122.61199" x2="164.68404" y2="122.61199" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="170.36004" y="112.98299" width="2.83837" height="2.75126" fill="none"/><rect x="170.36004" y="112.98299" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="214.53399" y="111.60699" width="31.222" height="16.5076" fill="#17ee07"/><rect x="214.53399" y="111.60699" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="215.95399" y1="112.98299" x2="223.04999" y2="112.98299" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="215.95399" y1="114.35899" x2="223.04999" y2="114.35899" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="215.95399" y1="115.73399" x2="223.04999" y2="115.73399" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="224.46899" y1="119.86099" x2="235.82199" y2="119.86099" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="224.46899" y1="121.23699" x2="235.82199" y2="121.23699" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="224.46899" y1="122.61199" x2="235.82199" y2="122.61199" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="241.49899" y="112.98299" width="2.83837" height="2.75126" fill="none"/><rect x="241.49899" y="112.98299" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="280.869" y="111.607" width="31.222" height="16.5076" fill="#151fee"/><rect x="280.869" y="111.607" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="282.288" y1="112.983" x2="289.384" y2="112.983" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="282.288" y1="114.359" x2="289.384" y2="114.359" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="282.288" y1="115.734" x2="289.384" y2="115.734" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="290.803" y1="119.861" x2="302.157" y2="119.861" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="290.803" y1="121.237" x2="302.157" y2="121.237" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="290.803" y1="122.612" x2="302.157" y2="122.612" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="307.833" y="112.983" width="2.83837" height="2.75126" fill="none"/><rect x="307.833" y="112.983" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="355.61097" y="111.60699" width="31.222" height="16.5076" fill="#ff9"/><rect x="355.61097" y="111.60699" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="357.02997" y1="112.98299" x2="364.12597" y2="112.98299" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="357.02997" y1="114.35899" x2="364.12597" y2="114.35899" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="357.02997" y1="115.73399" x2="364.12597" y2="115.73399" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="365.54497" y1="119.86099" x2="376.89797" y2="119.86099" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="365.54497" y1="121.23699" x2="376.89797" y2="121.23699" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="365.54497" y1="122.61199" x2="376.89797" y2="122.61199" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="382.57497" y="112.98299" width="2.83837" height="2.75126" fill="none"/><rect x="382.57497" y="112.98299" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="385.98" y="281.028" width="31.222" height="16.5076" fill="#17ee07"/><rect x="385.98" y="281.028" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="387.4" y1="282.404" x2="394.496" y2="282.404" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="387.4" y1="283.78" x2="394.496" y2="283.78" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="387.4" y1="285.155" x2="394.496" y2="285.155" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="395.915" y1="289.282" x2="407.268" y2="289.282" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="395.915" y1="290.658" x2="407.268" y2="290.658" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="395.915" y1="292.033" x2="407.268" y2="292.033" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="412.945" y="282.404" width="2.83837" height="2.75126" fill="none"/><rect x="412.945" y="282.404" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="391.657" y="287.528" width="31.222" height="16.5076" fill="#ee0026"/><rect x="391.657" y="287.528" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="393.076" y1="288.904" x2="400.172" y2="288.904" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="393.076" y1="290.28" x2="400.172" y2="290.28" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="393.076" y1="291.655" x2="400.172" y2="291.655" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="401.591" y1="295.782" x2="412.945" y2="295.782" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="401.591" y1="297.158" x2="412.945" y2="297.158" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="401.591" y1="298.533" x2="412.945" y2="298.533" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="418.621" y="288.904" width="2.83837" height="2.75126" fill="none"/><rect x="418.621" y="288.904" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><text transform="translate(109.50705 74.72158)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="16.138916" y="9" textLength="66.722168">{area = 'Rockall',</tspan><tspan font-family="Helvetica" font-size="9" font-weight="500" x="28.35791" y="20" textLength="42.28418">speed = 5,</tspan><tspan font-family="Helvetica" font-size="9" font-weight="500" x="17.898926" y="31" textLength="63.20215">visibility = 'Fair'}</tspan></text><text transform="translate(180.64499 74.72158)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="20.140137" y="9" textLength="58.719727">{area = 'Malin',</tspan><tspan font-family="Helvetica" font-size="9" font-weight="500" x="28.35791" y="20" textLength="42.28418">speed = 6,</tspan><tspan font-family="Helvetica" font-size="9" font-weight="500" x="17.898926" y="31" textLength="63.20215">visibility = 'Fair'}</tspan></text><text transform="translate(250 74.7216)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="17.140869" y="9" textLength="64.71826">{area = 'Forties',</tspan><tspan font-family="Helvetica" font-size="9" font-weight="500" x="28.35791" y="20" textLength="42.28418">speed = 7,</tspan><tspan font-family="Helvetica" font-size="9" font-weight="500" x="16.143311" y="31" textLength="66.71338">visibility = 'Poor'}</tspan></text><text transform="translate(321.72198 74.7216)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="12.392578" y="9" textLength="74.214844">{area = 'Cromarty',</tspan><tspan font-family="Helvetica" font-size="9" font-weight="500" x="28.35791" y="20" textLength="42.28418">speed = 8,</tspan><tspan font-family="Helvetica" font-size="9" font-weight="500" x="16.143311" y="31" textLength="66.71338">visibility = 'Poor'}</tspan></text><rect x="385.98" y="215.22" width="31.222" height="16.5076" fill="#151fee"/><rect x="385.98" y="215.22" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="387.399" y1="216.596" x2="394.495" y2="216.596" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="387.399" y1="217.972" x2="394.495" y2="217.972" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="387.399" y1="219.347" x2="394.495" y2="219.347" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="395.914" y1="223.474" x2="407.268" y2="223.474" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="395.914" y1="224.85" x2="407.268" y2="224.85" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="395.914" y1="226.225" x2="407.268" y2="226.225" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="412.944" y="216.596" width="2.83837" height="2.75126" fill="none"/><rect x="412.944" y="216.596" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="392.501" y="222.674" width="31.222" height="16.5076" fill="#ff9"/><rect x="392.501" y="222.674" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="393.92" y1="224.05" x2="401.016" y2="224.05" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="393.92" y1="225.426" x2="401.016" y2="225.426" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="393.92" y1="226.801" x2="401.016" y2="226.801" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="402.435" y1="230.928" x2="413.788" y2="230.928" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="402.435" y1="232.304" x2="413.788" y2="232.304" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="402.435" y1="233.679" x2="413.788" y2="233.679" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="419.465" y="224.05" width="2.83837" height="2.75126" fill="none"/><rect x="419.465" y="224.05" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="430.485" y1="112.983" x2="437.581" y2="112.983" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><rect x="429.066" y="111.607" width="31.222" height="16.5076" fill="#ff07f9"/><rect x="429.066" y="111.607" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="430.485" y1="114.359" x2="437.581" y2="114.359" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="430.485" y1="115.734" x2="437.581" y2="115.734" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="439" y1="119.861" x2="450.353" y2="119.861" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="439" y1="121.237" x2="450.353" y2="121.237" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="439" y1="122.612" x2="450.353" y2="122.612" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="456.03" y="112.983" width="2.83837" height="2.75126" fill="none"/><rect x="456.03" y="112.983" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><text transform="translate(395.177 74.721577)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="20.390625" y="9" textLength="58.21875">{area = 'Forth',</tspan><tspan font-family="Helvetica" font-size="9" font-weight="500" x="28.35791" y="20" textLength="42.28418">speed = 6,</tspan><tspan font-family="Helvetica" font-size="9" font-weight="500" x="17.894531" y="31" textLength="63.210938">visibility = 'Fog'}</tspan></text><rect x="385.98" y="344.14" width="31.222" height="16.5076" fill="#ff9"/><rect x="385.98" y="344.14" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="387.399" y1="345.516" x2="394.495" y2="345.516" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="387.399" y1="346.892" x2="394.495" y2="346.892" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="387.399" y1="348.267" x2="394.495" y2="348.267" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="395.914" y1="352.394" x2="407.267" y2="352.394" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="395.914" y1="353.77" x2="407.267" y2="353.77" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="395.914" y1="355.145" x2="407.267" y2="355.145" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="412.944" y="345.516" width="2.83837" height="2.75126" fill="none"/><rect x="412.944" y="345.516" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><g id="id2711_Graphic"><path d="M 361.40001 378.924 L 420.4 378.924 C 425.37057 378.924 429.4 382.95344 429.4 387.924 L 429.4 422.924 C 429.4 427.89456 425.37057 431.924 420.4 431.924 L 361.40001 431.924 C 356.42945 431.924 352.40001 427.89456 352.40001 422.924 L 352.40001 387.924 C 352.40001 382.95344 356.42945 378.924 361.40001 378.924 Z" fill="#93d9ff"/><path d="M 361.40001 378.924 L 420.4 378.924 C 425.37057 378.924 429.4 382.95344 429.4 387.924 L 429.4 422.924 C 429.4 427.89456 425.37057 431.924 420.4 431.924 L 361.40001 431.924 C 356.42945 431.924 352.40001 427.89456 352.40001 422.924 L 352.40001 387.924 C 352.40001 382.95344 356.42945 378.924 361.40001 378.924 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(357.40001 383.924)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x=".81933594" y="11" textLength="65.36133">storm_alert</tspan></text></g><text transform="translate(208.64398 52)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="43.844482" y="9" textLength="85.311035">routing_key=shipping</tspan></text></g></g></svg> diff --git a/qpid/doc/book/src/java-broker/images/Exchange-Topic.png b/qpid/doc/book/src/java-broker/images/Exchange-Topic.png Binary files differdeleted file mode 100644 index f631d73a12..0000000000 --- a/qpid/doc/book/src/java-broker/images/Exchange-Topic.png +++ /dev/null diff --git a/qpid/doc/book/src/java-broker/images/Exchange-Topic.svg b/qpid/doc/book/src/java-broker/images/Exchange-Topic.svg deleted file mode 100644 index 4240be5594..0000000000 --- a/qpid/doc/book/src/java-broker/images/Exchange-Topic.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="123 62 277 368" width="277pt" height="368pt"><metadata xmlns:dc="http://purl.org/dc/elements/1.1/"><dc:date>2013-10-01 22:37Z</dc:date><!-- Produced by OmniGraffle Professional 5.4.4 --></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><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><font-face font-family="Helvetica" font-size="9" 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><font-face font-family="Helvetica" font-size="9" units-per-em="1000" underline-position="-75.683594" underline-thickness="49.316406" slope="-1333.3334" x-height="539.55078" cap-height="719.72656" ascent="770.01953" descent="-229.98047" font-style="italic" font-weight="bold"><font-face-src><font-face-name name="Helvetica-BoldOblique"/></font-face-src></font-face><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.2 0 L 0 -1.2 L 0 1.2 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/></g></marker></defs><g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1"><title>Canvas 6</title><g><title>Layer 1</title><g><use xl:href="#id2467_Graphic" filter="url(#Shadow)"/><use xl:href="#id1779_Graphic" filter="url(#Shadow)"/><use xl:href="#id1780_Graphic" filter="url(#Shadow)"/><use xl:href="#id1917_Graphic" filter="url(#Shadow)"/><use xl:href="#id1991_Graphic" filter="url(#Shadow)"/><use xl:href="#id2031_Graphic" filter="url(#Shadow)"/></g><g id="id2467_Graphic"><path d="M 152 105 L 371 105 C 375.97056 105 380 109.02944 380 114 L 380 134 C 380 138.97056 375.97056 143 371 143 L 152 143 C 147.02944 143 143 138.97056 143 134 L 143 114 C 143 109.02944 147.02944 105 152 105 Z" fill="#acffa2"/><path d="M 152 105 L 371 105 C 375.97056 105 380 109.02944 380 114 L 380 134 C 380 138.97056 375.97056 143 371 143 L 152 143 C 147.02944 143 143 138.97056 143 134 L 143 114 C 143 109.02944 147.02944 105 152 105 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(148 110)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="0" y="11" textLength="52.68164">Producer</tspan></text></g><g id="id1779_Graphic"><path d="M 152 166 L 371 166 C 375.97056 166 380 170.02944 380 175 L 380 396.925 C 380 401.89556 375.97056 405.925 371 405.925 L 152 405.925 C 147.02944 405.925 143 401.89556 143 396.925 L 143 175 C 143 170.02944 147.02944 166 152 166 Z" fill="#78caff"/><path d="M 152 166 L 371 166 C 375.97056 166 380 170.02944 380 175 L 380 396.925 C 380 401.89556 375.97056 405.925 371 405.925 L 152 405.925 C 147.02944 405.925 143 401.89556 143 396.925 L 143 175 C 143 170.02944 147.02944 166 152 166 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(148 171)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="0" y="11" textLength="69.345703">Qpid Broker</tspan></text></g><g id="id1780_Graphic"><path d="M 166.855 214.5 L 273.855 214.5 C 278.82556 214.5 282.855 218.52944 282.855 223.5 L 282.855 296 C 282.855 300.97056 278.82556 305 273.855 305 L 166.855 305 C 161.88444 305 157.855 300.97056 157.855 296 L 157.855 223.5 C 157.855 218.52944 161.88444 214.5 166.855 214.5 Z" fill="#a788ff"/><path d="M 166.855 214.5 L 273.855 214.5 C 278.82556 214.5 282.855 218.52944 282.855 223.5 L 282.855 296 C 282.855 300.97056 278.82556 305 273.855 305 L 166.855 305 C 161.88444 305 157.855 300.97056 157.855 296 L 157.855 223.5 C 157.855 218.52944 161.88444 214.5 166.855 214.5 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(162.855 219.5)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="0" y="11" textLength="56.671875">amq.topic</tspan></text></g><rect x="164.355" y="281.19395" width="64" height="13.6119385" fill="white"/><rect x="164.355" y="281.19395" width="64" height="13.6119385" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(169.355 282.49992)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="10.9907227" y="9" textLength="32.018555">weather</tspan></text><rect x="228.355" y="281.19395" width="48.000015" height="13.6119385" fill="white"/><rect x="228.355" y="281.19395" width="48.000015" height="13.6119385" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(233.355 282.49992)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="9.241951" y="9" textLength="19.516113">sub3</tspan></text><rect x="228.355" y="267.58195" width="48.000015" height="13.6119995" fill="white"/><rect x="228.355" y="267.58195" width="48.000015" height="13.6119995" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(233.355 268.88795)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="9.241951" y="9" textLength="19.516113">sub2</tspan></text><rect x="164.355" y="267.58195" width="64" height="13.6119995" fill="white"/><rect x="164.355" y="267.58195" width="64" height="13.6119995" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(169.355 268.88795)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="10.9907227" y="9" textLength="32.018555">weather</tspan></text><rect x="228.355" y="253.97005" width="48.000015" height="13.611908" fill="white"/><rect x="228.355" y="253.97005" width="48.000015" height="13.611908" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(233.355 255.276)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="9.241951" y="9" textLength="19.516113">sub1</tspan></text><rect x="164.355" y="253.97005" width="64" height="13.611908" fill="white"/><rect x="164.355" y="253.97005" width="64" height="13.611908" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(169.355 255.276)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="10.9907227" y="9" textLength="32.018555">weather</tspan></text><rect x="228.355" y="243.194" width="48.000015" height="10.776047" fill="white"/><rect x="228.355" y="243.194" width="48.000015" height="10.776047" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(233.355 243.08202)" fill="black"><tspan font-family="Helvetica" font-size="9" font-style="italic" font-weight="bold" x="5.7482986" y="9" textLength="26.503418">queue</tspan></text><rect x="164.355" y="243.194" width="64" height="10.776047" fill="white"/><rect x="164.355" y="243.194" width="64" height="10.776047" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(169.355 243.08202)" fill="black"><tspan font-family="Helvetica" font-size="9" font-style="italic" font-weight="bold" x=".74487305" y="9" textLength="52.510254">binding_key</tspan></text><path d="M 248.15424 143.41202 C 245.26978 147.60759 241.94213 150.23591 239.5 156 C 237.05787 161.76409 235.46474 168.33324 233.5 178 C 232.50765 182.88247 231.53304 188.95676 230.56277 195.31969" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/><g id="id1917_Graphic"><path d="M 304.92 211.538 L 363.92 211.538 C 368.89056 211.538 372.92 215.56744 372.92 220.538 L 372.92 255.538 C 372.92 260.50856 368.89056 264.538 363.92 264.538 L 304.92 264.538 C 299.94944 264.538 295.92 260.50856 295.92 255.538 L 295.92 220.538 C 295.92 215.56744 299.94944 211.538 304.92 211.538 Z" fill="#93d9ff"/><path d="M 304.92 211.538 L 363.92 211.538 C 368.89056 211.538 372.92 215.56744 372.92 220.538 L 372.92 255.538 C 372.92 260.50856 368.89056 264.538 363.92 264.538 L 304.92 264.538 C 299.94944 264.538 295.92 260.50856 295.92 255.538 L 295.92 220.538 C 295.92 215.56744 299.94944 211.538 304.92 211.538 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(300.92 216.538)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="19.496094" y="11" textLength="28.007812">sub1</tspan></text></g><path d="M 256.27227 214.10707 C 261.53599 207.41805 265.70768 197.38251 272.065 194.038 C 278.42232 190.69349 288.09934 191.18328 294.42 194.038 C 295.73351 194.63125 296.94947 195.47113 298.09827 196.48077" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/><g id="id1991_Graphic"><path d="M 304.92 274.462 L 363.92 274.462 C 368.89056 274.462 372.92 278.49144 372.92 283.462 L 372.92 318.462 C 372.92 323.43256 368.89056 327.462 363.92 327.462 L 304.92 327.462 C 299.94944 327.462 295.92 323.43256 295.92 318.462 L 295.92 283.462 C 295.92 278.49144 299.94944 274.462 304.92 274.462 Z" fill="#93d9ff"/><path d="M 304.92 274.462 L 363.92 274.462 C 368.89056 274.462 372.92 278.49144 372.92 283.462 L 372.92 318.462 C 372.92 323.43256 368.89056 327.462 363.92 327.462 L 304.92 327.462 C 299.94944 327.462 295.92 323.43256 295.92 318.462 L 295.92 283.462 C 295.92 278.49144 299.94944 274.462 304.92 274.462 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(300.92 279.462)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="19.496094" y="11" textLength="28.007812">sub2</tspan></text></g><path d="M 283.32046 235.0457 C 286.85328 233.6596 288.61394 227.05533 293.92 230.887 C 298.95247 234.5211 309.28699 249.22118 314.37788 256.858" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/><g id="id2031_Graphic"><path d="M 304.92 337.387 L 363.92 337.387 C 368.89056 337.387 372.92 341.41644 372.92 346.387 L 372.92 381.387 C 372.92 386.35756 368.89056 390.387 363.92 390.387 L 304.92 390.387 C 299.94944 390.387 295.92 386.35756 295.92 381.387 L 295.92 346.387 C 295.92 341.41644 299.94944 337.387 304.92 337.387 Z" fill="#93d9ff"/><path d="M 304.92 337.387 L 363.92 337.387 C 368.89056 337.387 372.92 341.41644 372.92 346.387 L 372.92 381.387 C 372.92 386.35756 368.89056 390.387 363.92 390.387 L 304.92 390.387 C 299.94944 390.387 295.92 386.35756 295.92 381.387 L 295.92 346.387 C 295.92 341.41644 299.94944 337.387 304.92 337.387 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(300.92 342.387)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="19.496094" y="11" textLength="28.007812">sub3</tspan></text></g><path d="M 283.343 273.8093 C 286.89497 274.60212 290.22421 272.49625 294 276.188 C 297.77579 279.87975 301.14393 285.84005 306 295.962 C 308.90226 302.01144 312.41698 310.58504 315.99492 319.41948" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/><rect x="237.296" y="89.2331" width="31.222" height="16.5076" fill="#ff9"/><rect x="237.296" y="89.2331" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="238.715" y1="90.6081" x2="245.811" y2="90.6081" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="238.715" y1="91.9841" x2="245.811" y2="91.9841" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="238.715" y1="93.3601" x2="245.811" y2="93.3601" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="247.23" y1="97.4866" x2="258.584" y2="97.4866" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="247.23" y1="98.8626" x2="258.584" y2="98.8626" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="247.23" y1="100.2386" x2="258.584" y2="100.2386" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="264.26" y="90.6081" width="2.83837" height="2.75126" fill="none"/><rect x="264.26" y="90.6081" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="242.083" y="95.3166" width="31.222" height="16.5076" fill="#ff9"/><rect x="242.083" y="95.3166" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="243.502" y1="96.6916" x2="250.598" y2="96.6916" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="243.502" y1="98.0676" x2="250.598" y2="98.0676" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="243.502" y1="99.4436" x2="250.598" y2="99.4436" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="252.017" y1="103.5696" x2="263.371" y2="103.5696" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="252.017" y1="104.9456" x2="263.371" y2="104.9456" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="252.017" y1="106.3216" x2="263.371" y2="106.3216" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="269.047" y="96.6916" width="2.83837" height="2.75126" fill="none"/><rect x="269.047" y="96.6916" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="247.001" y="102.8166" width="31.222" height="16.5076" fill="#ff9"/><rect x="247.001" y="102.8166" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="248.421" y1="104.1926" x2="255.517" y2="104.1926" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="248.421" y1="105.5676" x2="255.517" y2="105.5676" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="248.421" y1="106.9436" x2="255.517" y2="106.9436" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="256.936" y1="111.0706" x2="268.289" y2="111.0706" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="256.936" y1="112.4456" x2="268.289" y2="112.4456" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="256.936" y1="113.8216" x2="268.289" y2="113.8216" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="273.966" y="104.1926" width="2.83837" height="2.75126" fill="none"/><rect x="273.966" y="104.1926" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="327.296" y="231.594" width="31.222" height="16.5076" fill="#ff9"/><rect x="327.296" y="231.594" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="328.715" y1="232.969" x2="335.811" y2="232.969" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="328.715" y1="234.345" x2="335.811" y2="234.345" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="328.715" y1="235.721" x2="335.811" y2="235.721" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="337.23" y1="239.848" x2="348.584" y2="239.848" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="337.23" y1="241.224" x2="348.584" y2="241.224" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="337.23" y1="242.6" x2="348.584" y2="242.6" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="354.26" y="232.969" width="2.83837" height="2.75126" fill="none"/><rect x="354.26" y="232.969" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="332.083" y="237.678" width="31.222" height="16.5076" fill="#ff9"/><rect x="332.083" y="237.678" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="333.502" y1="239.053" x2="340.598" y2="239.053" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="333.502" y1="240.429" x2="340.598" y2="240.429" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="333.502" y1="241.805" x2="340.598" y2="241.805" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="342.017" y1="245.931" x2="353.371" y2="245.931" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="342.017" y1="247.307" x2="353.371" y2="247.307" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="342.017" y1="248.683" x2="353.371" y2="248.683" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="359.047" y="239.053" width="2.83837" height="2.75126" fill="none"/><rect x="359.047" y="239.053" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="337.001" y="245.178" width="31.222" height="16.5076" fill="#ff9"/><rect x="337.001" y="245.178" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="338.421" y1="246.554" x2="345.517" y2="246.554" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="338.421" y1="247.929" x2="345.517" y2="247.929" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="338.421" y1="249.305" x2="345.517" y2="249.305" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="346.936" y1="253.432" x2="358.289" y2="253.432" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="346.936" y1="254.807" x2="358.289" y2="254.807" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="346.936" y1="256.183" x2="358.289" y2="256.183" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="363.966" y="246.554" width="2.83837" height="2.75126" fill="none"/><rect x="363.966" y="246.554" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="327.361" y="293.409" width="31.222" height="16.5076" fill="#ff9"/><rect x="327.361" y="293.409" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="328.78" y1="294.784" x2="335.876" y2="294.784" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="328.78" y1="296.16" x2="335.876" y2="296.16" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="328.78" y1="297.536" x2="335.876" y2="297.536" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="337.295" y1="301.662" x2="348.649" y2="301.662" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="337.295" y1="303.038" x2="348.649" y2="303.038" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="337.295" y1="304.414" x2="348.649" y2="304.414" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="354.325" y="294.784" width="2.83837" height="2.75126" fill="none"/><rect x="354.325" y="294.784" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="332.148" y="299.492" width="31.222" height="16.5076" fill="#ff9"/><rect x="332.148" y="299.492" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="333.567" y1="300.867" x2="340.663" y2="300.867" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="333.567" y1="302.243" x2="340.663" y2="302.243" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="333.567" y1="303.619" x2="340.663" y2="303.619" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="342.082" y1="307.745" x2="353.436" y2="307.745" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="342.082" y1="309.121" x2="353.436" y2="309.121" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="342.082" y1="310.497" x2="353.436" y2="310.497" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="359.112" y="300.867" width="2.83837" height="2.75126" fill="none"/><rect x="359.112" y="300.867" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="337.066" y="306.992" width="31.222" height="16.5076" fill="#ff9"/><rect x="337.066" y="306.992" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="338.486" y1="308.368" x2="345.582" y2="308.368" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="338.486" y1="309.743" x2="345.582" y2="309.743" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="338.486" y1="311.119" x2="345.582" y2="311.119" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="347.001" y1="315.246" x2="358.354" y2="315.246" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="347.001" y1="316.621" x2="358.354" y2="316.621" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="347.001" y1="317.997" x2="358.354" y2="317.997" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="364.031" y="308.368" width="2.83837" height="2.75126" fill="none"/><rect x="364.031" y="308.368" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="327.361" y="355.223" width="31.222" height="16.5076" fill="#ff9"/><rect x="327.361" y="355.223" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="328.78" y1="356.598" x2="335.876" y2="356.598" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="328.78" y1="357.974" x2="335.876" y2="357.974" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="328.78" y1="359.35" x2="335.876" y2="359.35" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="337.295" y1="363.477" x2="348.649" y2="363.477" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="337.295" y1="364.853" x2="348.649" y2="364.853" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="337.295" y1="366.229" x2="348.649" y2="366.229" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="354.325" y="356.598" width="2.83837" height="2.75126" fill="none"/><rect x="354.325" y="356.598" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="332.148" y="361.307" width="31.222" height="16.5076" fill="#ff9"/><rect x="332.148" y="361.307" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="333.567" y1="362.682" x2="340.663" y2="362.682" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="333.567" y1="364.058" x2="340.663" y2="364.058" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="333.567" y1="365.434" x2="340.663" y2="365.434" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="342.082" y1="369.56" x2="353.436" y2="369.56" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="342.082" y1="370.936" x2="353.436" y2="370.936" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="342.082" y1="372.312" x2="353.436" y2="372.312" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="359.112" y="362.682" width="2.83837" height="2.75126" fill="none"/><rect x="359.112" y="362.682" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="337.066" y="368.807" width="31.222" height="16.5076" fill="#ff9"/><rect x="337.066" y="368.807" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="338.486" y1="370.183" x2="345.582" y2="370.183" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="338.486" y1="371.558" x2="345.582" y2="371.558" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="338.486" y1="372.934" x2="345.582" y2="372.934" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="347.001" y1="377.061" x2="358.354" y2="377.061" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="347.001" y1="378.436" x2="358.354" y2="378.436" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="347.001" y1="379.812" x2="358.354" y2="379.812" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="364.031" y="370.183" width="2.83837" height="2.75126" fill="none"/><rect x="364.031" y="370.183" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><text transform="translate(198.89749 71)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="16.894638" y="9" textLength="83.80371">routing_key=weather</tspan></text></g></g></svg> diff --git a/qpid/doc/book/src/java-broker/images/HA-BDBHAMessageStore-MBean-jconsole.png b/qpid/doc/book/src/java-broker/images/HA-BDBHAMessageStore-MBean-jconsole.png Binary files differdeleted file mode 100644 index 29d5494746..0000000000 --- a/qpid/doc/book/src/java-broker/images/HA-BDBHAMessageStore-MBean-jconsole.png +++ /dev/null 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 differdeleted file mode 100644 index 4976609d16..0000000000 --- a/qpid/doc/book/src/java-broker/images/HA-Create-1.png +++ /dev/null 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 differdeleted file mode 100644 index bd442263fe..0000000000 --- a/qpid/doc/book/src/java-broker/images/HA-Create-2.png +++ /dev/null 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 differdeleted file mode 100644 index 5457f214e1..0000000000 --- a/qpid/doc/book/src/java-broker/images/HA-Create-3.png +++ /dev/null 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 differdeleted file mode 100644 index 3419a19505..0000000000 --- a/qpid/doc/book/src/java-broker/images/HA-Overview.png +++ /dev/null diff --git a/qpid/doc/book/src/java-broker/images/JMX-Connect-MBeans.png b/qpid/doc/book/src/java-broker/images/JMX-Connect-MBeans.png Binary files differdeleted file mode 100644 index f766197166..0000000000 --- a/qpid/doc/book/src/java-broker/images/JMX-Connect-MBeans.png +++ /dev/null diff --git a/qpid/doc/book/src/java-broker/images/JMX-Connect-Remote.png b/qpid/doc/book/src/java-broker/images/JMX-Connect-Remote.png Binary files differdeleted file mode 100644 index 5fcf9dd497..0000000000 --- a/qpid/doc/book/src/java-broker/images/JMX-Connect-Remote.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 differdeleted file mode 100644 index b476060daa..0000000000 --- a/qpid/doc/book/src/java-broker/images/Management-Web-Add-Dialogue.png +++ /dev/null diff --git a/qpid/doc/book/src/java-broker/images/Management-Web-Auth.png b/qpid/doc/book/src/java-broker/images/Management-Web-Auth.png Binary files differdeleted file mode 100644 index df28ef3d2c..0000000000 --- a/qpid/doc/book/src/java-broker/images/Management-Web-Auth.png +++ /dev/null diff --git a/qpid/doc/book/src/java-broker/images/Management-Web-Console.png b/qpid/doc/book/src/java-broker/images/Management-Web-Console.png Binary files differdeleted file mode 100644 index 953a572bfc..0000000000 --- a/qpid/doc/book/src/java-broker/images/Management-Web-Console.png +++ /dev/null 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 differdeleted file mode 100644 index 3c62bc9f6e..0000000000 --- a/qpid/doc/book/src/java-broker/images/Management-Web-ContextVar.png +++ /dev/null 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 differdeleted file mode 100644 index 92626e092e..0000000000 --- a/qpid/doc/book/src/java-broker/images/Management-Web-Edit-Dialogue.png +++ /dev/null diff --git a/qpid/doc/book/src/java-broker/images/Management-Web-Tab.png b/qpid/doc/book/src/java-broker/images/Management-Web-Tab.png Binary files differdeleted file mode 100644 index f0958477e6..0000000000 --- a/qpid/doc/book/src/java-broker/images/Management-Web-Tab.png +++ /dev/null diff --git a/qpid/doc/book/src/java-broker/images/VirtualHost-Model.png b/qpid/doc/book/src/java-broker/images/VirtualHost-Model.png Binary files differdeleted file mode 100644 index bea811f27f..0000000000 --- a/qpid/doc/book/src/java-broker/images/VirtualHost-Model.png +++ /dev/null diff --git a/qpid/doc/book/src/java-broker/management/channels/Java-Broker-Management-Channel-AMQP-Intrinsic.xml b/qpid/doc/book/src/java-broker/management/channels/Java-Broker-Management-Channel-AMQP-Intrinsic.xml deleted file mode 100644 index 475e7da84f..0000000000 --- a/qpid/doc/book/src/java-broker/management/channels/Java-Broker-Management-Channel-AMQP-Intrinsic.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section id="Java-Broker-Management-Channel-AMQP-Intrinstic"> - <title>AMQP Intrinstic Management</title> - <para>The AMQP protocols 0-8..0-10 allow for creation, deletion and query of Exchanges, Queue - and Bindings.</para> - <para>The exact details of how to utilise this commands depends of the client. See the - documentation accompanying the client for details.</para> -</section> 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 deleted file mode 100644 index e39c378075..0000000000 --- a/qpid/doc/book/src/java-broker/management/channels/Java-Broker-Management-Channel-HTTP.xml +++ /dev/null @@ -1,58 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section id="Java-Broker-Management-Channel-HTTP"> - <title>HTTP Management</title> - - <section id="Java-Broker-Management-Channel-HTTP-Introduction"> - <title>Introduction</title> - <para>The HTTP Management plugin provides a HTTP based API for monitoring and control of the - Broker. The plugin actually provides two interfaces:</para> - - <para><itemizedlist> - <listitem> - <para><link linkend="Java-Broker-Management-Channel-Web-Console">Web Management - Console</link> - rich web based interface for the management of the - Broker.</para> - </listitem> - <listitem> - <para><link linkend="Java-Broker-Management-Channel-REST-API">REST API</link> - - 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 integrated into other - systems. This provides a simple integration point allowing the Broker to monitored and - controlled from systems such as Naoios or BMC Control-M.</para> - </section> - - <section id="Java-Broker-Management-Channel-HTTP-DefaultConfiguration"> - <title>Default Configuration</title> - <para>By default, the Broker is shipped with HTTP enabled running port 8080. The HTTP plugin - is configured to require SASL authentication. The port is not SSL protected.</para> - <!-- TODO describe what to do if the port conflicts --> - <para>The settings can be changed by configuring the HTTP plugin and/or the port configured - to serve HTTP.</para> - </section> - -</section> 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 deleted file mode 100644 index 719fb13393..0000000000 --- a/qpid/doc/book/src/java-broker/management/channels/Java-Broker-Management-Channel-JMX.xml +++ /dev/null @@ -1,321 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!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. - ---> - -<section id="Java-Broker-Management-Channel-JMX"> - <title>JMX Management</title> - - <section id="Java-Broker-Management-Channel-JMX-Introduction"> - <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 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 - Qpid MBeans and finally a summary of all the MBeans made available from by the - plugin.</para> - <important> - <para>For new development work, the reader is directed towards the strategic <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>. Use the - Web/REST interfaces in preference to JMX whenever possible. The JMX interface may be - withdrawn in a future release.</para> - </important> - </section> - - <section id="Java-Broker-Management-Channel-JMX-Plugin-DefaultConfiguration"> - <title>Default Configuration</title> - <para>By default, the Broker is shipped with JMX enabled.</para> - <para>The RMI registry port runs on port <literal>8999</literal> and the JMX connector on - port <literal>9099</literal>. The connector is not SSL protected. Qpid will use the - <ulink - url="&oracleJdkDocUrl;java/lang/management/ManagementFactory.html#getPlatformMBeanServer()" - >Platform MBeanServer</ulink>.</para> - <para>To change these settings, use the <link - linkend="Java-Broker-Management-Channel-Web-Console">Web Management - interface</link>.</para> - </section> - - <section id="Java-Broker-Management-Channel-JMX-Plugin-ConnectingToJMX"> - <title>Connecting to JMX</title> - <para>The following example uses Jconsole to illustrates how to connect to JMX and assume - the defaults described above. Jconsole is a management tool that comes with the JDK. It - provides a very simple view of the MBeans, but requires no special configuration to be - used with Qpid.</para> - <para>For full details of Jconsole itself refer to Oracle's <ulink url="&oracleJconsole;" - >JConsole Guide</ulink>.</para> - <para>Jconsole can be used to connect to local or remote Java processes. On startup, it - presents a list of all the Java processes running on the local host and also allows you - to specify a service url to connect to a Java process running on a remote host.</para> - <para>To start Jconsole on the command line, type:</para> - <programlisting><![CDATA[jconsole]]></programlisting> - <section - id="Java-Broker-Management-Channel-JMX-Plugin-ConnectingToJMX-Local"> - <title>Local</title> - <para>To connect to a Broker running locally, simply select the process from the list. - You can identify the Broker by looking for its classname - <literal>org.apache.qpid.server.Main</literal>.</para> - </section> - <section - id="Java-Broker-Management-Channel-JMX-Plugin-ConnectingToJMX-Remote"> - <title>Remote</title> - <para>To connect to a broker running remotely, provide the hostname and port number of - the <emphasis>RMI registry port</emphasis> (e.g. <literal>hostname:8999</literal>) - and a valid username and password.</para> - <para>You can also provide a service url in the form - <literal>service:jmx:rmi:///jndi/rmi://hostname:8999/jmxrmi</literal></para> - <figure> - <title>Making a remote JMX connection to a Broker using jconsole</title> - <graphic fileref="images/JMX-Connect-Remote.png"/> - </figure> - </section> - <para>Once you are connected expand the tree of nodes marked - <literal>org.apache.qpid</literal> to begin to interact with the Qpid MBeans.</para> - <figure> - <title>Qpid MBean hierarchy</title> - <graphic fileref="images/JMX-Connect-MBeans.png"/> - </figure> - <section id="Java-Broker-Management-Channel-JMX-Plugin-ConnectingToJMX-SSL"> - <title>Connecting to a remote Broker protected by SSL</title> - <para>If you are connecting to a remote Broker whose JMX connector port has been secured - with SSL certificate signed by a private CA (or a self-signed certificate), you will - need to pass a trust store and trust store password to Jconsole. If this is - required, start jconsole with the following options:</para> - <programlisting><![CDATA[jconsole -J-Djavax.net.ssl.trustStore=jmxtruststore.jks -J-Djavax.net.ssl.trustStorePassword=password]]></programlisting> - </section> - </section> - - <section id="Java-Broker-Management-JMX-Example-Client"> - <title>Example JMX Client</title> - <para>The following java snippet illustrates a JMX client that connects to Qpid over JMX - passing a userid and password, looks up the <ulink - url="&qpidManagementCommonSrc;org/apache/qpid/management/common/mbeans/ManagedBroker&qpidSrcSuffix;" - >ManagedBroker</ulink> object corresponding to the <literal>myvhost</literal> - virtualhost, then invokes a method on the virtualhost to create a new queue.</para> - <para>A full introduction to custom JMX clients is beyond the scope of this book. For this - the reader is directed toward Oracle's <ulink url="&oracleJmxTutorial;">JMX - tutorial.</ulink></para> - <example id="Java-Broker-Management-JMX-Example-Client-Code"> - <title>JMX Client illustrating the creation of a new queue</title> - <programlisting language="java"> -Map<String, Object< environment = new HashMap<String, Object>(); -environment.put(JMXConnector.CREDENTIALS, new String[] {"admin","password"}); -// Connect to service -JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:8999/jmxrmi"); -JMXConnector jmxConnector = JMXConnectorFactory.connect(url, environment); -MBeanServerConnection mbsc = jmxConnector.getMBeanServerConnection(); -// Object name for ManagedBroker mbean for virtualhost myvhost -ObjectName objectName = new ObjectName("org.apache.qpid:type=VirtualHost.VirtualHostManager,VirtualHost=\"myvhost\""); -// Get the ManagedBroker object -ManagedBroker managedBroker = JMX.newMBeanProxy(mbsc, objectName, ManagedBroker.class);; - -// Create the queue named "myqueue" -managedBroker.createNewQueue("myqueue", null, true);</programlisting> - </example> - <para>The Qpid classes required for a custom JMX client are included in the - <literal>qpid-management-common</literal> artefact.</para> - </section> - - <section id="Java-Broker-Management-Channel-JMX-MBeans"> - <title>The MBeans</title> - <para>The following table summarises the available MBeans. The MBeans are self-describing: - each attribute and operation carry a description describing their purpose. This - description is visible when using tools such Jconsole. They are also available on - Management interfaces themselves (linked below).</para> - <table> - <title>Qpid Broker MBeans</title> - <tgroup cols="2"> - <thead> - <row> - <entry>Management Interface</entry> - <entry>Object Name</entry> - </row> - </thead> - <tbody> - <row> - <entry morerows="1"> - <para> - <ulink - url="&qpidManagementCommonSrc;org/apache/qpid/management/common/mbeans/ManagedBroker&qpidSrcSuffix;" - >ManagedBroker</ulink> - </para> - </entry> - <entry> - <para> - <literal>org.apache.qpid:type=VirtualHost.VirtualHostManager,VirtualHost="<replaceable>virtualhostname</replaceable>"</literal> - </para> - </entry> - </row> - <row> - <entry> - <para>MBean corresponding to the named virtualhost. Allows operations - such as the creation/deletion of queues and exchanges on that - virtualhost and virtualhost level statistics.</para> - </entry> - </row> - <row> - <entry morerows="1"> - <para> - <ulink - url="&qpidManagementCommonSrc;org/apache/qpid/management/common/mbeans/ManagedQueue&qpidSrcSuffix;" - >ManagedQueue</ulink> - </para> - </entry> - <entry> - <para> - <literal>org.apache.qpid:type=VirtualHost.Queue,VirtualHost="<replaceable>virtualhostname</replaceable>",name="<replaceable>queuename</replaceable>"</literal> - </para> - </entry> - </row> - <row> - <entry> - <para>MBean corresponding to the named queue on the given virtualhost. - Allows queue management operations such as view message, move - message and clear queue. Exposes attributes such as queue depth and - durability.</para> - </entry> - </row> - <row> - <entry morerows="1"> - <para> - <ulink - url="&qpidManagementCommonSrc;org/apache/qpid/management/common/mbeans/ManagedExchange&qpidSrcSuffix;" - >ManagedExchange</ulink> - </para> - </entry> - <entry> - <para> - <literal>org.apache.qpid:type=VirtualHost.Exchange,VirtualHost="<replaceable>virtualhostname</replaceable>",name="<replaceable>amq.direct</replaceable>",ExchangeType=<replaceable>type</replaceable></literal> - </para> - </entry> - </row> - <row> - <entry> - <para>MBean corresponding to the named exchange on the given - virtualhost. Allows exchange management operations such as the - creation and removal of bindings. The supported exchange types are - exposed by the <literal>exchangeTypes</literal> attribute of the - virtualhost.</para> - </entry> - </row> - <row> - <entry morerows="1"> - <para> - <ulink - url="&qpidManagementCommonSrc;org/apache/qpid/management/common/mbeans/ManagedConnection&qpidSrcSuffix;" - >ManagedConnection</ulink> - </para> - </entry> - <entry> - <para> - <literal>org.apache.qpid:type=VirtualHost.Connection,VirtualHost="<replaceable>virtualhostname</replaceable>",name="<replaceable>/peerid:ephemeralport</replaceable>"</literal> - </para> - </entry> - </row> - <row> - <entry> - <para>MBean representing a active AMQP connection to the named virtual - host. Name is formed from the IP and ephemeral port of the peer. - Attributes include the client version and connection level - statistics.</para> - </entry> - </row> - <row> - <entry morerows="1"> - <para> - <ulink - url="&qpidManagementCommonSrc;org/apache/qpid/management/common/mbeans/UserManagement&qpidSrcSuffix;" - >UserManagement</ulink> - </para> - </entry> - <entry> - <para> - <literal>org.apache.qpid:type=UserManagement,name="UserManagement-<replaceable>authentication - manager name</replaceable>"</literal> - </para> - </entry> - </row> - <row> - <entry> - <para>When using <link - linkend="Java-Broker-Security-PlainPasswordFile-Provider">Plain - password provider</link> or <link - linkend="Java-Broker-Security-Base64MD5PasswordFile-Provider" - >Base 64 MD5 password provider</link>, permits user operations - such creation and deletion of users. and password changes.</para> - </entry> - - </row> - <row> - <entry morerows="1"> - <para> - <ulink - url="&qpidManagementCommonSrc;org/apache/qpid/management/common/mbeans/ServerInformation&qpidSrcSuffix;" - >ServerInformation</ulink> - </para> - </entry> - <entry> - <para> - <literal>org.apache.qpid:type=ServerInformation,name=ServerInformation</literal> - </para> - </entry> - </row> - <row> - <entry> - <para>Exposes broker wide statistics, product version number and JMX - management API version number.</para> - </entry> - - </row> - <row> - <entry morerows="1"> - <para> - <ulink - url="&qpidManagementCommonSrc;org/apache/qpid/management/common/mbeans/LoggingManagement&qpidSrcSuffix;" - >LoggingManagement</ulink> - </para> - </entry> - <entry> - <para> - <literal>org.apache.qpid:type=LoggingManagement,name=LoggingManagement</literal> - </para> - </entry> - </row> - <row> - <entry> - <para>MBean permitting control of the Broker's logging. Exposes - operations allow the logging level to be controlled at runtime - (without restarting the Broker) and others that allow changes to be - written back to the log4j.xml logging configuration file, or the - contents of the log4.xml file to be re-read at runtime.</para> - </entry> - </row> - </tbody> - </tgroup> - </table> - </section> -</section> diff --git a/qpid/doc/book/src/java-broker/management/channels/Java-Broker-Management-Channel-QMF.xml b/qpid/doc/book/src/java-broker/management/channels/Java-Broker-Management-Channel-QMF.xml deleted file mode 100644 index 6e91bbb6c1..0000000000 --- a/qpid/doc/book/src/java-broker/management/channels/Java-Broker-Management-Channel-QMF.xml +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section id="Java-Broker-Management-Channel-QMF"> - <title>QMF</title> - <para>QMF is provided by an optional plugin.</para> -</section> 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 deleted file mode 100644 index 9bddafa6fc..0000000000 --- a/qpid/doc/book/src/java-broker/management/channels/Java-Broker-Management-Channel-REST-API.xml +++ /dev/null @@ -1,611 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section id="Java-Broker-Management-Channel-REST-API"> - <title>REST API</title> - <para> This section provides a brief overview of the REST interfaces, which can be used directly to - monitor and manage the Broker instance.</para> - - <section id="Java-Broker-Management-Channel-REST-API-Introduction"> - <title>Introduction</title> - <para>The REST interface support traditional REST model which uses the GET method requests to - retrieve the information about broker configured objects, DELETE method requests to delete the - configured object, PUT to create or update the configured object and POST to perform the - configured objects updates and creation.</para> - <para>The REST API is versioned with the version number built into the URL. The general form of - the URL is <literal>/api/<version></literal> where <version> is a major model version prefixed with "v", for example, v3. - For convenience the alias <literal>latest</literal> (<literal>/api/latest</literal>) signifies the latest supported version. - There are also some ancillary services under URI <literal>/service</literal>.</para> - </section> - - <section id="Java-Broker-Management-Channel-REST-API-URI"> - <title>REST interfaces</title> - <para>The following REST interfaces are implemented on Qpid Broker</para> - <table> - <title>Rest services</title> - <tgroup cols="2"> - <thead> - <row> - <entry>REST Service URI</entry> - <entry>Description</entry> - </row> - </thead> - <tbody> - <row> - <entry> - <itemizedlist> - <listitem><para>/api/latest/broker</para></listitem> - <listitem><para>/api/<version>/broker</para></listitem> - </itemizedlist> - </entry> - <entry> - <para>Manages broker instance attributes and provides current values of Broker attributes and children</para> - </entry> - </row> - <row> - <entry> - <itemizedlist> - <listitem><para>/api/latest/virtualhostnode</para></listitem> - <listitem><para>/api/<version>/virtualhostnode</para></listitem> - <listitem><para>/api/latest/virtualhostnode/<virtual host node name></para></listitem> - <listitem><para>/api/<version>/virtualhostnode/<virtual host node name></para></listitem> - </itemizedlist> - </entry> - <entry> - <para>Manages(creates/deletes/updates) Virtual Host Node(s) on Broker and provides current values of Virtual Host Node attributes and its children</para> - </entry> - </row> - <row> - <entry> - <itemizedlist> - <listitem><para>/api/latest/virtualhost</para></listitem> - <listitem><para>/api/<version>/virtualhost</para></listitem> - <listitem><para>/api/latest/virtualhost/<virtual host node name></para></listitem> - <listitem><para>/api/<version>/virtualhost/<virtual host node name></para></listitem> - <listitem><para>/api/latest/virtualhost/<virtual host node name>/<virtual host name></para></listitem> - <listitem><para>/api/<version>/virtualhost/<virtual host node name>/<virtual host name></para></listitem> - </itemizedlist> - </entry> - <entry> - <para>Manages(creates/deletes/updates) Virtual Host on Virtual Host Node and provides current values of Virtual Host attributes and its children</para> - </entry> - </row> - <row> - <entry> - <itemizedlist> - <listitem><para>/api/latest/queue</para></listitem> - <listitem><para>/api/<version>/queue</para></listitem> - <listitem><para>/api/latest/queue/<virtual host node name></para></listitem> - <listitem><para>/api/<version>/queue/<virtual host node name></para></listitem> - <listitem><para>/api/latest/queue/<virtual host node name>/<virtual host name></para></listitem> - <listitem><para>/api/<version>/queue/<virtual host node name>/<virtual host name></para></listitem> - <listitem><para>/api/latest/queue/<virtual host node name>/<virtual host name>/<queue name></para></listitem> - <listitem><para>/api/<version>/queue/<virtual host node name>/<virtual host name>/<queue name></para></listitem> - </itemizedlist> - </entry> - <entry> - <para>Manages(creates/deletes/updates) Queue(s) on Virtual Host and provides current values of Queue attributes and its children</para> - </entry> - </row> - <row> - <entry> - <itemizedlist> - <listitem><para>/api/latest/exchange</para></listitem> - <listitem><para>/api/<version>/exchange</para></listitem> - <listitem><para>/api/latest/exchange/<virtual host node name></para></listitem> - <listitem><para>/api/<version>/exchange/<virtual host node name></para></listitem> - <listitem><para>/api/latest/exchange/<virtual host node name>/<virtual host name></para></listitem> - <listitem><para>/api/<version>/exchange/<virtual host node name>/<virtual host name></para></listitem> - <listitem><para>/api/latest/exchange/<virtual host node name>/<virtual host name>/<exchange name></para></listitem> - <listitem><para>/api/<version>/exchange/<virtual host node name>/<virtual host name>/<exchange name></para></listitem> - </itemizedlist> - </entry> - <entry> - <para>Manages(creates/deletes/updates) Exchanges(s) on Virtual Host and provides current values of Exchange attributes and its children</para> - </entry> - </row> - <row> - <entry> - <itemizedlist> - <listitem><para>/api/latest/binding</para></listitem> - <listitem><para>/api/<version>/binding</para></listitem> - <listitem><para>/api/latest/binding/<virtual host node name></para></listitem> - <listitem><para>/api/<version>/binding/<virtual host node name></para></listitem> - <listitem><para>/api/latest/binding/<virtual host node name>/<virtual host name></para></listitem> - <listitem><para>/api/<version>/binding/<virtual host node name>/<virtual host name></para></listitem> - <listitem><para>/api/latest/binding/<virtual host node name>/<virtual host name>/<exchange name></para></listitem> - <listitem><para>/api/<version>/binding/<virtual host node name>/<virtual host name>/<exchange name></para></listitem> - <listitem><para>/api/latest/binding/<virtual host node name>/<virtual host name>/<exchange name>/<queue name>/<binding name></para></listitem> - <listitem><para>/api/<version>/binding/<virtual host node name>/<virtual host name>/<exchange name>/<queue name>/<binding name></para></listitem> - </itemizedlist> - </entry> - <entry> - <para>Manages(creates/deletes) Binding(s) of Queue to Exchange and provides current values of Binding attributes</para> - </entry> - </row> - <row> - <entry> - <itemizedlist> - <listitem><para>/api/latest/connection</para></listitem> - <listitem><para>/api/<version>/connection</para></listitem> - <listitem><para>/api/latest/connection/<virtual host node name></para></listitem> - <listitem><para>/api/<version>/connection/<virtual host node name></para></listitem> - <listitem><para>/api/latest/connection/<virtual host node name>/<virtual host name></para></listitem> - <listitem><para>/api/<version>/connection/<virtual host node name>/<virtual host node name></para></listitem> - <listitem><para>/api/latest/connection/<virtual host node name>/<virtual host name>/<connection name></para></listitem> - <listitem><para>/api/<version>/connection/<virtual host node name>/<virtual host node name>/<connection name></para></listitem> - </itemizedlist> - </entry> - <entry> - <para>Manages (deletes) Connection(s) on VirtualHost and provides current values of Connection attributes and its Sessions</para> - </entry> - </row> - <row> - <entry> - <itemizedlist> - <listitem><para>/api/latest/session</para></listitem> - <listitem><para>/api/<version>/session</para></listitem> - <listitem><para>/api/latest/session/<virtual host node name></para></listitem> - <listitem><para>/api/<version>/session/<virtual host node name></para></listitem> - <listitem><para>/api/latest/session/<virtual host node name>/<virtual host name></para></listitem> - <listitem><para>/api/<version>/session/<virtual host node name>/<virtual host node name></para></listitem> - <listitem><para>/api/latest/session/<virtual host node name>/<virtual host name>/<connection name></para></listitem> - <listitem><para>/api/<version>/session/<virtual host node name>/<virtual host node name>/<connection name</para></listitem> - <listitem><para>/api/latest/session/<virtual host node name>/<virtual host name>/<connection name>/<session name></para></listitem> - <listitem><para>/api/<version>/session/<virtual host node name>/<virtual host node name>/<connection name>/<session name></para></listitem> - </itemizedlist> - </entry> - <entry> - <para>Manages (deletes) Session(s) on Connection and provides values of Session attributes and its Consumers</para> - </entry> - </row> - <row> - <entry> - <itemizedlist> - <listitem><para>/api/latest/port</para></listitem> - <listitem><para>/api/<version>/port</para></listitem> - <listitem><para>/api/latest/port/<port name></para></listitem> - <listitem><para>/api/<version>/port/<port name></para></listitem> - </itemizedlist> - </entry> - <entry> - <para>Manages(creates/deletes/updates) Port(s) on Broker and provides the information about current values of Port attributes and its children</para> - </entry> - </row> - <row> - <entry> - <itemizedlist> - <listitem><para>/api/latest/authenticationprovider</para></listitem> - <listitem><para>/api/<version>/authenticationprovider</para></listitem> - <listitem><para>/api/latest/authenticationprovider/<authentication provider name></para></listitem> - <listitem><para>/api/<version>/authenticationprovider/<authentication provider name></para></listitem> - </itemizedlist> - </entry> - <entry> - <para>Manages(creates/deletes/updates) AuthenticationProvider(s) on Broker and provides the information about current values of AuthenticationProvider attributes and its children</para> - </entry> - </row> - <row> - <entry> - <itemizedlist> - <listitem><para>/api/latest/user</para></listitem> - <listitem><para>/api/<version>/user</para></listitem> - <listitem><para>/api/latest/user/<authentication provider name>/<user name></para></listitem> - <listitem><para>/api/<version>/user/<authentication provider name>/<user name></para></listitem> - <listitem><para>/api/latest/user/<authentication provider name>/<user name></para></listitem> - <listitem><para>/api/<version>/user/<authentication provider name>/<user name></para></listitem> - </itemizedlist> - </entry> - <entry> - <para>Manages(creates/deletes/updates) User(s) on AuthenticationProvider and provides the information about current values of User attributes</para> - </entry> - </row> - <row> - <entry> - <itemizedlist> - <listitem><para>/api/latest/accesscontrolprovider</para></listitem> - <listitem><para>/api/<version>/accesscontrolprovider</para></listitem> - <listitem><para>/api/latest/accesscontrolprovider/<access control provider name></para></listitem> - <listitem><para>/api/<version>/accesscontrolprovider/<access control provider name></para></listitem> - </itemizedlist> - </entry> - <entry> - <para>Manages(creates/deletes/updates) AccessControlProvider on Broker and provides the information about current values of AccessControlProvider attributes</para> - </entry> - </row> - <row> - <entry> - <itemizedlist> - <listitem><para>/api/latest/groupprovider</para></listitem> - <listitem><para>/api/<version>/groupprovider</para></listitem> - <listitem><para>/api/latest/groupprovider/<group provider name></para></listitem> - <listitem><para>/api/<version>/groupprovider/<group provider name></para></listitem> - </itemizedlist> - </entry> - <entry> - <para>Manages(creates/deletes/updates) GroupProvider on Broker and provides the information about current values of GroupProvider attributes and its children</para> - </entry> - </row> - <row> - <entry> - <itemizedlist> - <listitem><para>/api/latest/group</para></listitem> - <listitem><para>/api/<version>/group</para></listitem> - <listitem><para>/api/latest/group/<group provider name></para></listitem> - <listitem><para>/api/<version>/group/<group provider name></para></listitem> - <listitem><para>/api/latest/group/<group provider name>/<group name></para></listitem> - <listitem><para>/api/<version>/group/<group provider name>/<group name></para></listitem> - </itemizedlist> - </entry> - <entry> - <para>Manages(creates/deletes/updates) Group on GroupProvider and provides the information about current values of Group attributes and its children</para> - </entry> - </row> - <row> - <entry> - <itemizedlist> - <listitem><para>/api/latest/groupmember</para></listitem> - <listitem><para>/api/<version>/groupmember</para></listitem> - <listitem><para>/api/latest/groupmember/<group provider name></para></listitem> - <listitem><para>/api/<version>/groupmember/<group provider name></para></listitem> - <listitem><para>/api/latest/groupmember/<group provider name>/<group name></para></listitem> - <listitem><para>/api/<version>/groupmember/<group provider name>/<group name></para></listitem> - <listitem><para>/api/latest/groupmember/<group provider name>/<group name>/<user name></para></listitem> - <listitem><para>/api/<version>/groupmember/<group provider name>/<group name>/<user name></para></listitem> - </itemizedlist> - </entry> - <entry> - <para>Manages(creates/deletes) GroupMember(s) on Group and provides the information about current values of GroupMember attributes</para> - </entry> - </row> - <row> - <entry> - <itemizedlist> - <listitem><para>/api/latest/keystore</para></listitem> - <listitem><para>/api/<version>/keystore</para></listitem> - <listitem><para>/api/latest/keystore/<key store name></para></listitem> - <listitem><para>/api/<version>/keystore/<key store name></para></listitem> - </itemizedlist> - </entry> - <entry> - <para>Manages(creates/deletes/updates) KeyStore(s) on Broker and provides the information about current values of KeyStore attributes</para> - </entry> - </row> - <row> - <entry> - <itemizedlist> - <listitem><para>/api/latest/truststore</para></listitem> - <listitem><para>/api/<version>/truststore</para></listitem> - <listitem><para>/api/latest/truststore/<trust store name></para></listitem> - <listitem><para>/api/<version>/truststore/<trust store name></para></listitem> - </itemizedlist> - </entry> - <entry> - <para>Manages(creates/deletes/updates) TrustStore(s) on Broker and provides the information about current values of TrustStore attributes</para> - </entry> - </row> - <row> - <entry> - <itemizedlist> - <listitem><para>/api/latest/preferencesprovider</para></listitem> - <listitem><para>/api/<version>/preferencesprovider</para></listitem> - <listitem><para>/api/latest/preferencesprovider/<authentication provider name></para></listitem> - <listitem><para>/api/<version>/preferencesprovider/<authentication provider name></para></listitem> - <listitem><para>/api/latest/preferencesprovider/<authentication provider name>/<preferences provider name></para></listitem> - <listitem><para>/api/<version>/preferencesprovider/<authentication provider name>/<preferences provider name></para></listitem> - </itemizedlist> - </entry> - <entry> - <para>Manages(creates/deletes/updates) PreferencesProvider on AuthenticationProvider and provides the information about current values of PreferencesProvider attributes</para> - </entry> - </row> - <row> - <entry> - <itemizedlist> - <listitem><para>/api/latest/plugin</para></listitem> - <listitem><para>/api/<version>/plugin</para></listitem> - <listitem><para>/api/latest/plugin/<plugin name></para></listitem> - <listitem><para>/api/<version>/plugin/<plugin name></para></listitem> - </itemizedlist> - </entry> - <entry> - <para>Manages(creates/deletes/updates) Plugin(s) on Broker and provides the information about current values of Plugin attributes</para> - </entry> - </row> - <row> - <entry> - <itemizedlist> - <listitem><para>/api/latest/replicationnode</para></listitem> - <listitem><para>/api/<version>/replicationnode</para></listitem> - <listitem><para>/api/latest/replicationnode/<virtual host node name></para></listitem> - <listitem><para>/api/<version>/replicationnode/<virtual host node name></para></listitem> - <listitem><para>/api/latest/replicationnode/<virtual host node name>/<replication node name></para></listitem> - <listitem><para>/api/<version>/replicationnode/<virtual host node name>/<replication node name></para></listitem> - </itemizedlist> - </entry> - <entry> - <para>Manages(creates/deletes/updates) ReplicationNode(s) on VirtualHostNode and provides the information about current values of ReplicationNode attributes</para> - </entry> - </row> - <row> - <entry> - <para>/service/message/<virtualhost name>/<queue name></para> - </entry> - <entry>Rest service to manage messages(s). Retrieves the details about the messages(s) with GET. Copies, moves messages with POST requests. Deletes messages with DELETE requests </entry> - </row> - <row> - <entry> - <para>/service/message-content/<virtualhost name>/<queue name></para> - </entry> - <entry>Rest service to retrieve message content</entry> - </row> - <row> - <entry> - <para>/service/logrecords</para> - </entry> - <entry>Rest service to retrieve broker logs</entry> - </row> - <row> - <entry> - <para>/service/sasl</para> - </entry> - <entry>Sasl authentication. Retrieves user current authentication status and broker supported SASL mechanisms (GET). Authenticates user using supported SASL mechanisms (PUT requests)</entry> - </row> - <row> - <entry> - <para>/service/logout</para> - </entry> - <entry>Log outs user (GET only)</entry> - </row> - </tbody> - </tgroup> - </table> - </section> - <section id="Java-Broker-Management-Channel-REST-API-Create"> - <title>Configured Object creation</title> - <para>Methods PUT or POST can be used to create ConfiguredObject.</para> - <para> - ConfiguredObject can be created by submitting PUT request against ConfiguredObject full URI (the one ending with configured object name) - or by submitting PUT/POST request against parent URI. - The request encoding should be json (application/json) and request body should contain attributes values in json format. - On successful completion of operation a response should be returned having response status code set to 201 and response header "Location" set to ConfiguredObject full URI. - If object with a such name/id already exist and POST/PUT requests is made against parent URI, - an error response should be returned having response code 409 (conflict) and body containing the json with the reason of operation failure. - If object with a such name/id already exist and and PUT request is made against ConfiguredObject full URI, - then ConfiguredObject update should be performed and http status code 200 should be returned. - If ConfiguredObject cannot be created because of validation failure(s) the response should have http status code set 422 (Unprocessible Entity) - and body should contain json with the reason of operation failure. On any other failure to create ConfiguredObject the response should have status code set to 400 (Bad Request) - and payload should contain a json with error explaining the exact reason of failure. - </para> - <example> - <title>Examples of REST calls for Queue creation</title> - <para> - To create Queue with name "my-queue" on a virtual host with name "vh" (which is contained within virtual host node with name "vhn") either of the following requests should be made: - </para> - <screen><![CDATA[PUT /api/latest/queue/vhn/vh HTTP/1.1]]></screen> - <screen><![CDATA[POST /api/latest/queue/vhn/vh HTTP/1.1]]></screen> - <screen><![CDATA[PUT /api/latest/queue/vhn/vh/my-queue HTTP/1.1]]></screen> - <para> - Response code 201 should be returned on successful queue creation. Response header "Location" should be set to "/api/latest/queue/test/my-queue". - If queue with name "my-queue" already exists and either of 2 first requests above were used, an error response with response code 409 (conflict) and body containing json with message - that queue exists should be returned. If queue with name "my-queue" exists and last request is used, then Queue update should occur. - </para> - </example> - </section> - <section id="Java-Broker-Management-Channel-REST-API-Update"> - <title>Configured Object update</title> - <para>Methods PUT or POST can be used to update ConfiguredObject.</para> - <para> - ConfiguredObject can be updated by submitting PUT or POST request against ConfiguredObject full URI (the one ending with configured object name). - The request encoding should be json (application/json) and request body should contain a ConfiguredObject json (with all or only modified attributes). - On successful completion of operation a response code 200 should be returned. - If ConfiguredObject does not exists and PUT method is used, such object should be created (201 response will be returned in this case). - If ConfiguredObject does not exists and POST method is used, an error response should be returned having response status code 404 and payload with json explaining the problem. - If any error occur on update, a response with response code 400 or 422 or 404 should be sent back to the client containing json body with error details. - </para> - <example> - <title>Examples of REST calls for Queue update</title> - <para>To update Queue with name "my-queue" on a virtual host with name "vh" (contained in virtual host node with name "vhn") either of the following requests can be made:</para> - <screen><![CDATA[POST /api/latest/queue/vhn/vh/my-queue HTTP/1.1]]></screen> - <screen><![CDATA[POST /api/latest/queue/vhn/vh/my-queue HTTP/1.1]]></screen> - </example> - </section> - <section id="Java-Broker-Management-Channel-REST-API-Delete"> - <title>Configured Object deletion</title> - <para>Method DELETE can be used to delete ConfiguredObject. Alternatively, ConfiguredObject can be deleted with update request having desiredState attribute set to value "DELETED". - POST or PUT methods can be used in this case.</para> - <para>On successful completion of operation a response code 200 should be returned.</para> - <para>With DELETE method object ConfiguredObject in following ways:</para> - <itemizedlist> - <listitem> - <para>by submitting DELETE request using ConfiguredObject full URI (the one ending with configured object name)</para> - </listitem> - <listitem> - <para>by submitting DELETE request using parent URI and providing parameters having the same names as children attributes, for example, id, name, etc. - Multiple children can be deleted in a such way. Many "id" parameters can be specified in such requests. Only children with matching attribute values will be deleted.</para> - </listitem> - </itemizedlist> - <example> - <title>Examples of REST calls for Queue deletion</title> - <para>To delete Queue with name "my-queue" on a virtual host with name "vh" (contained in virtual host node with name "vhn") either of the following requests can be made:</para> - <screen><![CDATA[DELETE /api/latest/queue/vhn/vh/my-queue HTTP/1.1]]></screen> - <screen><![CDATA[DELETE /api/latest/queue/vhn/vh?name=my-queue HTTP/1.1]]></screen> - <screen><![CDATA[DELETE /api/latest/queue/vhn/vh?id=real-queue-id HTTP/1.1]]></screen> - </example> - </section> - <section id="Java-Broker-Management-Channel-REST-API-Get"> - <title>Retrieving Configured Object details</title> - <para>Method GET is used to retrieve ConfiguredObject attributes values and children hierarchy.</para> - <para>A particular ConfiguredObject details can be retrieved using full ConfiguredObject URI (the one ending with configured object name)</para> - <para>A collection of ConfiguredObjects can be retrieved using parent URI. Request parameters - (having the same name as attributes) can be used to filter the returned configured objects.</para> - <para>The REST URI (/api/latest/>category</*) are hierarchical. It is permitted to replace REST URI elements with an - "asterisks" in GET requests to denote all object of a particular type. Additionally, trailing - object type in the URL hierarchy can be omitted. In this case GET request will return all of the - object underneath of the current object.</para> - <para>For example, for binding URL <literal>http://localhost:8080/api/latest/binding/<vhost - node>/<vhost>/<exchange>/<queue>/<binding></literal> replacing of - <literal><exchange></literal> with "asterisks" - (<literal>http://localhost:8080/api/<ver>/binding/<vhost - node>/<vhost>/*/<queue>/<binding></literal>) will result in the GET - response containing the list of bindings for all of the exchanges in the virtualhost having the - given name and given queue.</para> - <para>If <literal><binding></literal> and <literal><queue></literal> are omitted in - binding REST URL (<literal>http://localhost:8080/api/<ver>/binding/<vhost - node>/<vhost>/<exchangename></literal>) the GET request will result in - returning all bindings for all queues for the given exchange in the virtual host. </para> - <para>Additional parameters supported in GET requests:</para> - <variablelist> - <varlistentry> - <term>depth</term><listitem><para>To restrict the depth of hierarchy of configured objects to return in response</para></listitem> - </varlistentry> - <varlistentry> - <term>actuals</term><listitem><para>If set to "true" attribute actual values are returned instead of effective</para></listitem> - </varlistentry> - <varlistentry> - <term>includeSysContext</term><listitem><para>If set to "true" all system context variables are returned</para></listitem> - </varlistentry> - <varlistentry> - <term>inheritedActuals</term><listitem><para>If set to "true" actual values for all inherited context is returned.</para></listitem> - </varlistentry> - <varlistentry> - <term>oversize</term><listitem><para>Sets the maximum length for values of over-sized attributes to trim</para></listitem> - </varlistentry> - <varlistentry> - <term>extractInitialConfig</term><listitem><para>If set to "true", the returned json can be used as initial configuration.</para></listitem> - </varlistentry> - </variablelist> - </section> - <section id="Java-Broker-Management-Channel-REST-API-Status-Codes"> - <title>HTTP status codes returned by REST interfaces</title> - <table> - <title>HTTP status codes returned by REST interfaces</title> - <tgroup cols="2"> - <thead> - <row> - <entry>Status code</entry> - <entry>Description</entry> - </row> - </thead> - <tbody> - <row> - <entry> - <para>200</para> - </entry> - <entry> - <para>REST request is successfully completed. This status code can be returned by update, delete and get requests.</para> - </entry> - </row> - <row> - <entry> - <para>201</para> - </entry> - <entry> - <para>New configured object is created. It is returned by REST PUT and POST requests for creation of configured objects.</para> - </entry> - </row> - <row> - <entry> - <para>400</para> - </entry> - <entry> - <para>REST request cannot be performed due to errors in request. - It can be returned from create, update and delete requests. - The details of a problem are provided in the response payload in json format.</para> - </entry> - </row> - <row> - <entry> - <para>401</para> - </entry> - <entry> - <para>The request requires user authentication</para> - </entry> - </row> - <row> - <entry> - <para>403</para> - </entry> - <entry> - <para>Execution of request is not allowed due to failure to authorize user operation.</para> - </entry> - </row> - <row> - <entry> - <para>404</para> - </entry> - <entry> - <para> - The requested configured object cannot be found. This status code can be returned from POST update requests if configured object does not exist. - The reason for the status code is provided in the response payload in json format. - </para> - </entry> - </row> - <row> - <entry> - <para>409</para> - </entry> - <entry> - <para>The request can not be performed because its execution can create conflicts in the broker. - This status code can be returned from POST/PUT create requests against parent URI if configured object with requested name or id already exists. - The status code 409 can also be returned if removal or update of configured object can violate system integrity. - The reason for the status code is provided in the response payload in json format. - </para> - </entry> - </row> - <row> - <entry> - <para>422</para> - </entry> - <entry> - <para>The request can not be performed because provided information either incomplete or invalid. - This status code can be returned from create or update requests. - The reason for the status code is provided in the response payload in json format.</para> - </entry> - </row> - </tbody> - </tgroup> - </table> - </section> - <section id="Java-Broker-Management-Channel-REST-API-Examples"> - <title>Examples of REST requests with curl</title> - <example> - <title>Examples of queue creation using curl (authenticating as user admin):</title> - <programlisting><![CDATA[ -#create a durable queue -curl --user admin -X PUT -d '{"durable":true}' http://localhost:8080/api/latest/queue/<vhostnode name>/<vhostname>/<queuename> -#create a durable priority queue -curl --user admin -X PUT -d '{"durable":true,"type":"priority"}' http://localhost:8080/api/latest/queue/<vhostnode name>/<vhostname>/<queuename> - ]]></programlisting> - </example> - <example> - <title>Example of binding a queue to an exchange using curl</title> - <programlisting><![CDATA[ -curl --user admin -X PUT -d '{}' http://localhost:8080/api/latest/binding/<vhostnode name>/<vhostname>/<exchangename>/<queue-name>/<binding-name> - ]]></programlisting> - </example> - <para> NOTE: These curl examples utilise unsecure HTTP transport. To use the examples it is first - necessary enable Basic authentication for HTTP within the HTTP Management Configuration (it is - off by default). For details see <xref linkend="Java-Broker-Management-Managing-Plugin-HTTP"/> - </para> - </section> -</section> 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 deleted file mode 100644 index d9f141f01a..0000000000 --- a/qpid/doc/book/src/java-broker/management/channels/Java-Broker-Management-Channel-Web-Console.xml +++ /dev/null @@ -1,232 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section 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 controlled, - including: <itemizedlist> - <listitem> - <para>add, remove and monitor queues</para> - </listitem> - <listitem> - <para>inspect, move, copy or delete messages</para> - </listitem> - <listitem> - <para>add, remove and monitor virtualhosts</para> - </listitem> - <listitem> - <para>configure and control high availability</para> - </listitem> - </itemizedlist> - </para> - <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 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> - <figure> - <title>Web Management Console - Authentication</title> - <mediaobject> - <imageobject> - <imagedata fileref="images/Management-Web-Auth.png" format="PNG" scalefit="1" - width="900px"/> - </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> - <figure> - <title>Web Management Orientation - Console</title> - <mediaobject> - <imageobject> - <imagedata fileref="images/Management-Web-Console.png" format="PNG" scalefit="1" - width="900px"/> - </imageobject> - <textobject> - <phrase>The Web Console</phrase> - </textobject> - </mediaobject> - </figure> - <para> - <itemizedlist> - <listitem> - <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> - </listitem> - <listitem> - <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> - </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> - </listitem> - </itemizedlist> - </para> - <figure id="Java-Broker-Management-Channel-Web-Console-Orientation-Tab"> - <title>Web Management Orientation - Tab</title> - <mediaobject> - <imageobject> - <imagedata fileref="images/Management-Web-Tab.png" format="PNG" scalefit="1" - width="900px"/> - </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> - </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> - </listitem> - <listitem> - <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> - </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 (which may be expressed in terms - of a context variable) 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-Managing-Entities-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 showing field level help</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-Managing-Entities-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-Managing-Entities-Context-Variables-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 variables 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 ones.</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-Access-Control-Providers.xml b/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Access-Control-Providers.xml deleted file mode 100644 index 5e05545daf..0000000000 --- a/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Access-Control-Providers.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section id="Java-Broker-Management-Managing-Access-Control-Providers"> - <title>Access Control Providers</title> - <para>An <link linkend="Java-Broker-Concepts-Access-Control-Providers">Access Control - Provider</link> governs who may do what within the Broker. It governs both messaging and - management.</para> - <para>See <xref linkend="Java-Broker-Security-ACLs"/></para> -</section> diff --git a/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Authentication-Providers.xml b/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Authentication-Providers.xml deleted file mode 100644 index f6af69cacf..0000000000 --- a/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Authentication-Providers.xml +++ /dev/null @@ -1,92 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" - "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section id="Java-Broker-Management-Managing-Authentication-Providers"> - <title>Authentication Providers</title> - <para> - <link linkend="Java-Broker-Concepts-Authentication-Providers">Authentication - Providers</link> are used by <link linkend="Java-Broker-Concepts-Ports">Ports</link> to - authenticate connections.</para> - <para>See <xref linkend="Java-Broker-Security-Authentication-Providers"/></para> - - <section id="Java-Broker-Management-Managing-Authentication-Providers-Types"> - <title>Types</title> - <para> The following authentication providers are supported: <itemizedlist> - <listitem><para><link linkend="Java-Broker-Security-Anonymous-Provider" - >Anonymous</link>: allows anonymous connections to the - Broker</para></listitem> - <listitem><para><link linkend="Java-Broker-Security-External-Provider" - >External</link>: delegates to external mechanisms such as SSL Client - Certificate Authentication</para></listitem> - <listitem><para><link linkend="Java-Broker-Security-Kerberos-Provider" - >Kerberos</link>: uses Kerberos to authenticate connections via - GSS-API.</para></listitem> - <listitem><para><link linkend="Java-Broker-Security-LDAP-Provider" - >SimpleLDAP</link>: authenticate users against an LDAP - server.</para></listitem> - <listitem><para><link linkend="Java-Broker-Security-ScramSha-Providers" - >ScramSha</link>: authenticate users against credentials stored in a - local database</para></listitem> - <listitem><para><link linkend="Java-Broker-Security-Plain-Provider" - >Plain</link>: authenticate users against credentials stored in a local - database.</para></listitem> - <listitem><para><link linkend="Java-Broker-Security-PlainPasswordFile-Provider" - >PlainPasswordFile</link>: authenticate users against credentials stored - in plain text in a local file.</para></listitem> - <listitem><para><link linkend="Java-Broker-Security-MD5-Provider" - >MD5</link>: authenticate users against credentials - stored in a local database.</para></listitem> - <listitem><para><link linkend="Java-Broker-Security-Base64MD5PasswordFile-Provider" - >Base64MD5PasswordFile</link>: authenticate users against credentials - stored encoded in a local file.</para></listitem> - </itemizedlist> - </para> - <para>The last five providers offer user management facilities too, that is, users can - be created, deleted and passwords reset.</para> - </section> - - <section id="Java-Broker-Management-Managing-Authentication-Providers-Attributes"> - <title>Attributes</title> - <para> - <itemizedlist> - <listitem> - <para><emphasis>Name the authentication provider</emphasis>.</para> - </listitem> - </itemizedlist> - </para> - <para>Other attributes are provider specific.</para> - </section> - <section id="Java-Broker-Management-Managing-Authentication-Providers-Children"> - <title>Children</title> - <para>None</para> - </section> - <section id="Java-Broker-Management-Managing-Authentication-Providers-Lifecycle"> - <title>Lifecycle</title> - <para>Not supported</para> - <important> - <para>When updating an existing authentication provider, changes become effective until - the Broker is restarted.</para> - </important> - </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 deleted file mode 100644 index 54e9d81ff1..0000000000 --- a/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Broker.xml +++ /dev/null @@ -1,98 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section 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 of 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"> - <title>Attributes</title> - <para> - <itemizedlist> - <listitem> - <para><emphasis>Name the Broker</emphasis>. This helps distinguish between Brokers in - environments that have many.</para> - </listitem> - <listitem> - <para><emphasis>Default Virtualhost</emphasis>. The default virtualhost is the one that - messaging clients will connect to if they do not specify a virtualhost name when they - form the connect to the Broker.</para> - </listitem> - <listitem> - <para><emphasis>Heartbeating</emphasis>. Enables heartbeats between Broker and Clients. - Heartbeats help discover severed TCP/IP connections in a timely manner.</para> - </listitem> - </itemizedlist> - </para> - </section> - <section id="Java-Broker-Management-Managing-Broker-Context"> - <title>Context</title> - <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 <link - linkend="Java-Broker-Runtime-Message-Compression">message compression</link> .</para> - </listitem> - </itemizedlist> - </para> - </section> - <section id="Java-Broker-Management-Managing-Broker-Children"> - <title>Children</title> - <para> - <itemizedlist> - <listitem> - <para> - <link linkend="Java-Broker-Management-Managing-Virtualhost-Nodes">Virtualhost - nodes</link> - </para> - </listitem> - <listitem> - <para> - <link linkend="Java-Broker-Management-Managing-Ports">Ports</link> - </para> - </listitem> - <listitem> - <para>Authentication Providers</para> - </listitem> - <listitem> - <para>Key Stores / Trust Stores</para> - </listitem> - <listitem> - <para>Group Providers</para> - </listitem> - <listitem> - <para>Access Control Providers</para> - </listitem> - </itemizedlist> - </para> - </section> - <section id="Java-Broker-Management-Managing-Broker-Lifecycle"> - <title>Lifecycle</title> - <para>Not supported</para> - </section> -</section> diff --git a/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Entities-Matrix.xml b/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Entities-Matrix.xml deleted file mode 100644 index 3ac1214da2..0000000000 --- a/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Entities-Matrix.xml +++ /dev/null @@ -1,143 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section id="Java-Broker-Management-Managing-Entities-Matrix"> - <title>Entity/Management Channel Support Matrix</title> - <para>This tables indicates which management channels support the creation (C), update (U), or - deletion (D) of different entities within the Broker.</para> - <table frame="all"> - <title>Entity/Management Matrix</title> - <tgroup cols="4" align="left" colsep="1" rowsep="1"> - <colspec colname="entity"/> - <colspec colname="http"/> - <colspec colname="jmx"/> - <colspec colname="amqp"/> - <thead> - <row> - <entry>Entity</entry> - <entry>HTTP</entry> - <entry>JMX</entry> - <entry>AMQP</entry> - </row> - </thead> - <tbody> - <row> - <entry>Broker</entry> - <entry>U</entry> - <entry>No</entry> - <entry>No</entry> - </row> - <row> - <entry>Virtualhost Node</entry> - <entry>C/U/D</entry> - <entry>No</entry> - <entry>No</entry> - </row> - <row> - <entry>Virtualhost</entry> - <entry>C/U/D</entry> - <entry>No</entry> - <entry>No</entry> - </row> - <row> - <entry>Remote Replication Node</entry> - <entry>U/D</entry> - <entry>No</entry> - <entry>No</entry> - </row> - <row> - <entry>Exchange</entry> - <entry>C/D</entry> - <entry>C/D</entry> - <entry>C/D</entry> - </row> - <row> - <entry>Queue</entry> - <entry>C/D</entry> - <entry>C/U/D</entry> - <entry>C/D</entry> - </row> - <row> - <entry>Binding</entry> - <entry>C/D</entry> - <entry>C/D</entry> - <entry>C/D</entry> - </row> - <row> - <entry>Port</entry> - <entry>C/U/D</entry> - <entry>No</entry> - <entry>No</entry> - </row> - <row> - <entry>Authentication Providers</entry> - <entry>C/U/D</entry> - <entry>No</entry> - <entry>No</entry> - </row> - <row> - <entry>Group Providers</entry> - <entry>C//D</entry> - <entry>No</entry> - <entry>No</entry> - </row> - <row> - <entry>Access Control Provider</entry> - <entry>C//D</entry> - <entry>No</entry> - <entry>No</entry> - </row> - <row> - <entry>Keystores</entry> - <entry>C//D</entry> - <entry>No</entry> - <entry>No</entry> - </row> - <row> - <entry>Truststores</entry> - <entry>C//D</entry> - <entry>No</entry> - <entry>No</entry> - </row> - <row> - <entry>Users</entry> - <entry>C//D</entry> - <entry>C/D</entry> - <entry>No</entry> - </row> - <row> - <entry>Groups</entry> - <entry>C//D</entry> - <entry>No</entry> - <entry>No</entry> - </row> - - </tbody> - </tgroup> - </table> - <important> - <title>Note</title> - <para>It is currently only possible to modify a entity's context using the HTTP channel. - Furthermore, when using the JMX channel, it is not possible to assign non-String type - attributes in terms of context variables.</para> - </important> -</section> diff --git a/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Exchanges.xml b/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Exchanges.xml deleted file mode 100644 index e24733c5b3..0000000000 --- a/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Exchanges.xml +++ /dev/null @@ -1,79 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section id="Java-Broker-Management-Managing-Exchanges"> - <title>Exchanges</title> - <para><link linkend="Java-Broker-Concepts-Exchanges">Exchanges</link> can be managed using the - HTTP, JMX or AMQP channels.</para> - <section id="Java-Broker-Management-Managing-Exchanges-Types"> - <title>Types</title> - <para><itemizedlist> - <listitem> - <para>Direct</para> - </listitem> - <listitem> - <para>Topic</para> - </listitem> - <listitem> - <para>Fanout</para> - </listitem> - <listitem> - <para>Headers</para> - </listitem> - </itemizedlist> - </para> - </section> - <section id="Java-Broker-Management-Managing-Exchanges-Attributes"> - <title>Attributes</title> - <para><itemizedlist> - <listitem> - <para><emphasis>Name of the exchange</emphasis>. Message producers refer to this name when - producing messages.</para> - </listitem> - <listitem> - <para><emphasis>Type of the exchange</emphasis>. Can be either <link - linkend="Java-Broker-Concepts-Exchanges-Types-Direct">direct</link>, <link - linkend="Java-Broker-Concepts-Exchanges-Types-Topic">topic</link>, <link - linkend="Java-Broker-Concepts-Exchanges-Types-Fanout">fanout</link>, or <link - linkend="Java-Broker-Concepts-Exchanges-Types-Headers">headers</link>.</para> - </listitem> - <listitem> - <para><emphasis>Durable</emphasis>. Whether the exchange survives a restart.</para> - </listitem> - </itemizedlist></para> - </section> - <section id="Java-Broker-Management-Managing-Exchanges-Children"> - <title>Children</title> - <para> - <itemizedlist> - <listitem> - <para>Binding</para> - </listitem> - </itemizedlist> - </para> - </section> - <section id="Java-Broker-Management-Managing-Exchanges-Lifecycle"> - <title>Lifecycle</title> - <para>Not supported</para> - </section> - -</section> diff --git a/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Group-Providers.xml b/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Group-Providers.xml deleted file mode 100644 index 330b451550..0000000000 --- a/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Group-Providers.xml +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section id="Java-Broker-Management-Managing-Group-Providers"> - <title>Group Providers</title> - <para>See <xref linkend="Java-Broker-Security-Group-Providers"/></para> -</section> diff --git a/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Keystores.xml b/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Keystores.xml deleted file mode 100644 index 5e582027ae..0000000000 --- a/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Keystores.xml +++ /dev/null @@ -1,74 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!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. - ---> - -<section id="Java-Broker-Management-Managing-Keystores"> - <title>Keystores</title> - <para>A <link linkend="Java-Broker-Concepts-Keystores">Keystore</link> is required by a Port - in order to use SSL.</para> - <section id="Java-Broker-Management-Managing-Keystores-Attributes"> - <title>Attributes</title> - <para><itemizedlist> - <listitem> - <para><emphasis>Name the keystore</emphasis>. Used to identify the - keystore.</para> - </listitem> - <listitem> - <para><emphasis>Path</emphasis>. Path to keystore file</para> - </listitem> - <listitem> - <para><emphasis>Keystore password</emphasis>. Password used to secure the keystore<important> - <para> The password of the certificate used by the Broker <emphasis - role="bold">must</emphasis> match the password of the keystore - itself. This is a restriction of the Qpid Broker implementation. If - using the <ulink url="&oracleKeytool;">keytool</ulink> utility, note - that this means the argument to the <option>-keypass</option> option - must match the <option>-storepass</option> option. </para> - </important></para> - </listitem> - <listitem> - <para><emphasis>Certificate Alias</emphasis>. An optional way of specifying - which certificate the broker should use if the keystore contains multiple - entries.</para> - </listitem> - <listitem> - <para><emphasis>Manager Factory Algorithm</emphasis>. In keystores the have more - than one certificate, the alias identifies the certificate to be - used.</para> - </listitem> - <listitem> - <para><emphasis>Key Store Type</emphasis>. Type of Keystore.</para> - </listitem> - </itemizedlist></para> - </section> - <section id="Java-Broker-Management-Managing-Keystores-Children"> - <title>Children</title> - <para>None</para> - </section> - <section id="Java-Broker-Management-Managing-Keystores-Lifecycle"> - <title>Lifecycle</title> - <para>Not supported</para> - </section> -</section> 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 deleted file mode 100644 index 07b7b83ab8..0000000000 --- a/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Plugins-HTTP.xml +++ /dev/null @@ -1,63 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section 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 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> - <itemizedlist> - <listitem> - <para><emphasis>Basic Authentication for HTTP</emphasis>. It is set to false - (disabled) by default.</para> - </listitem> - <listitem> - <para><emphasis>Basic Authentication for HTTPS</emphasis>. It is set to true - (enabled) by default.</para> - </listitem> - <listitem> - <para><emphasis>SASL Authentication for HTTP</emphasis>. It is set to true - (enabled) by default.</para> - </listitem> - <listitem> - <para><emphasis>SASL Authentication for HTTPS</emphasis>. It is set to true - (enabled) by default.</para> - </listitem> - <listitem> - <para><emphasis>Session timeout</emphasis> is the timeout in seconds to close - the HTTP session. It is set to 10 minutes by default.</para> - </listitem> - </itemizedlist> - </para> - </section> - <section id="Java-Broker-Management-Managing-Plugin-HTTP-Children"> - <title>Children</title> - <para>None</para> - </section> - <section id="Java-Broker-Management-Managing-Plugin-HTTP-Lifecycle"> - <title>Lifecycle</title> - <para>Not supported<important><para>NOTE: Changes to the Session Timeout attribute only take - effect at broker restart. </para></important></para> - </section> -</section> 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 deleted file mode 100644 index 2b933e5d8f..0000000000 --- a/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Plugins-JMX.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section 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 management channel</link>. - </para> - <para>TODO</para> -</section> diff --git a/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Ports.xml b/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Ports.xml deleted file mode 100644 index 86fa3dfb82..0000000000 --- a/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Ports.xml +++ /dev/null @@ -1,95 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section id="Java-Broker-Management-Managing-Ports"> - <title>Ports</title> - <para>Ports provide TCP/IP connectivity for messaging and management. A port is defined to use a - protocol. This can be an AMQP protocol for messaging or HTTP/JMX for management.</para> - <para>A port is defined to have one or more transports. A transport can either be plain (TCP) or - SSL. When SSL is in use, the port can be configured to accept or require client - authentication.</para> - <para>Any number of ports defined to use AMQP or HTTP protocols can be defined. JMX is limited - to a single port instance per JMX protocol type.</para> - <para>Ports can only be managed by the HTTP management channel.</para> - <section id="Java-Broker-Management-Managing-Ports-Attributes"> - <title>Attributes</title> - <para><itemizedlist> - <listitem> - <para><emphasis>Name the port</emphasis>.</para> - </listitem> - <listitem> - <para><emphasis>Port number</emphasis>.</para> - </listitem> - <listitem> - <para><emphasis>Binding address</emphasis>. Used to limit port binding to a - single network interface.</para> - </listitem> - <listitem> - <para><emphasis>Authentication Provider</emphasis>. The <link - linkend="Java-Broker-Concepts-Authentication-Providers">authentication - provider</link> used to authenticate incoming connections.</para> - </listitem> - <listitem> - <para><emphasis>Protocol(s)</emphasis>. A list of protocols to be supported by - the port. For messaging choose one or more AMQP protocols. For management - choose HTTP or on one the two JMX protocols.</para> - </listitem> - <listitem> - <para><emphasis>Transports</emphasis>. A list of transports supported by the - port. For messaging or HTTP management chose TCP, SSL or both. For JMX, the - TCP/SSL combination is not supported.</para> - </listitem> - <listitem> - <para><emphasis>Keystore</emphasis>. <link - linkend="Java-Broker-Management-Managing-Keystores">Keystore</link> - containing the Broker's private key. Required if the SSL is in use.</para> - </listitem> - <listitem> - <para><emphasis>Want/Need Client Auth</emphasis>. Client authentication can be - either accepted if offered (want), or demanded (need). When Client - Certificate Authentication is in use a Truststore must be configured. When - using Client Certificate Authentication it may be desirable to use the <link - linkend="Java-Broker-Security-External-Provider">External Authentication - Provider</link>.</para> - <para>JMX does not support client authentication.</para> - </listitem> - <listitem> - <para><emphasis>Truststore</emphasis>. <link - linkend="Java-Broker-Management-Managing-Truststores">Trust store</link> - contain an issuer certificate or the public keys of the clients themselves - if peers only is desired.</para> - </listitem> - </itemizedlist></para> - </section> - <section id="Java-Broker-Management-Managing-Ports-Children"> - <title>Children</title> - <para>None</para> - </section> - <section id="Java-Broker-Management-Managing-Ports-Lifecycle"> - <title>Lifecycle</title> - <para>Not supported</para> - <important> - <para>When updating an existing port, changes to SSL settings, binding address and port - numbers do not become effective until the Broker is restarted.</para> - </important> - </section> -</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 deleted file mode 100644 index 8fd11e6803..0000000000 --- a/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Queues.xml +++ /dev/null @@ -1,121 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!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. - ---> - -<section id="Java-Broker-Management-Managing-Queues"> - <title>Queues</title> - <para><link linkend="Java-Broker-Concepts-Queues">Queues</link> are named entities that - hold/buffer messages for later delivery to consumer applications.</para> - <para>Queues can be managed using the HTTP, JMX or AMQP channels.</para> - <section id="Java-Broker-Management-Managing-Queues-Types"> - <title>Types</title> - <para>The Broker supports four different queue types, each with different delivery semantics.<itemizedlist> - <listitem> - <para><link linkend="Java-Broker-Concepts-Queues-Types-Standard" - >Standard</link> - a simple First-In-First-Out (FIFO) queue</para> - </listitem> - <listitem> - <para><link linkend="Java-Broker-Concepts-Queues-Types-Priority" - >Priority</link> - delivery order depends on the priority of each message</para> - </listitem> - <listitem> - <para><link linkend="Java-Broker-Concepts-Queues-Types-Sorted">Sorted</link> - - delivery order depends on the value of the sorting key property in each message</para> - </listitem> - <listitem> - <para><link linkend="Java-Broker-Concepts-Queues-Types-LVQ">Last Value - Queue</link> - also known as an LVQ, retains only the last (newest) message received - with a given LVQ key value</para> - </listitem> - </itemizedlist></para> - </section> - <section id="Java-Broker-Management-Managing-Queues-Attributes"> - <title>Attributes</title> - <para><itemizedlist> - <listitem> - <para><emphasis>Name of the queue</emphasis>. Message consumers and browsers refer to this - name when they wish to subscribe to queue to receive messages from it.</para> - </listitem> - <listitem> - <para><emphasis>Type of the queue</emphasis>. Can be either <link - linkend="Java-Broker-Concepts-Queues-Types-Standard">standard</link>, <link - linkend="Java-Broker-Concepts-Queues-Types-Priority">priority</link>, <link - linkend="Java-Broker-Concepts-Queues-Types-Sorted">sorted</link>, or <link - linkend="Java-Broker-Concepts-Queues-Types-LVQ">lvq</link>.</para> - </listitem> - <listitem> - <para><emphasis>Durable</emphasis>. Whether the queue survives a restart. Messages on a - non durable queue do not survive a restart even if they are marked persistent.</para> - </listitem> - <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 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> - </listitem> - <listitem> - <para><emphasis>Message persistent override</emphasis>. Allow message persistent settings - of incoming messages to be overridden. Changing this value affects only new arrivals, - existing messages on the queue are not affected. </para> - </listitem> - <listitem> - <para><emphasis>Queue capacity</emphasis>. Queues have the ability to limit the of the - cumulative size of all the messages contained within the store. This feature is - described in detail <xref linkend="Java-Broker-Runtime-Disk-Space-Management"/>.</para> - </listitem> - <listitem> - <para><emphasis>Alerting Thresholds</emphasis>. Queues have the ability to alert on a - 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> - <listitem> - <para><emphasis>Maximum Delivery Count/Alternate Exchange</emphasis>. See <xref - linkend="Java-Broker-Runtime-Handling-Undeliverable-Messages"/></para> - </listitem> - <listitem> - <para><emphasis>Message Groups</emphasis>. See <xref - linkend="Java-Broker-Concepts-Queues-Message-Grouping"/></para> - </listitem> - </itemizedlist></para> - </section> - <section id="Java-Broker-Management-Managing-Queue-Children"> - <title>Children</title> - <para> - <itemizedlist> - <listitem> - <para>Binding</para> - </listitem> - </itemizedlist> - </para> - </section> - <section id="Java-Broker-Management-Managing-Queue-Lifecycle"> - <title>Lifecycle</title> - <para>Not supported</para> - </section> - -</section> 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 deleted file mode 100644 index f0b83d8163..0000000000 --- a/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-RemoteReplicationNodes.xml +++ /dev/null @@ -1,112 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section id="Java-Broker-Management-Managing-RemoteReplicationNodes"> - <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 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> - <para><itemizedlist> - <listitem> - <para><emphasis>Name the remote replication node</emphasis>. This is the name of the - remote virtualhost node</para> - </listitem> - <listitem> - <para><emphasis>Role</emphasis>. Indicates the role that the remote node is playing in the - group at this moment. <itemizedlist> - <listitem> - <para><emphasis>MASTER</emphasis> - Remote node is a master.</para> - </listitem> - <listitem> - <para><emphasis>REPLICA</emphasis> - Remote node is a replica.</para> - </listitem> - <listitem> - <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> - </itemizedlist> - </para> - </listitem> - <listitem> - <para><emphasis>Join time</emphasis>. Time when first contact was established with this - node.</para> - </listitem> - <listitem> - <para><emphasis>Last known transaction id</emphasis>. Last transaction id reported - processed by node. This is an internal transaction counter and does not relate to any - value available to the messaging clients. This value can only be used to determine the - node is up to date relative to others in the group.</para> - </listitem> - </itemizedlist></para> - </section> - <section id="Java-Broker-Management-Managing-RemoteReplicationNodes-Children"> - <title>Children</title> - <para>None</para> - </section> - <section id="Java-Broker-Management-Managing-RemoteReplicationNodes-Lifecycle"> - <title>Lifecycle</title> - <para> - <itemizedlist> - <listitem> - <para><emphasis>Delete</emphasis>. Causes the remote node to be permanently removed from - the group. This operation should be used when the virtualhost node cannot be deleted - from its own Broker, for instance, if a Broker has been destroyed by machine - failure.</para> - </listitem> - </itemizedlist> - </para> - </section> - <section id="Java-Broker-Management-Managing-RemoteReplication-Nodes-Operations"> - <title>Operations</title> - <para> - <itemizedlist> - <listitem> - <para><emphasis>Transfer Master</emphasis>. Initiates a process where a master is moved to - anther node in the group. The transfer sequence is as follows. <orderedlist> - <listitem> - <para>Group waits until the proposed master is reasonable up to date.</para> - </listitem> - <listitem> - <para>Any in-flight transactions on the current master are blocked.</para> - </listitem> - <listitem> - <para>The current master awaits the proposed master to become up to date.</para> - </listitem> - <listitem> - <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> - <listitem> - <para>The old master will rejoin as a replica.</para> - </listitem> - </orderedlist> - </para> - </listitem> - </itemizedlist> - </para> - </section> -</section> 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 deleted file mode 100644 index e934304a29..0000000000 --- a/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Truststores.xml +++ /dev/null @@ -1,74 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section id="Java-Broker-Management-Managing-Truststores"> - <title>Truststores</title> - <para> A <link linkend="Java-Broker-Concepts-Truststores">Truststore</link> is required by a - Port in order to SSL client authentication. Some authentication provides also use a - truststore when connecting to authentication systems that are protected by a private issuer - SSL certificate.</para> - <section id="Java-Broker-Management-Managing-Truststores-Attributes"> - <title>Attributes</title> - <para><itemizedlist> - <listitem> - <para><emphasis>Name the truststore</emphasis>. Used to identify the - truststore.</para> - </listitem> - <listitem> - <para><emphasis>Path</emphasis>. Path to truststore file</para> - </listitem> - <listitem> - <para><emphasis>Truststore password</emphasis>. Password used to secure the truststore<important> - <para> The password of the certificate used by the Broker <emphasis - role="bold">must</emphasis> match the password of the keystore - itself. </para> - </important></para> - </listitem> - <listitem> - <para><emphasis>Certificate Alias</emphasis>. An optional way of specifying - which certificate the broker should use if the keystore contains multiple - entries.</para> - </listitem> - <listitem> - <para><emphasis>Manager Factory Algorithm</emphasis>. In keystores the have more - than one certificate, the alias identifies the certificate to be - used.</para> - </listitem> - <listitem> - <para><emphasis>Key Store Type</emphasis>. Type of Keystore.</para> - </listitem> - <listitem> - <para><emphasis>Peers only</emphasis>. When "Peers Only" option is selected for - 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> - <section id="Java-Broker-Management-Managing-Truststores-Children"> - <title>Children</title> - <para>None</para> - </section> - <section id="Java-Broker-Management-Managing-Truststores-Lifecycle"> - <title>Lifecycle</title> - <para>Not supported</para> - </section> -</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 deleted file mode 100644 index 77621764cd..0000000000 --- a/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-VirtualhostNodes.xml +++ /dev/null @@ -1,140 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section id="Java-Broker-Management-Managing-Virtualhost-Nodes"> - <title>Virtualhost Nodes</title> - <para>Virtualhost nodes can only be managed by the HTTP management channel.</para> - <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 - 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> - <listitem> - <para><emphasis>Name the virtualhost node</emphasis>.</para> - </listitem> - <listitem> - <para><emphasis>Store Path or JDBC URL.</emphasis> Refers the location used to store the - 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> - <listitem> - <para>MASTER - Virtualhost node is a master.</para> - </listitem> - <listitem> - <para>REPLICA - Virtualhost node is a replica.</para> - </listitem> - <listitem> - <para>WAITING - Virtualhost node is awaiting an election result, or may be awaiting - more nodes to join in order that an election may be held.</para> - </listitem> - <listitem> - <para>DETACHED - Virtualhost node is disconnected from the group.</para> - </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-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> - </listitem> - <listitem> - <para> - <link linkend="Java-Broker-Management-Managing-RemoteReplicationNodes">Remote - Replication Nodes</link> - </para> - </listitem> - </itemizedlist> - </para> - </section> - <section id="Java-Broker-Management-Managing-Virtualhost-Node-Lifecycle"> - <title>Lifecycle</title> - <para> - <itemizedlist> - <listitem> - <para><emphasis>Stop</emphasis>. Stops the virtualhost node. This closes any existing - messaging connections to the virtualhost and prevents new ones. Any inflight - transactions are rolled back. Non durable queues and exchanges are lost. Transient - messages or persistent messages on non-durable queues are lost.</para> - <para>When HA is in use, stopping the virtualhost node stops the virtualhost node from - participating in the group. If the node was in the master role, the remaining nodes will - try to conduct an election and elect a new master. If the node was in the replica role, - the node will cease to keep up to date with later transactions. A stopped node does not - vote in elections. Other nodes in the group will report the stopped node as - unreachable.</para> - </listitem> - <listitem> - <para><emphasis>Start</emphasis>. Activates the virtualhost node.</para> - </listitem> - <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 removed - permanently from the group.</para> - </listitem> - </itemizedlist> - </para> - </section> -</section> 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 deleted file mode 100644 index 06e8606a72..0000000000 --- a/qpid/doc/book/src/java-broker/management/managing/Java-Broker-Management-Managing-Virtualhosts.xml +++ /dev/null @@ -1,139 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section id="Java-Broker-Management-Managing-Virtualhosts"> - <title>VirtualHosts</title> - <para>A virtualhost is a independent namespace in which messaging is performed. Virtualhosts are - responsible for the storage of message data.</para> - <para>Virtualhosts can only be managed by the HTTP management channel.</para> - <section id="Java-Broker-Management-Managing-Virtualhosts-Types"> - <title>Types</title> - <para>The following virtualhost types are supported. <itemizedlist> - <listitem> - <para>BDB - Virtualhost 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 - Virtualhost backed with Oracle BDB utilising High Availability</para> - </listitem> - <listitem> - <para>DERBY - Virtualhost backed with Apache Derby</para> - </listitem> - <listitem> - <para>JDBC - Virtualhost 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>Memory - In-memory node (changes lost on Broker restart)</para> - </listitem> - <listitem> - <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> - </listitem> - </itemizedlist> - </para> - </section> - <section id="Java-Broker-Management-Managing-Virtualhost-Context"> - <title>Context</title> - <para> - <itemizedlist> - <listitem> - <para><emphasis>use_async_message_store_recovery</emphasis> Controls the <link - linkend="Java-Broker-Runtime-Background-Recovery">background recovery</link> - feature.</para> - </listitem> - </itemizedlist> - </para> - </section> - <section id="Java-Broker-Management-Managing-Virtualhost-Attributes"> - <title>Attributes</title> - <para> - <itemizedlist> - <listitem> - <para><emphasis>Name the virtualhost</emphasis>. This is the name the messaging clients - refer to when forming a connection to the Broker.</para> - </listitem> - <listitem> - <para><emphasis>Store Path/JDBC URL</emphasis>. Refers the file system location or - database URL used to store the message data.</para> - </listitem> - <listitem> - <para><emphasis>Store overflow/underflow</emphasis>. Some virtualhosts have the ability to - limit the of the cumulative size of all the messages contained within the store. This - feature is described in detail <xref linkend="Java-Broker-Runtime-Disk-Space-Management" - />.</para> - </listitem> - <listitem> - <para><emphasis>Store transaction timeouts</emphasis>. Warns of long running producer - 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> - <section id="Java-Broker-Management-Managing-Virtualhost-Children"> - <title>Children</title> - <para> - <itemizedlist> - <listitem> - <para> - <link linkend="Java-Broker-Management-Managing-Exchanges">Exchange</link> - </para> - </listitem> - <listitem> - <para> - <link linkend="Java-Broker-Management-Managing-Queues">Queue</link> - </para> - </listitem> - <listitem> - <para>Connection</para> - </listitem> - </itemizedlist> - </para> - </section> - <section id="Java-Broker-Management-Managing-Virtualhost-Lifecycle"> - <title>Lifecycle</title> - <para> - <itemizedlist> - <listitem> - <para><emphasis>Stop</emphasis>. Stops the virtualhost. This closes any existing messaging - connections to the virtualhost and prevents new ones. Any inflight transactions are - rolled back. Non durable queues and non durable exchanges are lost. Transient messages - or persistent messages on non-durable queues are lost.</para> - </listitem> - <listitem> - <para><emphasis>Start</emphasis>. Activates the virtualhost.</para> - </listitem> - </itemizedlist> - </para> - </section> -</section> diff --git a/qpid/doc/book/src/java-broker/security/Java-Broker-Security-ACLs.xml b/qpid/doc/book/src/java-broker/security/Java-Broker-Security-ACLs.xml deleted file mode 100644 index 95d718df29..0000000000 --- a/qpid/doc/book/src/java-broker/security/Java-Broker-Security-ACLs.xml +++ /dev/null @@ -1,646 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> - -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section id="Java-Broker-Security-ACLs"> - <title>Access Control Lists</title> - <para> - In Qpid, Access Control Lists (ACLs) specify which actions can be performed by each authenticated user. - To enable, an <emphasis>Access Control Provider</emphasis> needs to be configured on the <emphasis>Broker</emphasis>. - The <emphasis>Access Control Provider</emphasis> of type "AclFile" uses local file to specify the ACL rules. - By convention, this file should have a .acl extension. - </para> - - <para> - A Group Provider can be configured with ACL to define the user groups which can be used in ACL - to determine the ACL rules applicable to the entire group. The configuration details for the Group Providers are described in - <xref linkend="Java-Broker-Security-Group-Providers"/>. On creation of ACL Provider with group rules, - the Group Provider should be added first. Otherwise, if the individual ACL rules are not defined for the logged principal - the following invocation of management operations could be denied due to absence of the required groups.</para> - - <para>Only one <emphasis>Access Control Provider</emphasis> can be used by the Broker. - If several <emphasis>Access Control Providers</emphasis> are configured on Broker level - only one of them will be used (the latest one). - </para> - - <para> - The ACL Providers can be configured using <link linkend="Java-Broker-Management-Channel-REST-API">REST Management interfaces</link> - and <link linkend="Java-Broker-Management-Channel-Web-Console">Web Management Console</link>. - </para> - - <para>The following ACL Provider managing operations are available from Web Management Console: - <itemizedlist> - <listitem><para>A new ACL Provider can be added by clicking onto "Add Access Control Provider" on the Broker tab.</para></listitem> - <listitem><para>An ACL Provider details can be viewed on the Access Control Provider tab. - The tab is shown after clicking onto ACL Provider name in the Broker object tree or after clicking - onto ACL Provider row in ACL Providers grid on the Broker tab.</para></listitem> - <listitem><para>An existing ACL Provider can be deleted by clicking onto buttons "Delete Access Control Provider" - on the Broker tab or Access Control Provider tab.</para></listitem> - </itemizedlist> - </para> - - <section role="h3" id="Java-Broker-Security-ACLs-WriteACL"> - <title> - Writing .acl files - </title> - - <para> - The ACL file consists of a series of rules associating behaviour for a user or group. Use of groups can serve to make the ACL file more concise. See <link linkend="Java-Broker-Security-Group-Providers">Configuring Group Providers</link> for more information on defining groups. - </para> - <para> - Each ACL rule grants or denies a particular action on an object to a user/group. The rule may be augmented with one or more properties, restricting - the rule's applicability. - </para> - <programlisting> - ACL ALLOW alice CREATE QUEUE # Grants alice permission to create all queues. - ACL DENY bob CREATE QUEUE name="myqueue" # Denies bob permission to create a queue called "myqueue" - </programlisting> - <para> - The ACL is considered in strict line order with the first matching rule taking precedence over all those that follow. In the following - example, if the user bob tries to create an exchange "myexch", the operation will be allowed by the first rule. The second rule will - never be considered. - </para> - <programlisting> - ACL ALLOW bob ALL EXCHANGE - ACL DENY bob CREATE EXCHANGE name="myexch" # Dead rule - </programlisting> - <para> - If the desire is to allow bob to create all exchanges except "myexch", order of the rules must be reversed: - </para> - <programlisting> - ACL DENY bob CREATE EXCHANGE name="myexch" - ACL ALLOW bob ALL EXCHANGE - </programlisting> - <para> - 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. - </para> - <para> - When writing a new ACL, a good approach is to begin with an .acl file containing only <programlisting>ACL DENY-LOG ALL ALL</programlisting> - which will cause the Broker to deny all operations with details of the denial logged to the Qpid log file. Build up the ACL rule by rule, - gradually working through the use-cases of your system. Once the ACL is complete, consider switching the DENY-LOG actions to DENY - to improve performamce and reduce log noise. - </para> - <para> - ACL rules are very powerful: it is possible to write very granular rules specifying many broker objects and their - properties. Most projects probably won't need this degree of flexibility. A reasonable approach is to choose to apply permissions - at a certain level of abstraction (e.g. QUEUE) and apply them consistently across the whole system. - </para> - <note> - <para> - Some rules can be restricted to the virtual host if property virtualhost_name is specified. - <example> - <title>Restrict rules to specific virtual hosts</title> - <programlisting> - ACL ALLOW bob CREATE QUEUE virtualhost_name="test" - ACL ALLOW bob ALL EXCHANGE virtualhost_name="prod" - </programlisting> - </example> - In the example above the first rule allows user "bob" to create queues on virtual host "test" only. - The second rule allows user "bob" any action with exchanges on virtual host "prod". - </para> - </note> - </section> - - <section role="h4" id="Java-Broker-Security-ACLs-Syntax"> - <title> - Syntax - </title> - - <para> - ACL rules follow this syntax: - </para> - <programlisting> - ACL {permission} {<group-name>|<user-name>|ALL} {action|ALL} [object|ALL] [property="<property-value>"] - </programlisting> - - <para> - Comments may be introduced with the hash (#) character and are ignored. Long lines can be broken with the slash (\) character. - </para> - <programlisting> - # A comment - ACL ALLOW admin CREATE ALL # Also a comment - ACL DENY guest \ - ALL ALL # A broken line - </programlisting> - </section> - <table id="table-Java-Broker-Security-ACLs-Syntax_permissions"> - <title>List of ACL permission</title> - <tgroup cols="2"> - <tbody> - <row> - <entry><command>ALLOW</command></entry> - <entry><para>Allow the action</para></entry> - </row> - <row> - <entry><command>ALLOW-LOG</command></entry> - <entry><para> Allow the action and log the action in the log </para></entry> - </row> - <row> - <entry><command>DENY</command></entry> - <entry><para> Deny the action</para></entry> - </row> - <row> - <entry><command>DENY-LOG</command></entry> - <entry><para> Deny the action and log the action in the log</para></entry> - </row> - </tbody> - </tgroup> - </table> - <table id="table-Java-Broker-Security-ACLs-Syntax_actions"> - <title>List of ACL actions</title> - <tgroup cols="4"> - <thead> - <row> - <entry><para>Action</para></entry> - <entry><para>Description</para></entry> - <entry><para>Supported object types</para></entry> - <entry><para>Supported properties</para></entry> - </row> - </thead> - <tbody> - <row> - <entry> <command>CONSUME</command> </entry> - <entry> <para> Applied when subscriptions are created </para> </entry> - <entry><para>QUEUE</para></entry> - <entry><para>name, autodelete, temporary, durable, exclusive, alternate, owner, virtualhost_name</para></entry> - </row> - <row> - <entry> <command>PUBLISH</command> </entry> - <entry> <para> Applied on a per message basis on publish message transfers</para> </entry> - <entry><para>EXCHANGE</para></entry> - <entry><para>name, routingkey, immediate, virtualhost_name</para></entry> - </row> - <row> - <entry> <command>CREATE</command> </entry> - <entry> <para> Applied when an object is created, such as bindings, queues, exchanges</para> </entry> - <entry><para>VIRTUALHOSTNODE, VIRTUALHOST, EXCHANGE, QUEUE, USER, GROUP</para></entry> - <entry><para>see properties on the corresponding object type</para></entry> - </row> - <row> - <entry> <command>ACCESS</command> </entry> - <entry> <para> Applied when an object is read or accessed</para> </entry> - <entry><para>VIRTUALHOST, MANAGEMENT</para></entry> - <entry><para>name (for VIRTUALHOST only)</para></entry> - </row> - <row> - <entry> <command>BIND</command> </entry> - <entry> <para> Applied when queues are bound to exchanges</para> </entry> - <entry><para>EXCHANGE</para></entry> - <entry><para>name, routingKey, queuename, virtualhost_name, temporary, durable</para></entry> - </row> - <row> - <entry> <command>UNBIND</command> </entry> - <entry> <para> Applied when queues are unbound from exchanges</para> </entry> - <entry><para>EXCHANGE</para></entry> - <entry><para>name, routingKey, queuename, virtualhost_name, temporary, durable</para></entry> - </row> - <row> - <entry> <command>DELETE</command> </entry> - <entry> <para> Applied when objects are deleted </para> </entry> - <entry><para>VIRTUALHOSTNODE, VIRTUALHOST, EXCHANGE, QUEUE, USER, GROUP</para></entry> - <entry><para>see properties on the corresponding object type</para></entry> - </row> - <row> - <entry> <command>PURGE</command> </entry> <entry> - <para>Applied when purge the contents of a queue</para> </entry> - <entry><para>QUEUE</para></entry> - <entry><para> </para></entry> - </row> - <row> - <entry> <command>UPDATE</command> </entry> - <entry> <para> Applied when an object is updated </para> </entry> - <entry><para>VIRTUALHOSTNODE, VIRTUALHOST, EXCHANGE, QUEUE, USER, GROUP</para></entry> - <entry><para>see EXCHANGE and QUEUE properties</para></entry> - </row> - <row> - <entry> <command>CONFIGURE</command> </entry> - <entry> <para> Applied when an object is configured via REST management interfaces.</para> </entry> - <entry><para>BROKER</para></entry> - <entry><para> </para></entry> - </row> - <row> - <entry><command>ACCESS_LOGS</command> </entry> - <entry><para>Allows/denies to the specific user an operation to download broker log file(s) over REST interfaces</para> </entry> - <entry><para>BROKER</para></entry> - <entry><para> </para></entry> - </row> - </tbody> - </tgroup> - </table> - <table id="table-Java-Broker-Security-ACLs-Syntax_objects"> - <title>List of ACL objects</title> - <tgroup cols="4"> - <thead> - <row> - <entry><para>Object type</para></entry> - <entry><para>Description</para></entry> - <entry><para>Supported actions</para></entry> - <entry><para>Supported properties</para></entry> - </row> - </thead> - <tbody> - <row> - <entry> <command>VIRTUALHOSTNODE</command> </entry> - <entry> <para>A virtualhostnode or remote replication node</para> </entry> - <entry><para>ALL, CREATE, UPDATE, DELETE</para> </entry> - <entry><para>name</para> </entry> - </row> - <row> - <entry> <command>VIRTUALHOST</command> </entry> - <entry> <para>A virtualhost</para> </entry> - <entry><para>ALL, CREATE, UPDATE, DELETE, ACCESS</para> </entry> - <entry><para>name</para> </entry> - </row> - <row> - <entry> <command>MANAGEMENT </command> </entry> - <entry> <para>Management - for web and JMX</para> </entry> - <entry><para>ALL, ACCESS</para> </entry> - <entry><para> </para></entry> - </row> - <row> - <entry> <command>QUEUE</command> </entry> - <entry> <para>A queue </para> </entry> - <entry><para>ALL, CREATE, DELETE, PURGE, CONSUME, UPDATE</para></entry> - <entry><para>name, autodelete, temporary, durable, exclusive, alternate, owner, virtualhost_name</para></entry> - </row> - <row> - <entry> <command>EXCHANGE</command> </entry> - <entry><para>An exchange</para></entry> - <entry><para>ALL, ACCESS, CREATE, DELETE, BIND, UNBIND, PUBLISH, UPDATE</para></entry> - <entry><para>name, autodelete, temporary, durable, type, virtualhost_name, queuename(only for BIND and UNBIND), routingkey(only for BIND and UNBIND, PUBLISH)</para></entry> - </row> - <row> - <entry> <command>USER</command> </entry> - <entry> <para>A user</para> </entry> - <entry><para>ALL, CREATE, DELETE, UPDATE</para></entry> - <entry><para>name</para></entry> - </row> - <row> - <entry> <command>GROUP</command> </entry> - <entry> <para>A group</para> </entry> - <entry><para>ALL, CREATE, DELETE, UPDATE</para></entry> - <entry><para>name</para></entry> - </row> - <row> - <entry> <command>METHOD</command> </entry> - <entry> <para>Management or agent or broker method</para> </entry> - <entry><para>ALL, ACCESS, UPDATE</para></entry> - <entry><para>name, component, virtualhost_name</para></entry> - </row> - <row> - <entry> <command>BROKER</command> </entry> - <entry> <para>The broker</para> </entry> - <entry><para>ALL, CONFIGURE, ACCESS_LOGS</para></entry> - <entry><para> </para></entry> - </row> - </tbody> - </tgroup> - </table> - <table id="table-Java-Broker-Security-ACLs-Syntax_properties"> - <title>List of ACL properties</title> - <tgroup cols="2"> - <tbody> - <row> - <entry><command>name</command> </entry> - <entry> <para> String. Object name, such as a queue name, exchange name or JMX method name. </para> </entry> - </row> - <row> - <entry> <command>durable</command> </entry> - <entry> <para> Boolean. Indicates the object is durable </para> </entry> - </row> - <row> - <entry> <command>routingkey</command> </entry> - <entry> <para> String. Specifies routing key </para> </entry> - </row> - <row> - <entry> <command>autodelete</command> </entry> - <entry> <para> Boolean. Indicates whether or not the object gets deleted when the connection is closed </para> </entry> - </row> - <row> - <entry> <command>exclusive</command> </entry> - <entry> <para> Boolean. Indicates the presence of an <parameter>exclusive</parameter> flag </para> </entry> - </row> - <row> - <entry> <command>temporary</command> </entry> - <entry> <para> Boolean. Indicates the presence of an <parameter>temporary</parameter> flag </para> </entry> - </row> - <row> - <entry> <command>type</command> </entry> - <entry> <para> String. Type of object, such as topic, fanout, or xml </para> </entry> - </row> - <row> - <entry> <command>alternate</command> </entry> - <entry> <para> String. Name of the alternate exchange </para> </entry> - </row> - <row> - <entry> <command>queuename</command> </entry> - <entry> <para> String. Name of the queue (used only when the object is something other than <parameter>queue</parameter> </para> </entry> - </row> - <row> - <entry> <command>component</command> </entry> - <entry> <para> String. JMX component name</para> </entry> - </row> - <row> - <entry> <command>from_network</command> </entry> - <entry> - <para> - Comma-separated strings representing IPv4 address ranges. - </para> - <para> - Intended for use in ACCESS VIRTUALHOST rules to apply firewall-like restrictions. - </para> - <para> - The rule matches if any of the address ranges match the IPv4 address of the messaging client. - The address ranges are specified using either Classless Inter-Domain Routing notation - (e.g. 192.168.1.0/24; see <ulink url="http://tools.ietf.org/html/rfc4632">RFC 4632</ulink>) - or wildcards (e.g. 192.169.1.*). - </para> - </entry> - </row> - <row> - <entry> <command>from_hostname</command> </entry> - <entry> - <para> - Comma-separated strings representing hostnames, specified using Perl-style regular - expressions, e.g. .*\.example\.company\.com - </para> - <para> - Intended for use in ACCESS VIRTUALHOST rules to apply firewall-like restrictions. - </para> - <para> - The rule matches if any of the patterns match the hostname of the messaging client. - </para> - <para> - To look up the client's hostname, Qpid uses Java's DNS support, which internally caches its results. - </para> - <para> - You can modify the time-to-live of cached results using the *.ttl properties described on the - Java <ulink url="http://docs.oracle.com/javase/6/docs/technotes/guides/net/properties.html">Networking - Properties</ulink> page. - </para> - <para> - For example, you can either set system property sun.net.inetaddr.ttl from the command line - (e.g. export QPID_OPTS="-Dsun.net.inetaddr.ttl=0") or networkaddress.cache.ttl in - $JAVA_HOME/lib/security/java.security. The latter is preferred because it is JVM - vendor-independent. - </para> - </entry> - </row> - <row> - <entry><command>virtualhost_name</command></entry> - <entry> - <para> - String. A name of virtual host to which the rule is applied. - </para> - </entry> - </row> - <row> - <entry><command>immediate</command></entry> - <entry> - <para> - Boolean. A property can be used to restrict PUBLISH action to publishing only messages with given immediate flag. - </para> - </entry> - </row> - </tbody> - </tgroup> - </table> - <table id="table-Java-Broker-Security-ACLs-Syntax_javacomponents"> - <title>List of ACL JMX Components</title> - <tgroup cols="2"> - <tbody> - <row> - <entry> <command>UserManagement</command> </entry> - <entry> <para>User maintenance; create/delete/view users, change passwords etc</para> </entry> - </row> - <row> - <entry> <command>ConfigurationManagement</command> </entry> - <entry> <para>Dynamically reload configuration from disk.</para> </entry> - </row> - <row> - <entry> <command>LoggingManagement</command> </entry> - <entry> <para>Dynamically control Qpid logging level</para> </entry> - </row> - <row> - <entry> <command>ServerInformation</command> </entry> - <entry> <para>Read-only information regarding the Qpid: version number etc</para> </entry> - </row> - <row> - <entry> <command>VirtualHost.Queue</command> </entry> - <entry> <para>Queue maintenance; copy/move/purge/view etc</para> </entry> - </row> - <row> - <entry> <command>VirtualHost.Exchange</command> </entry> - <entry> <para>Exchange maintenance; bind/unbind queues to exchanges</para> </entry> - </row> - <row> - <entry> <command>VirtualHost.VirtualHost</command> </entry> - <entry> <para>Virtual host maintenace; create/delete exchanges, queues etc</para> </entry> - </row> - </tbody> - </tgroup> - </table> - <section role="h4" id="Java-Broker-Security-ACLs-WorkedExamples"> - <title> - Worked Examples - </title> - <para> - Here are some example ACLs illustrating common use cases. - In addition, note that the Java broker provides a complete example ACL file, located at etc/broker_example.acl. - </para> - <section role="h4" id="Java-Broker-Security-ACLs-WorkedExample1"> - <title> - Worked example 1 - Management rights - </title> - <para> - Suppose you wish to permission two users: a user 'operator' must be able to perform all Management operations, and - a user 'readonly' must be enable to perform only read-only functions. Neither 'operator' nor 'readonly' - should be allowed to connect clients for messaging. - </para> - <programlisting> -# Deny (loggged) operator/readonly permission to connect messaging clients. -ACL DENY-LOG operator ACCESS VIRTUALHOST -ACL DENY-LOG readonly ACCESS VIRTUALHOST -# Give operator permission to perfom all other actions -ACL ALLOW operator ALL ALL -# Give readonly permission to execute only read-only actions -ACL ALLOW readonly ACCESS ALL -... -... rules for other users -... -# Explicitly deny all (log) to eveyone -ACL DENY-LOG ALL ALL - </programlisting> - </section> - <section role="h4" id="Java-Broker-Security-ACLs-WorkedExample2"> - <title> - Worked example 2 - User maintainer group - </title> - <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 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 -# UserManagement MBean and perform all actions for USER objects -ACL ALLOW usermaint ACCESS MANAGEMENT -ACL ALLOW usermaint ALL METHOD component="UserManagement" -ACL ALLOW usermaint ALL USER -ACL DENY ALL ALL METHOD component="UserManagement" -ACL DENY ALL ALL USER -... -... rules for other users -... -ACL DENY-LOG ALL ALL - </programlisting> - </section> - <section role="h4" id="Java-Broker-Security-ACLs-WorkedExample3"> - <title> - Worked example 3 - Request/Response messaging - </title> - <para> - Suppose you wish to permission a system using a request/response paradigm. Two users: 'client' publishes requests; - 'server' consumes the requests and generates a response. This example illustrates the permissioning of AMQP exchanges - and queues. - </para> - <programlisting> -# Allow client and server to connect to the virtual host. -ACL ALLOW client ACCESS VIRTUALHOST -ACL ALLOW server ACCESS VIRTUALHOST - -# Client side -# Allow the 'client' user to publish requests to the request queue. As is the norm for the request/response paradigm, the client -# is required to create a temporary queue on which the server will respond. Consequently, there are rules to allow the creation -# of the temporary queues and consumption of messages from it. -ACL ALLOW client CREATE QUEUE temporary="true" -ACL ALLOW client CONSUME QUEUE temporary="true" -ACL ALLOW client DELETE QUEUE temporary="true" -ACL ALLOW client BIND EXCHANGE name="amq.direct" temporary="true" -ACL ALLOW client UNBIND EXCHANGE name="amq.direct" temporary="true" -ACL ALLOW client PUBLISH EXCHANGE name="amq.direct" routingKey="example.RequestQueue" - -# Server side -# Allow the 'server' user to consume from the request queue and publish a response to the temporary response queue created by -# client. We also allow the server to create the request queue. -ACL ALLOW server CREATE QUEUE name="example.RequestQueue" -ACL ALLOW server CONSUME QUEUE name="example.RequestQueue" -ACL ALLOW server BIND EXCHANGE -ACL ALLOW server PUBLISH EXCHANGE name="amq.direct" routingKey="TempQueue*" - -ACL DENY-LOG all all - </programlisting> - </section> - <section role="h4" id="Java-Broker-Security-ACLs-WorkedExample4"> - <title> - Worked example 4 - firewall-like access control - </title> - <para> - This example illustrates how to set up an ACL that restricts the IP addresses and hostnames - of messaging clients that can access a virtual host. - </para> - <programlisting> -################ -# Hostname rules -################ - -# Allow messaging clients from company1.com and company1.co.uk to connect -ACL ALLOW all ACCESS VIRTUALHOST from_hostname=".*\.company1\.com,.*\.company1\.co\.uk" - -# Deny messaging clients from hosts within the dev subdomain -ACL DENY-LOG all ACCESS VIRTUALHOST from_hostname=".*\.dev\.company1\.com" - -################## -# IP address rules -################## - -# Deny access to all users in the IP ranges 192.168.1.0-192.168.1.255 and 192.168.2.0-192.168.2.255, -# using the notation specified in RFC 4632, "Classless Inter-domain Routing (CIDR)" -ACL DENY-LOG messaging-users ACCESS VIRTUALHOST \ - from_network="192.168.1.0/24,192.168.2.0/24" - -# Deny access to all users in the IP ranges 192.169.1.0-192.169.1.255 and 192.169.2.0-192.169.2.255, -# using wildcard notation. -ACL DENY-LOG messaging-users ACCESS VIRTUALHOST \ - from_network="192.169.1.*,192.169.2.*" - -ACL DENY-LOG all all - </programlisting> - </section> - <section role="h4" id="Java-Broker-Security-ACLs-WorkedExample5"> - <title> - Worked example 5 - REST management ACL example - </title> - <para> - This example illustrates how to set up an ACL that restricts usage of REST management interfaces. - </para> - <programlisting> -# allow to the users from webadmins group to change broker model -# this rule allows adding/removing/editing of Broker level objects: -# Broker, Group Provider, Authentication Provider, Port, Access Control Provider etc -ACL ALLOW-LOG webadmins CONFIGURE BROKER - -# allow to the users from webadmins group to perform -# create/update/delete on virtualhost node and children -ACL ALLOW-LOG webadmins CREATE VIRTUALHOSTNODE -ACL ALLOW-LOG webadmins UPDATE VIRTUALHOSTNODE -ACL ALLOW-LOG webadmins DELETE VIRTUALHOSTNODE -ACL ALLOW-LOG webadmins CREATE VIRTUALHOST -ACL ALLOW-LOG webadmins UPDATE VIRTUALHOST -ACL ALLOW-LOG webadmins DELETE VIRTUALHOST -ACL ALLOW-LOG webadmins CREATE QUEUE -ACL ALLOW-LOG webadmins UPDATE QUEUE -ACL ALLOW-LOG webadmins DELETE QUEUE -ACL ALLOW-LOG webadmins PURGE QUEUE -ACL ALLOW-LOG webadmins CREATE EXCHANGE -ACL ALLOW-LOG webadmins DELETE EXCHANGE -ACL ALLOW-LOG webadmins BIND EXCHANGE -ACL ALLOW-LOG webadmins UNBIND EXCHANGE - -# allow to the users from webadmins group to create/update/delete groups on Group Providers -ACL ALLOW-LOG webadmins CREATE GROUP -ACL ALLOW-LOG webadmins DELETE GROUP -ACL ALLOW-LOG webadmins UPDATE GROUP - -# allow to the users from webadmins group to create/update/delete users for Authentication Providers -ACL ALLOW-LOG webadmins CREATE USER -ACL ALLOW-LOG webadmins DELETE USER -ACL ALLOW-LOG webadmins UPDATE USER - -# allow to the users from webadmins group to move, copy, delete messagaes, and clear the queue -# using REST management interfaces -ACL ALLOW-LOG webadmins UPDATE METHOD - -# at the moment only the following UPDATE METHOD rules are supported by web management console -#ACL ALLOW-LOG webadmins UPDATE METHOD component="VirtualHost.Queue" name="moveMessages" -#ACL ALLOW-LOG webadmins UPDATE METHOD component="VirtualHost.Queue" name="copyMessages" -#ACL ALLOW-LOG webadmins UPDATE METHOD component="VirtualHost.Queue" name="deleteMessages" -#ACL ALLOW-LOG webadmins UPDATE METHOD component="VirtualHost.Queue" name="clearQueue" - -ACL DENY-LOG all all - </programlisting> - </section> - </section> -</section> diff --git a/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Authentication-Providers-Anonymous.xml b/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Authentication-Providers-Anonymous.xml deleted file mode 100644 index 9c727ebc78..0000000000 --- a/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Authentication-Providers-Anonymous.xml +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" - "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> -<section id="Java-Broker-Security-Anonymous-Provider"> - <title>Anonymous</title> - - <para> The Anonymous Authentication Provider will allow users to connect with or without - credentials and result in their identification on the broker as the user ANONYMOUS. This - Provider does not require specification of any additional attributes on creation. </para> -</section> diff --git a/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Authentication-Providers-Base64MD5PasswordFile.xml b/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Authentication-Providers-Base64MD5PasswordFile.xml deleted file mode 100644 index 14319c68eb..0000000000 --- a/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Authentication-Providers-Base64MD5PasswordFile.xml +++ /dev/null @@ -1,43 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" - "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> -<section id="Java-Broker-Security-Base64MD5PasswordFile-Provider"> - <title>Base64MD5 Password File <emphasis>(Deprecated)</emphasis></title> - <para><emphasis>This provider is deprecated and will be removed in a future release. The - <link linkend="Java-Broker-Security-MD5-Provider">MD5</link> provider should be used - instead.</emphasis></para> - <para> Base64MD5PasswordFile Provider uses local file to store and manage user credentials - similar to PlainPasswordFile but instead of storing a password the MD5 password digest encoded - with Base64 encoding is stored in the file. When creating an authentication provider the path - to the file needs to be specified. If specified file does not exist an empty file is created - automatically on Authentication Provider creation. On Base64MD5PasswordFile Provider deletion - the password file is deleted as well.</para> - <para>For this provider user credentials can be added, removed or changed using - Management.</para> - <section> - <title>Base64MD5 File Format</title> - <para> The user credentials are stored on the single file line as user name and user password - pairs separated by colon character. The password is stored MD5 digest/Base64 encoded. This - file must not be modified externally whilst the Broker is running.</para> - </section> -</section>
\ No newline at end of file diff --git a/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Authentication-Providers-External.xml b/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Authentication-Providers-External.xml deleted file mode 100644 index 70f0d199ba..0000000000 --- a/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Authentication-Providers-External.xml +++ /dev/null @@ -1,50 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" - "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> -<section id="Java-Broker-Security-External-Provider"> - <title>External (SSL Client Certificates)</title> - - <para> When <link linkend="Java-Broker-Management-Managing-Truststores"> requiring SSL Client - Certificates</link> be presented the External Authentication Provider can be used, such that - the user is authenticated based on trust of their certificate alone, and the X500Principal - from the SSL session is then used as the username for the connection, instead of also - requiring the user to present a valid username and password. </para> - - <para> - <emphasis role="bold">Note:</emphasis> The External Authentication Provider should typically - only be used on the AMQP/HTTP ports, in conjunction with <link - linkend="Java-Broker-Management-Managing-Ports">SSL client certificate - authentication</link>. It is not intended for other uses such as the JMX management port and - will treat any non-sasl authentication processes on these ports as successful with the given - username. As such you should configure another Authentication Provider for use on JMX - ports.</para> - - <para>On creation of External Provider the use of full DN or username CN as a principal name can - be configured. If attribute "Use the full DN as the Username" is set to "true" the full DN is - used as an authenticated principal name. If attribute "Use the full DN as the Username" is set - to "false" the user name CN part is used as the authenticated principal name. Setting the - field to "false" is particular useful when <link linkend="Java-Broker-Security-ACLs" - >ACL</link> is required, as at the moment, ACL does not support commas in the user name. - </para> -</section> - diff --git a/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Authentication-Providers-Kerberos.xml b/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Authentication-Providers-Kerberos.xml deleted file mode 100644 index fbac55f2e2..0000000000 --- a/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Authentication-Providers-Kerberos.xml +++ /dev/null @@ -1,64 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" - "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> -<section id="Java-Broker-Security-Kerberos-Provider"> - <title>Kerberos</title> - - <para> Kereberos Authentication Provider uses java GSS-API SASL mechanism to authenticate the - connections. </para> - - <para> Configuration of kerberos is done through system properties (there doesn't seem to be a - way around this unfortunately). </para> - - <programlisting> - export JAVA_OPTS=-Djavax.security.auth.useSubjectCredsOnly=false -Djava.security.auth.login.config=qpid.conf - ${QPID_HOME}/bin/qpid-server - </programlisting> - - <para>Where qpid.conf would look something like this:</para> - - <programlisting><![CDATA[ -com.sun.security.jgss.accept { - com.sun.security.auth.module.Krb5LoginModule required - useKeyTab=true - storeKey=true - doNotPrompt=true - realm="EXAMPLE.COM" - useSubjectCredsOnly=false - kdc="kerberos.example.com" - keyTab="/path/to/keytab-file" - principal="<name>/<host>"; -};]]></programlisting> - - <para> Where realm, kdc, keyTab and principal should obviously be set correctly for the - environment where you are running (see the existing documentation for the C++ broker about - creating a keytab file). </para> - - <para> Note: You may need to install the "Java Cryptography Extension (JCE) Unlimited Strength - Jurisdiction Policy Files" appropriate for your JDK in order to get Kerberos support working. </para> - - <para> Since Kerberos support only works where SASL authentication is available (e.g. not for - JMX authentication) you may wish to also include an alternative Authentication Provider - configuration, and use this for JMX and HTTP ports. </para> - -</section> diff --git a/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Authentication-Providers-LDAP.xml b/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Authentication-Providers-LDAP.xml deleted file mode 100644 index 81b36f4692..0000000000 --- a/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Authentication-Providers-LDAP.xml +++ /dev/null @@ -1,99 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" - "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" -[ -<!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. - ---> -<section id="Java-Broker-Security-LDAP-Provider"> - <title>Simple LDAP</title> - - <para> The Simple LDAP authenticates connections against a Directory (LDAP). </para> - <para> To create a SimpleLDAPAuthenticationProvider the following mandatory fields are required: <itemizedlist> - <listitem> - <para><emphasis>LDAP server URL</emphasis> is the URL of the server, for example, - <literal>ldaps://example.com:636</literal></para> - </listitem> - <listitem> - <para><emphasis>Search context</emphasis> is the distinguished name of the search base - object. It defines the location from which the search for users begins, for example, - <literal>dc=users,dc=example,dc=com</literal></para> - </listitem> - <listitem> - <para><emphasis>Search filter</emphasis> is a DN template to find an LDAP user entry by - provided user name, for example, <literal>(uid={0})</literal></para> - </listitem> - </itemizedlist> Additionally, the following optional fields can be specified: <itemizedlist> - <listitem> - <para><emphasis>LDAP context factory</emphasis> is a fully qualified class name for the - JNDI LDAP context factory. This class must implement the <ulink - url="&oracleJdkDocUrl;javax/naming/spi/InitialContextFactory.html" - >InitialContextFactory</ulink> interface and produce instances of <ulink - url="&oracleJdkDocUrl;javax/naming/directory/DirContext.html">DirContext</ulink>. If - not specified a default value of <literal>com.sun.jndi.ldap.LdapCtxFactory</literal> is - used.</para> - </listitem> - <listitem> - <para><emphasis>LDAP authentication URL</emphasis> is the URL of LDAP server for - performing "ldap bind". If not specified, the <emphasis>LDAP server URL</emphasis> will - be used for both searches and authentications.</para> - </listitem> - <listitem> - <para><emphasis>Truststore name</emphasis> is a name of <link - linkend="Java-Broker-Management-Managing-Truststores-Attributes">configured - truststore</link>. Use this if connecting to a Directory over SSL (i.e. ldaps://) - which is protected by a certificate signed by a private CA (or utilising a self-signed - certificate).</para> - </listitem> - </itemizedlist> - </para> - - <important> - <para>In order to protect the security of the user's password, when using LDAP authentication, - you must: </para> - <itemizedlist> - <listitem> - <para>Use SSL on the broker's AMQP, HTTP and JMX ports to protect the password during - transmission to the Broker. The Broker enforces this restriction automatically on AMQP - and HTTP ports.</para> - </listitem> - <listitem> - <para>Authenticate to the Directory using SSL (i.e. ldaps://) to protect the password - during transmission from the Broker to the Directory.</para> - </listitem> - </itemizedlist> - </important> - - <para> The LDAP Authentication Provider works in the following manner. If not in <literal>bind - without search</literal> mode, it first connects to the Directory and searches for the ldap - entity which is identified by the username. The search begins at the distinguished name - identified by <literal>Search Context</literal> and uses the username as a filter. The search - scope is sub-tree meaning the search will include the base object and the subtree extending - beneath it. </para> - - <para> If the search returns a match, or is configured in <literal>bind without search</literal> - mode, the Authentication Provider then attempts to bind to the LDAP server with the given name - and the password. Note that <ulink - url="&oracleJdkDocUrl;javax/naming/Context.html#SECURITY_AUTHENTICATION">simple security - authentication</ulink> is used so the Directory receives the password in the clear. </para> -</section> diff --git a/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Authentication-Providers-MD5.xml b/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Authentication-Providers-MD5.xml deleted file mode 100644 index 04d8e2e84d..0000000000 --- a/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Authentication-Providers-MD5.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" - "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. ---> -<section id="Java-Broker-Security-MD5-Provider"> - <title>MD5 Provider</title> - - <para> MD5 Provider uses the Broker configuration itself to store the database of - users (unlike the <link linkend="Java-Broker-Security-Base64MD5PasswordFile-Provider" - >Base64MD5 Password File</link>, there is no separate password file). Rather than store the - unencrypted user password (as the Plain provider does) it instead stores the MD5 password - digest. This can be further encrypted using the - facilities described in <xref linkend="Java-Broker-Security-Configuration-Encryption" - />.</para> - <para>For this provider user credentials can be added, removed or changed using - Management.</para> -</section>
\ No newline at end of file diff --git a/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Authentication-Providers-MD5PasswordFile.xml b/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Authentication-Providers-MD5PasswordFile.xml deleted file mode 100644 index 28b9507f06..0000000000 --- a/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Authentication-Providers-MD5PasswordFile.xml +++ /dev/null @@ -1,42 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" - "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. ---> -<section id="Java-Broker-Security-Base64MD5PasswordFile-Provider"> - <title>Base64MD5 Password File <emphasis>(Deprecated)</emphasis></title> - <para><emphasis>This provider is deprecated and will be removed in a future release. The <link - linkend="Java-Broker-Security-MD5-Provider">MD5</link> provider should be used - instead.</emphasis></para> - <para> Base64MD5PasswordFile Provider uses local file to store and manage user credentials - similar to PlainPasswordFile but instead of storing a password the MD5 password digest - encoded with Base64 encoding is stored in the file. When creating an authentication provider - the path to the file needs to be specified. If specified file does not exist an empty file - is created automatically on Authentication Provider creation. On Base64MD5PasswordFile - Provider deletion the password file is deleted as well.</para> - <para>For this provider user credentials can be added, removed or changed using - Management.</para> - <section> - <title>Base64MD5 File Format</title> - <para> The user credentials are stored on the single file line as user name and user - password pairs separated by colon character. The password is stored MD5 digest/Base64 - encoded. This file must not be modified externally whilst the Broker is running.</para> - </section> -</section> diff --git a/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Authentication-Providers-Plain.xml b/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Authentication-Providers-Plain.xml deleted file mode 100644 index 92b8685e93..0000000000 --- a/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Authentication-Providers-Plain.xml +++ /dev/null @@ -1,34 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" - "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> -<section id="Java-Broker-Security-Plain-Provider"> - <title>Plain</title> - <para>The Plain Provider uses the Broker configuration itself to store the database of users - (unlike the <link linkend="Java-Broker-Security-PlainPasswordFile-Provider" - >PlainPasswordFile</link>, there is no separate password file). As the name suggests, - the user data (including password) is not hashed in any way. In order to provide encryption, - the facilities described in <xref linkend="Java-Broker-Security-Configuration-Encryption"/> - must be used.</para> - <para>For this provider user credentials can be added, removed or changed using - Management.</para> -</section> diff --git a/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Authentication-Providers-PlainPasswordFile.xml b/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Authentication-Providers-PlainPasswordFile.xml deleted file mode 100644 index 8d4fa54a1c..0000000000 --- a/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Authentication-Providers-PlainPasswordFile.xml +++ /dev/null @@ -1,47 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" - "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> -<section id="Java-Broker-Security-PlainPasswordFile-Provider"> - <title>Plain Password File <emphasis>(Deprecated)</emphasis></title> - <para><emphasis>This provider is deprecated and will be removed in a future release. The <link - linkend="Java-Broker-Security-Plain-Provider">Plain</link> provider should be used - instead.</emphasis></para> - <para> The PlainPasswordFile Provider uses local file to store and manage user credentials. When - creating an authentication provider the path to the file needs to be specified. If specified - file does not exist an empty file is created automatically on Authentication Provider - creation. On Provider deletion the password file is deleted as well.</para> - <para>For this provider user credentials can be added, removed or changed using - Management.</para> - - <section> - <title>Plain Password File Format</title> - <para> The user credentials are stored on the single file line as user name and user - password pairs separated by colon character. This file must not be modified externally - whilst the Broker is running.</para> - <programlisting> -# password file format -# <user name>: <user password> -guest:guest - </programlisting> - </section> -</section> diff --git a/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Authentication-Providers-ScramSha.xml b/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Authentication-Providers-ScramSha.xml deleted file mode 100644 index 46d0269564..0000000000 --- a/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Authentication-Providers-ScramSha.xml +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" - "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> -<section id="Java-Broker-Security-ScramSha-Providers"> - <title>SCRAM SHA</title> - <para>The SCRAM SHA Providers uses the Broker configuration itself to store the database of - users. The users' - 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 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 - Management.</para> -</section> diff --git a/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Authentication-Providers.xml b/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Authentication-Providers.xml deleted file mode 100644 index b5546ffebf..0000000000 --- a/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Authentication-Providers.xml +++ /dev/null @@ -1,51 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" - "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section id="Java-Broker-Security-Authentication-Providers"> - <title>Authentication Providers</title> - - <para> In order to successfully establish a connection to the Java Broker, the connection must be - authenticated. The Java Broker supports a number of different authentication schemes, each with - its own "authentication provider". Any number of Authentication Providers can be configured on - the Broker at the same time. </para> - - <important> - <para> Only unused Authentication Provider can be deleted. For delete requests attempting to - delete Authentication Provider associated with the Ports, the errors will be returned and - delete operations will be aborted. It is possible to change the Authentication Provider on - Port at runtime. However, the Broker restart is required for changes on Port to take effect. - </para> - </important> - - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Java-Broker-Security-Authentication-Providers-LDAP.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Java-Broker-Security-Authentication-Providers-Kerberos.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Java-Broker-Security-Authentication-Providers-External.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Java-Broker-Security-Authentication-Providers-Anonymous.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Java-Broker-Security-Authentication-Providers-ScramSha.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Java-Broker-Security-Authentication-Providers-Plain.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Java-Broker-Security-Authentication-Providers-PlainPasswordFile.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Java-Broker-Security-Authentication-Providers-MD5.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Java-Broker-Security-Authentication-Providers-Base64MD5PasswordFile.xml"/> - </section> - diff --git a/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Configuration-Encryption.xml b/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Configuration-Encryption.xml deleted file mode 100644 index 2924f2859c..0000000000 --- a/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Configuration-Encryption.xml +++ /dev/null @@ -1,74 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> - -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section id="Java-Broker-Security-Configuration-Encryption"> - <title>Configuration Encryption</title> - <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> - <para>The Broker ships with an encryptor implementation called <literal>AESKeyFile</literal>. This - uses a securely generated random key of 256bit<footnote><para>Java Cryptography Extension (JCE) - Unlimited Strength required</para></footnote> to encrypt the secrets stored within a key - file. Of course, the key itself must be guarded carefully, otherwise the passwords encrypted - with it may be compromised. For this reason, the Broker that the file's permissions allow the - file to be read exclusively by the user account used for running the Broker.</para> - <important> - <para>If the keyfile is lost or corrupted, the secrets will be irrecoverable.</para> - </important> - <section id="Java-Broker-Security-Configuration-Encryption-Configuration"> - <title>Configuration</title> - <para>To use <literal>AESKeyFile</literal>, first stop the Broker, then edit the Broker's - configuration file ${QPID_WORK}/config.json. Insert a Broker attribute called - <literal>confidentialConfigurationEncryptionProvider</literal> with value - <literal>AESKeyFile</literal>. On restarting the Broker, it will generate a keyfile in - location <literal>${QPID_WORK}/.keys/</literal>. Any existing passwords contained with the - configuration will be automatically encrypted, as will any new or changed ones in - future.</para> - <example> - <title>Enanbling password encryption</title> - <screen> - { - "id" : "3f183a59-abc3-40ad-8e14-0cac9de2cac4", - "name" : "${broker.name}", - "confidentialConfigurationEncryptionProvider" : "AESKeyFile", - .... - } - </screen> - </example> - <para>Note that passwords stored by the Authentication Providers <link - linkEnd="Java-Broker-Security-PlainPasswordFile-Provider">PlainPasswordFile</link> and. - <link linkEnd="Java-Broker-Security-Base64MD5PasswordFile-Provider">PlainPasswordFile</link> - with the external password files are <emphasis>not</emphasis> encrypted by the key. Use the - Scram Authentication Managers instead; these make use of the Configuration Encryption when - storing the users' passwords. </para> - </section> - <section id="Java-Broker-Security-Configuration-Encryption-Alternate-Implementations"> - <title>Alternate Implementations</title> - <para>If the <literal>AESKeyFile</literal> encryptor implementation does not meet the needs of - 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 - 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/security/Java-Broker-Security-Group-Providers.xml b/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Group-Providers.xml deleted file mode 100644 index ac106b195f..0000000000 --- a/qpid/doc/book/src/java-broker/security/Java-Broker-Security-Group-Providers.xml +++ /dev/null @@ -1,62 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> - -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section id="Java-Broker-Security-Group-Providers"> - <title>Group Providers</title> - <para> - The Java broker utilises GroupProviders to allow assigning users to groups for use in <link linkend="Java-Broker-Security-ACLs">ACLs</link>. - Following authentication by a given <link linkend="Java-Broker-Security-Authentication-Providers">Authentication Provider</link>, - the configured Group Providers are consulted allowing the assignment of GroupPrincipals for a given authenticated user. Any number of - Group Providers can be added into the Broker. All of them will be checked for the presence of the groups for a given authenticated user. - </para> - - <section role="h3" id="File-Group-Manager"> - <title>GroupFile Provider</title> - <para> - The <emphasis>GroupFile</emphasis> Provider allows specifying group membership in a flat file on disk. - On adding a new GroupFile Provider the path to the groups file is required to be specified. - If file does not exist an empty file is created automatically. On deletion of GroupFile Provider - the groups file is deleted as well. Only one instance of "GroupFile" Provider per groups file location can be created. - On attempt to create another GroupFile Provider pointing to the same location the error will be displayed and - the creation will be aborted. - </para> - - <section role="h4" id="File-Group-Manager-FileFormat"> - <title>File Format</title> - <para> - The groups file has the following format: - </para> - <programlisting> - # <GroupName>.users = <comma delimited user list> - # For example: - - administrators.users = admin,manager -</programlisting> - <para> - Only users can be added to a group currently, not other groups. Usernames can't contain commas. - </para><para> - Lines starting with a '#' are treated as comments when opening the file, but these are not preserved when the broker updates the file due to changes made through the management interface. - </para> - </section> - </section> -</section> |
