http://git-wip-us.apache.org/repos/asf/qpid-site/blob/5f06b01e/content/releases/qpid-java-6.1.5/java-broker/book/Java-Broker-High-Availability.html ---------------------------------------------------------------------- diff --git a/content/releases/qpid-java-6.1.5/java-broker/book/Java-Broker-High-Availability.html b/content/releases/qpid-java-6.1.5/java-broker/book/Java-Broker-High-Availability.html new file mode 100644 index 0000000..a1c6b4d --- /dev/null +++ b/content/releases/qpid-java-6.1.5/java-broker/book/Java-Broker-High-Availability.html @@ -0,0 +1,153 @@ + + + + + Chapter 10. High Availability - Apache Qpid™ + + + + + + + + + + + + + +
+
+ Menu + + Search + + +
+ + + + + +
+ + +
+

Chapter 10. High Availability

10.1. General Introduction

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.

HA offerings are usually categorised as Active/Active or + Active/Passive. 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.

+ +
+ + + + +
+
+
+ + http://git-wip-us.apache.org/repos/asf/qpid-site/blob/5f06b01e/content/releases/qpid-java-6.1.5/java-broker/book/Java-Broker-Initial-Configuration-Configuration-Properties.html ---------------------------------------------------------------------- diff --git a/content/releases/qpid-java-6.1.5/java-broker/book/Java-Broker-Initial-Configuration-Configuration-Properties.html b/content/releases/qpid-java-6.1.5/java-broker/book/Java-Broker-Initial-Configuration-Configuration-Properties.html new file mode 100644 index 0000000..07952e4 --- /dev/null +++ b/content/releases/qpid-java-6.1.5/java-broker/book/Java-Broker-Initial-Configuration-Configuration-Properties.html @@ -0,0 +1,167 @@ + + + + + 5.7. Customising Configuration using Configuration Properties - Apache Qpid™ + + + + + + + + + + + + + +
+
+ Menu + + Search + + +
+ + + + + +
+ + +
+

5.7. Customising Configuration using Configuration Properties

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 ConfigurationProperties on the broker command + line. If both are defined, System Property values take precedence.

The broker has the following set of core configuration properties, with the indicated + default values if not otherwise configured by the user:

Table 5.1. Base Configuration Properties

Name Description Value
qpid.amqp_port Port number used for the brokers default AMQP messaging port "5672"
qpid.http_port Port number used for the brokers default HTTP management port "8080"
qpid.home_dir 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. Defaults to the value set into the QPID_HOME system property if + it is set, or remains unset otherwise unless configured by the user. +
qpid.work_dir Location of the broker working directory, which might contain + the persistent message store and broker configuration store files. 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.


+

Use of these core properties can be seen in the default 'Initial Configuration' example.

Configuration Properties can be set on the command line using the + -prop (or --configuration-property) + command line argument:

+$ ./qpid-server -prop "qpid.amqp_port=10000" -prop "qpid.http_port=10001"
+        

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 overwrite the configuration store) these new values will be used for the + port numbers instead.

NOTE: When running the broker on Windows and starting it via the qpid-server.bat + file, the "name=value" argument MUST be quoted.

+ +
+ + + + +
+
+
+ + http://git-wip-us.apache.org/repos/asf/qpid-site/blob/5f06b01e/content/releases/qpid-java-6.1.5/java-broker/book/Java-Broker-Initial-Configuration-Create-Initial-Config.html ---------------------------------------------------------------------- diff --git a/content/releases/qpid-java-6.1.5/java-broker/book/Java-Broker-Initial-Configuration-Create-Initial-Config.html b/content/releases/qpid-java-6.1.5/java-broker/book/Java-Broker-Initial-Configuration-Create-Initial-Config.html new file mode 100644 index 0000000..ae59c25 --- /dev/null +++ b/content/releases/qpid-java-6.1.5/java-broker/book/Java-Broker-Initial-Configuration-Create-Initial-Config.html @@ -0,0 +1,159 @@ + + + + + 5.4. Creating an 'Initial Configuration' JSON File - Apache Qpid™ + + + + + + + + + + + + + +
+
+ Menu + + Search + + +
+ + + + + +
+ + +
+

