summaryrefslogtreecommitdiff
path: root/doc/book/src/java-broker/HA-Guide.xml
diff options
context:
space:
mode:
Diffstat (limited to 'doc/book/src/java-broker/HA-Guide.xml')
-rw-r--r--doc/book/src/java-broker/HA-Guide.xml34
1 files changed, 26 insertions, 8 deletions
diff --git a/doc/book/src/java-broker/HA-Guide.xml b/doc/book/src/java-broker/HA-Guide.xml
index 429f2f76c2..041309d711 100644
--- a/doc/book/src/java-broker/HA-Guide.xml
+++ b/doc/book/src/java-broker/HA-Guide.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urls [
<!ENTITY oracleBdbProductOverviewUrl "http://www.oracle.com/technetwork/products/berkeleydb/overview/index-093405.html">
-<!ENTITY oracleBdbProductVersion "5.0.48">
+<!ENTITY oracleBdbProductVersion "5.0.58">
<!ENTITY oracleBdbRepGuideUrl "http://oracle.com/cd/E17277_02/html/ReplicationGuide/">
<!ENTITY oracleBdbJavaDocUrl "http://docs.oracle.com/cd/E17277_02/html/java/">
<!ENTITY oracleJdkDocUrl "http://oracle.com/javase/6/docs/api/">
@@ -26,8 +26,9 @@
under the License.
-->
-<section>
+<section id="High-Availability">
<title>High Availability</title>
+
<section role="h3" id="HAGeneralIntroduction">
<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
@@ -40,6 +41,7 @@
some kind of standby state, awaiting to quickly step-in in the event the active node becomes unavailable.
</para>
</section>
+
<section role="h3" id="HAOfferingsOfJavaBroker">
<title>HA offerings of the Java Broker</title>
<para>The Java Broker's HA offering became available at release <emphasis role="bold">0.18</emphasis>. HA is provided by way of the HA
@@ -60,6 +62,7 @@
<para>HA is not currently available for those using the the <emphasis role="bold">Derby Store</emphasis> or <emphasis role="bold">Memory
Message Store</emphasis>.</para>
</section>
+
<section role="h3" id="HATwoNodeCluster">
<title>Two Node Cluster</title>
<section role="h4">
@@ -283,11 +286,13 @@
</section>
</section>
</section>
+
<section role="h3" id="HAMultiNodeCluster">
<title>Multi Node Cluster</title>
<para>Multi node clusters, that is clusters where the number of nodes is three or more, are not yet
ready for use.</para>
</section>
+
<section role="h3" id="HAConfiguration">
<title>Configuring a Virtual Host to be a node</title>
<para>To configure a virtualhost as a cluster node, configure the virtualhost.xml in the following manner:</para>
@@ -385,6 +390,7 @@
</store>]]></programlisting>
</section>
</section>
+
<section role="h3" id="HADurabilityGuarantee">
<title>Durability Guarantees</title>
<para>The term <ulink url="http://en.wikipedia.org/wiki/ACID#Durability">durability</ulink> is used to mean that once a
@@ -480,6 +486,7 @@
</para>
</section>
</section>
+
<section id="HAClientFailover">
<title>Client failover configuration</title>
<para>The details about format of Qpid connection URLs can be found at section
@@ -495,6 +502,8 @@
amqp://guest:guest@clientid/test?brokerlist='tcp://localhost:5672?connectdelay='2000'&retries='3';tcp://localhost:5671?connectdelay='2000'&retries='3';tcp://localhost:5673?connectdelay='2000'&retries='3''&failover='roundrobin?cyclecount='30''
]]></example>
</section>
+
+
<section role="h3" id="HAJMXAPI">
<title>Qpid JMX API for HA</title>
<para>Qpid exposes the BDB HA store information via its JMX interface and provides APIs to remove a Node from
@@ -569,6 +578,7 @@ amqp://guest:guest@clientid/test?brokerlist='tcp://localhost:5672?connectdelay='
</tr>
</tbody>
</table>
+
<table border="1">
<title>Mbean <classname>BDBHAMessageStore</classname> operations</title>
<thead>
@@ -592,15 +602,15 @@ amqp://guest:guest@clientid/test?brokerlist='tcp://localhost:5672?connectdelay='
<td>updateAddress</td>
<td>
<itemizedlist>
- <itemizedlist>
+ <listitem>
<para><emphasis>nodeName</emphasis>, name of node, string</para>
- </itemizedlist>
- <itemizedlist>
+ </listitem>
+ <listitem>
<para><emphasis>newHostName</emphasis>, new host name, string</para>
- </itemizedlist>
- <itemizedlist>
+ </listitem>
+ <listitem>
<para><emphasis>newPort</emphasis>, new port number, int</para>
- </itemizedlist>
+ </listitem>
</itemizedlist>
</td>
<td>void</td>
@@ -632,6 +642,7 @@ System.out.println("Node state:" + state);
<screen><![CDATA[Node state:MASTER]]></screen>
</example>
</section>
+
<section id="BDB-HA-Monitoring-cluster">
<title>Monitoring cluster</title>
<para>In order to discover potential issues with HA Cluster early, all nodes in the Cluster should be monitored on regular basis
@@ -704,6 +715,7 @@ Current state of node: Node-5001 from group: TestClusterGroup
</listitem>
</itemizedlist>
</section>
+
<section id="HADiskSpace">
<title>Disk space requirements</title>
<para>Disk space is a critical resource for the HA Qpid broker.</para>
@@ -717,6 +729,7 @@ Current state of node: Node-5001 from group: TestClusterGroup
Please, make sure to allocate enough space on your disk to avoid this from happening.
</para>
</section>
+
<section id="BDB-HA-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>
@@ -724,6 +737,7 @@ Current state of node: Node-5001 from group: TestClusterGroup
which might include installation of dedicated network hardware on Broker hosts, assigning a higher priority to replication ports,
installing a cluster in a separate network not impacted by any other traffic.</para>
</section>
+
<section id="BDB-HA-Security">
<title>Security</title>
<para>At the moment Berkeley replication API supports only TCP/IP protocol to transfer replication data between Master and Replicas.</para>
@@ -731,6 +745,7 @@ Current state of node: Node-5001 from group: TestClusterGroup
<para>Also, anyone who can access to this network can introduce a new node and therefore receive a copy of the data.</para>
<para>In order to reduce the security risks the entire HA cluster is recommended to run in a separate network protected from general access.</para>
</section>
+
<section id="BDB-HA-Backup">
<title>Backups</title>
<para>In order to protect the entire cluster from some cataclysms which might destroy all cluster nodes,
@@ -752,6 +767,7 @@ Current state of node: Node-5001 from group: TestClusterGroup
the lifecycle of the cluster.</para>
</note>
</section>
+
<section id="HAMigrationFromNonHA">
<title>Migration of a non-HA store to HA</title>
<para>Non HA stores starting from schema version 4 (0.14 Qpid release) can be automatically converted into HA store on broker startup if replication is first enabled with the <ulink url="&oracleBdbJavaDocUrl;com/sleepycat/je/rep/util/DbEnableReplication.html"><classname>DbEnableReplication</classname></ulink> utility from the BDB JE jar.</para>
@@ -782,6 +798,7 @@ java -jar je-&oracleBdbProductVersion;.jar DbEnableReplication -h /path/to/store
<para>Due to existing caveats in Berkeley JE with copying of data from Master into Replica it is recommended to restart the Master node after store schema upgrade is finished before starting the Replica nodes.</para>
</note>
</section>
+
<section id="HADisasterRecovery">
<title>Disaster Recovery</title>
<para>This section describes the steps required to restore HA broker cluster from backup.</para>
@@ -987,4 +1004,5 @@ java -cp je-&oracleBdbProductVersion;.jar com.sleepycat.je.rep.util.DbResetRepGr
With this mode enabled, Qpid broker batches the concurrent transaction commits and syncs transaction data into Master disk in one go.
As result, the HA performance only drops by 25-60% for durability <emphasis>NO_SYNC,NO_SYNC,ALL</emphasis> and by 10-90% for <emphasis>WRITE_NO_SYNC,WRITE_NO_SYNC,ALL</emphasis>.</para>
</section>
+
</section>