5.4. Creating an 'Initial Configuration' JSON File

It is possible to have the broker output its default internal 'Initial Configuration' + file to disk using the command line argument -cic (or + --create-initial-config). If the option is used without + providing a path, a file called initial-config.json will be created + in the current directory, or alternatively the file can be created at a specified + location:

+$ ./qpid-server -cic ./initial-config.json
+        

The 'Initial Configuration' JSON file shares a common format with the brokers JSON + Configuration Store implementation, so it is possible to use a Broker's 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 Configuration Store Type.

It can be useful to use Configuration + Properties within 'Initial Configuration' files to allow a degree of + customisation with an otherwise fixed file.

For an example file, see Section 5.8, “Example of JSON 'Initial Configuration'” +

+ +
+ + + + +
+
+
+ + http://git-wip-us.apache.org/repos/asf/qpid-site/blob/5f06b01e/content/releases/qpid-java-6.1.5/java-broker/book/Java-Broker-Initial-Configuration-Example.html ---------------------------------------------------------------------- diff --git a/content/releases/qpid-java-6.1.5/java-broker/book/Java-Broker-Initial-Configuration-Example.html b/content/releases/qpid-java-6.1.5/java-broker/book/Java-Broker-Initial-Configuration-Example.html new file mode 100644 index 0000000..1e7c8cb --- /dev/null +++ b/content/releases/qpid-java-6.1.5/java-broker/book/Java-Broker-Initial-Configuration-Example.html @@ -0,0 +1,233 @@ + + + + + 5.8. Example of JSON 'Initial Configuration' - Apache Qpid™ + + + + + + + + + + + + + +
+
+ Menu + + Search + + +
+ + + + + +
+ + +
+

5.8. Example of JSON 'Initial Configuration'

An example of the default 'Initial Configuration' JSON file the broker uses is + provided below:

Example 5.1. JSON 'Initial configuration' File

+{
+  "name": "${broker.name}",
+  "modelVersion": "6.1",
+  "authenticationproviders" : [ {
+    "name" : "passwordFile",
+    "type" : "PlainPasswordFile",
+    "path" : "${qpid.home_dir}${file.separator}etc${file.separator}passwd"
+  } ],
+    "brokerloggers" : [ {
+    "name" : "logfile",
+    "type" : "File",
+    "fileName" : "${qpid.work_dir}${file.separator}log${file.separator}qpid.log",
+    "brokerloginclusionrules" : [ {
+      "name" : "Root",
+      "type" : "NameAndLevel",
+      "level" : "WARN",
+      "loggerName" : "ROOT"
+    }, {
+      "name" : "Qpid",
+      "type" : "NameAndLevel",
+      "level" : "INFO",
+      "loggerName" : "org.apache.qpid.*"
+    }, {
+      "name" : "Operational",
+      "type" : "NameAndLevel",
+      "level" : "INFO",
+      "loggerName" : "qpid.message.*"
+    } ]
+  }, {
+    "name" : "memory",
+    "type" : "Memory",
+    "brokerloginclusionrules" : [ {
+      "name" : "Root",
+      "type" : "NameAndLevel",
+      "level" : "WARN",
+      "loggerName" : "ROOT"
+    }, {
+      "name" : "Qpid",
+      "type" : "NameAndLevel",
+      "level" : "INFO",
+      "loggerName" : "org.apache.qpid.*"
+    }, {
+      "name" : "Operational",
+      "type" : "NameAndLevel",
+      "level" : "INFO",
+      "loggerName" : "qpid.message.*"
+    } ]
+  } ],
+  "ports" : [  {
+    "name" : "AMQP",
+    "port" : "${qpid.amqp_port}",
+    "authenticationProvider" : "passwordFile",
+    "virtualhostaliases" : [ {
+       "name" : "nameAlias",
+       "type" : "nameAlias"
+    }, {
+        "name" : "defaultAlias",
+        "type" : "defaultAlias"
+    }, {
+        "name" : "hostnameAlias",
+        "type" : "hostnameAlias"
+    } ]
+  }, {
+    "name" : "HTTP",
+    "port" : "${qpid.http_port}",
+    "authenticationProvider" : "passwordFile",
+    "protocols" : [ "HTTP" ]
+  }],
+  "virtualhostnodes" : [ {
+    "name" : "default",
+    "type" : "JSON",
+    "defaultVirtualHostNode" : "true",
+    "virtualHostInitialConfiguration" : "\\${qpid.initial_config_virtualhost_config}"
+  } ],
+  "plugins" : [ {
+    "type" : "MANAGEMENT-HTTP",
+    "name" : "httpManagement"
+  } ]
+}
+

In the configuration above the following entries are stored:

  • Authentication Provider of type + PlainPasswordFile with name "passwordFile". +

  • Two Port entries: "AMQP", "HTTP" +

  • 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 + JSON configuration store, the message data will + be stored in a DERBY message store.

  • One management plugin: "httpManagement" of type "MANAGEMENT-HTTP".

  • Broker attributes are stored as a root entry.

+


+ +
+ + + + +
+
+
+ + http://git-wip-us.apache.org/repos/asf/qpid-site/blob/5f06b01e/content/releases/qpid-java-6.1.5/java-broker/book/Java-Broker-Initial-Configuration-Initial-Config-Location.html ---------------------------------------------------------------------- diff --git a/content/releases/qpid-java-6.1.5/java-broker/book/Java-Broker-Initial-Configuration-Initial-Config-Location.html b/content/releases/qpid-java-6.1.5/java-broker/book/Java-Broker-Initial-Configuration-Initial-Config-Location.html new file mode 100644 index 0000000..f4800d0 --- /dev/null +++ b/content/releases/qpid-java-6.1.5/java-broker/book/Java-Broker-Initial-Configuration-Initial-Config-Location.html @@ -0,0 +1,154 @@ + + + + + 5.3. 'Initial Configuration' Location - Apache Qpid™ + + + + + + + + + + + + + +
+
+ Menu + + Search + + +
+ + + + + +
+ + +
+

5.3. 'Initial Configuration' Location

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.

The command line argument -icp (or + --initial-config-path) can be used to override the brokers + internal file and supply a user-created + one:

+$ ./qpid-server -icp ./my-initial-configuration.json
+        

If a Configuration Store already exists at the current store location then the + current 'Initial Configuration' will be ignored unless otherwise requested to overwrite the configuration + store +

+ +
+ + + + +
+
+
+ + http://git-wip-us.apache.org/repos/asf/qpid-site/blob/5f06b01e/content/releases/qpid-java-6.1.5/java-broker/book/Java-Broker-Initial-Configuration-Location.html ---------------------------------------------------------------------- diff --git a/content/releases/qpid-java-6.1.5/java-broker/book/Java-Broker-Initial-Configuration-Location.html b/content/releases/qpid-java-6.1.5/java-broker/book/Java-Broker-Initial-Configuration-Location.html new file mode 100644 index 0000000..a0b0262 --- /dev/null +++ b/content/releases/qpid-java-6.1.5/java-broker/book/Java-Broker-Initial-Configuration-Location.html @@ -0,0 +1,151 @@ + + + + + 5.2. Configuration Store Location - Apache Qpid™ + + + + + + + + + + + + + +
+
+ Menu + + Search + + +
+ + + + + +
+ + +
+

5.2. Configuration Store Location

The broker will default to using ${qpid.work_dir}/config.json as the path for it s configuration store unless + otherwise instructed.

The command line argument -sp (or + --store-path) can optionally be used to specify a different + relative or absolute path to use for the broker configuration store:

+$ ./qpid-server -sp ./my-broker-configuration.json
+        

If no configuration store exists at the specified/defaulted location when the broker + starts then one will be initialised using the current 'Initial + Configuration'.

+ +
+ + + + +
+
+
+ + http://git-wip-us.apache.org/repos/asf/qpid-site/blob/5f06b01e/content/releases/qpid-java-6.1.5/java-broker/book/Java-Broker-Initial-Configuration-Overwrite-Config-Store.html ---------------------------------------------------------------------- diff --git a/content/releases/qpid-java-6.1.5/java-broker/book/Java-Broker-Initial-Configuration-Overwrite-Config-Store.html b/content/releases/qpid-java-6.1.5/java-broker/book/Java-Broker-Initial-Configuration-Overwrite-Config-Store.html new file mode 100644 index 0000000..217a508 --- /dev/null +++ b/content/releases/qpid-java-6.1.5/java-broker/book/Java-Broker-Initial-Configuration-Overwrite-Config-Store.html @@ -0,0 +1,154 @@ + + + + + 5.5. Overwriting An Existing Configuration Store - Apache Qpid™ + + + + + + + + + + + + + +
+
+ Menu + + Search + + +
+ + + + + +
+ + +
+

5.5. Overwriting An Existing Configuration Store

If a configuration store already exists at the configured store location then it + is used and the current 'Initial + Configuration' is ignored.

The command line argument -os (or + --overwrite-store) can be used to force a new broker + configuration store to be initialised from the current 'Initial Configuration' even if + one exists:

+$ ./qpid-server -os -icp ./my-initial-configuration.json
+        

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 Configuration Store Type may + also be useful.

+ +
+ + + + +
+
+
+ + http://git-wip-us.apache.org/repos/asf/qpid-site/blob/5f06b01e/content/releases/qpid-java-6.1.5/java-broker/book/Java-Broker-Initial-Configuration-Type.html ---------------------------------------------------------------------- diff --git a/content/releases/qpid-java-6.1.5/java-broker/book/Java-Broker-Initial-Configuration-Type.html b/content/releases/qpid-java-6.1.5/java-broker/book/Java-Broker-Initial-Configuration-Type.html new file mode 100644 index 0000000..f3f9bf2 --- /dev/null +++ b/content/releases/qpid-java-6.1.5/java-broker/book/Java-Broker-Initial-Configuration-Type.html @@ -0,0 +1,161 @@ + + + + + 5.6. Configuration Store Type - Apache Qpid™ + + + + + + + + + + + + + +
+
+ Menu + + Search + + +
+ + + + + +
+ + +
+

5.6. Configuration Store Type

There are currently several implementations of the pluggable Broker Configuration Store: +

JSON

the default one which persists content to disk in a JSON file

Memory

operates only in-memory and so does not retain changes across broker + restarts and always relies on the current 'Initial + Configuration' to provide the configuration to start the broker with. +

DERBY

stores configuration in embedded derby store

BDB

stores configuration in Berkeley DB store

JDBC

stores configuration in external RDBMS using JDBC

+

The command line argument -st (or + --store-type) can be used to override the default + json)configuration store type and allow choosing an alternative, + such as Memory)

+$ ./qpid-server -st memory
+        

This can be useful when running tests, or always wishing to start the broker with the + same 'Initial + Configuration' +

Another example of broker startup with configuration in DERBY network server

+$ ./qpid-server -st JDBC \
+  -prop "systemConfig.connectionUrl=jdbc:derby://localhost:1527/path/to/store;create=true" \
+  -prop "systemConfig.username=test" -prop "systemConfig.password=password"
+        
+ +
+ + + + +
+
+
+ + --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org For additional commands, e-mail: commits-help@qpid.apache.org