Modified: qpid/site/docs/releases/qpid-trunk/java-broker/book/Java-Broker-High-Availability-Backup.html URL: http://svn.apache.org/viewvc/qpid/site/docs/releases/qpid-trunk/java-broker/book/Java-Broker-High-Availability-Backup.html?rev=1632181&r1=1632180&r2=1632181&view=diff ============================================================================== --- qpid/site/docs/releases/qpid-trunk/java-broker/book/Java-Broker-High-Availability-Backup.html (original) +++ qpid/site/docs/releases/qpid-trunk/java-broker/book/Java-Broker-High-Availability-Backup.html Wed Oct 15 21:29:55 2014 @@ -21,7 +21,7 @@ --> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> - <title>13.13. Backups - Apache Qpid™</title> + <title>10.11. Backups - Apache Qpid™</title> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <link rel="stylesheet" href="/site.css" type="text/css" async="async"/> @@ -106,12 +106,9 @@ </div> <div id="-middle" class="panel"> - <ul id="-path-navigation"><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-trunk/index.html">Qpid Trunk</a></li><li><a href="/releases/qpid-trunk/java-broker/book/index.html">AMQP Messaging Broker (Java)</a></li><li>13.13. Backups</li></ul> - <div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">13.13. Backups</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-High-Availability-Security.html">Prev</a> </td><th align="center" width="60%">Chapter 13. High Availability</th><td align="right" width="20%"> <a accesskey="n" href="Java-Broker-High-Availability-MigrationFromNonHA.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="Java-Broker-High-Availability-Backup"></a>13.13. Backups</h2></div></div></div><p>In order to protect the entire cluster from some cataclysms which might destroy all cluster nodes, - backups of the Master store should be taken on a regular basis.</p><p>Qpid Broker distribution includes the "hot" backup utility <span class="emphasis"><em>backup.sh</em></span> which can be found at broker bin folder. - This utility can perform the backup when broker is running.</p><p><span class="emphasis"><em>backup.sh</em></span> script invokes <code class="classname">org.apache.qpid.server.store.berkeleydb.BDBBackup</code> to do the job.</p><p>You can also run this class from command line like in an example below:</p><div class="example"><a id="idm233113748576"></a><p class="title"><strong>Example 13.5. Performing store backup by using <code class="classname">BDBBackup</code> class directly</strong></p><div class="example-contents"><span class="command"><strong> - java -cp qpid-bdbstore-0.29.jar org.apache.qpid.server.store.berkeleydb.BDBBackup -fromdir path/to/store/folder -todir path/to/backup/folder</strong></span></div></div><br class="example-break" /><p>In the example above BDBBackup utility is called from qpid-bdbstore-0.29.jar to backup the store at <span class="emphasis"><em>path/to/store/folder</em></span> and copy store logs into <span class="emphasis"><em>path/to/backup/folder</em></span>.</p><p>Linux and Unix users can take advantage of <span class="emphasis"><em>backup.sh</em></span> bash script by running this script in a similar way.</p><div class="example"><a id="idm233113744560"></a><p class="title"><strong>Example 13.6. Performing store backup by using <code class="classname">backup.sh</code> bash script</strong></p><div class="example-contents"><span class="command"><strong>backup.sh -fromdir path/to/store/folder -todir path/to/backup/folder</strong></span></div></div><br class="example-break" /><div clas s="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>Do not forget to ensure that the Master store is being backed up, in the event the Node elected Master changes during - the lifecycle of the cluster.</p></div></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="Java-Broker-High-Availability-Security.html">Prev</a> </td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-High-Availability.html">Up</a></td><td align="right" width="40%"> <a accesskey="n" href="Java-Broker-High-Availability-MigrationFromNonHA.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">13.12. Security </td><td align="center" width="20%"><a accesskey="h" href="index.html">Home</a></td><td align="right" valign="top" width="40%"> 13.14. Migration of a non-HA store to HA</td></tr></table></div></div> + <ul id="-path-navigation"><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-trunk/index.html">Qpid Trunk</a></li><li><a href="/releases/qpid-trunk/java-broker/book/index.html">AMQP Messaging Broker (Java)</a></li><li>10.11. Backups</li></ul> + <div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">10.11. Backups</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-High-Availability-Security.html">Prev</a> </td><th align="center" width="60%">Chapter 10. High Availability</th><td align="right" width="20%"> <a accesskey="n" href="Java-Broker-High-Availability-Reset-Group-Infomational.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="Java-Broker-High-Availability-Backup"></a>10.11. Backups</h2></div></div></div><p>It is recommend to use the hot backup script to periodically backup every node in the + group. <a class="xref" href="Java-Broker-Backup-And-Recovery-Virtualhost-Node.html#Java-Broker-Backup-And-Recovery-Virtualhost-Node-BDB-HA" title="11.2.2. BDB-HA">Section 11.2.2, “BDB-HA”</a>.</p></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="Java-Broker-High-Availability-Security.html">Prev</a> </td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-High-Availability.html">Up</a></td><td align="right" width="40%"> <a accesskey="n" href="Java-Broker-High-Availability-Reset-Group-Infomational.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">10.10. Security </td><td align="center" width="20%"><a accesskey="h" href="index.html">Home</a></td><td align="right" valign="top" width="40%"> 10.12. Reset Group Information</td></tr></table></div></div> <hr/>
Added: qpid/site/docs/releases/qpid-trunk/java-broker/book/Java-Broker-High-Availability-Behaviour.html URL: http://svn.apache.org/viewvc/qpid/site/docs/releases/qpid-trunk/java-broker/book/Java-Broker-High-Availability-Behaviour.html?rev=1632181&view=auto ============================================================================== --- qpid/site/docs/releases/qpid-trunk/java-broker/book/Java-Broker-High-Availability-Behaviour.html (added) +++ qpid/site/docs/releases/qpid-trunk/java-broker/book/Java-Broker-High-Availability-Behaviour.html Wed Oct 15 21:29:55 2014 @@ -0,0 +1,212 @@ +<!DOCTYPE html> +<!-- + - + - 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. + - +--> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> + <head> + <title>10.4. Behaviour of the Group - Apache Qpid™</title> + <meta http-equiv="X-UA-Compatible" content="IE=edge"/> + <meta name="viewport" content="width=device-width, initial-scale=1.0"/> + <link rel="stylesheet" href="/site.css" type="text/css" async="async"/> + <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/> + <script type="text/javascript">var _deferredFunctions = [];</script> + <script type="text/javascript" src="/deferred.js" defer="defer"></script> + <!--[if lte IE 8]> + <link rel="stylesheet" href="/ie.css" type="text/css"/> + <script type="text/javascript" src="/html5shiv.js"></script> + <![endif]--> + </head> + <body> + <div id="-content"> + <div id="-top" class="panel"> + <a id="-menu-link"><img width="16" height="16" src="data:image/png;base64," alt="Menu"/></a> + + <a id="-search-link"><img width="22" height="16" src="data:image/png;base64," alt="Search"/></a> + + <ul id="-global-navigation"> + <li><a id="-logotype" href="/index.html">Apache Qpid<sup>™</sup></a></li> + <li><a href="/download.html">Download</a></li> + <li><a href="/documentation.html">Documentation</a></li> + <li><a href="/discussion.html">Discussion</a></li> + <li><a href="/issues.html">Issues</a></li> + <li><a href="/source-code.html">Source Code</a></li> + <li><a href="/resources.html">More Resources</a></li> + </ul> + </div> + + <div id="-menu" class="panel" style="display: none;"> + <section> + <h3>Project</h3> + + <ul> + <li><a href="/overview.html">Overview</a></li> + <li><a href="/proton/index.html">Qpid Proton</a></li> + <li><a href="/contributors.html">Contributors</a></li> + <li><a href="/get-involved.html">Get involved</a></li> + </ul> + </section> + + <section> + <h3>Software</h3> + + <ul> + <li><a href="/download.html">Download</a></li> + <li><a href="/documentation.html">Documentation</a></li> + <li><a href="/components/index.html">Components</a></li> + <li><a href="/releases/index.html">Releases</a></li> + </ul> + </section> + + <section> + <h3>Resources</h3> + + <ul> + <li><a href="/discussion.html">Discussion</a></li> + <li><a href="/issues.html">Issues</a></li> + <li><a href="/source-code.html">Source code</a></li> + <li><a href="/resources.html">More resources</a></li> + </ul> + </section> + + <section> + <h3>More</h3> + + <ul> + <li><a href="/amqp.html">AMQP</a></li> + <li><a href="/developer.html">Developer central</a></li> + <li><a href="https://cwiki.apache.org/confluence/display/qpid/">Wiki</a></li> + </ul> + </section> + </div> + + <div id="-search" class="panel" style="display: none;"> + <form action="http://www.google.com/search" method="get"> + <input type="hidden" name="sitesearch" value="qpid.apache.org"/> + <input type="text" name="q" maxlength="255" autofocus="autofocus" tabindex="1"/> + <button type="submit">Search</button> + <p><a href="/search.html">More ways to search</a></p> + </form> + </div> + + <div id="-middle" class="panel"> + <ul id="-path-navigation"><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-trunk/index.html">Qpid Trunk</a></li><li><a href="/releases/qpid-trunk/java-broker/book/index.html">AMQP Messaging Broker (Java)</a></li><li>10.4. Behaviour of the Group</li></ul> + <div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">10.4. Behaviour of the Group</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-High-Availability-CreatingGroup.html">Prev</a> </td><th align="center" width="60%">Chapter 10. High Availability</th><td align="right" width="20%"> <a accesskey="n" href="Java-Broker-High-Availability-NodeOperations.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="Java-Broker-High-Availability-Behaviour"></a>10.4. Behaviour of the Group</h2></div></div></div><p>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 <a class="ulink" href="http://en.wikipedia.org/wiki/ACID#Durability" target="_top">durability</a> of transactions and + the data consistency between the master and replicas and thus make trade offs between + performance and reliability.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-High-Availability-Behaviour-Default-Behaviour"></a>10.4.1. Default Behaviour</h3></div></div></div><p>Let's first look at the behaviour of a group in default configuration.</p><p>In the default configuration, for any messaging work to be done, there must be at least + <span class="emphasis"><em>quorum</em></span> nodes present. This means for example, in a three node group, + this means there must be at least two nodes available.</p><p>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:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>At the master, the transaction is <span class="emphasis"><em>written to disk and OS level caches + are flushed</em></span> meaning the data is on the storage device.</p></li><li class="listitem"><p>At least quorum minus 1 replicas, <span class="emphasis"><em>acknowledge the receipt of + transaction</em></span>. The replicas will write the data to the storage device + sometime later.</p></li></ul></div><p>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.</p><p>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.</p><p>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.</p><p>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.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-High-Availability-Behaviour-SynchronizationPolicy"></a>10.4.2. Synchronization Policy</h3></div></div></div><p>The <span class="emphasis"><em>synchronization policy</em></span> dictates what a node must do when it + receives a transaction before it acknowledges that transaction to the rest of the + group.</p><p>The following options are available: </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><span class="emphasis"><em>SYNC</em></span>. 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.</p></li><li class="listitem"><p><span class="emphasis"><em>WRITE_NO_SYNC</em></span>. 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.</p></li><li class="listitem"><p><span class="emphasis"><em>NO_SYNC</em></span>. 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 <span class="emphasis"><em>commit to the network</em></span>.</p></li></ul></div><p>It is possible to assign a one policy to the master and a different policy to the + replicas. These are configured as <a class="link" href="Java-Broker-Management-Managing-Virtualhosts.html#Java-Broker-Management-Managing-Virtualhost-Attributes" title="7.5.3. Attributes">attributes on the + virtualhost</a>. By default the master uses <span class="emphasis"><em>SYNC</em></span> and replicas use + <span class="emphasis"><em>NO_SYNC</em></span>.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-High-Availability-Behaviour-NodePriority"></a>10.4.3. Node Priority</h3></div></div></div><p>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. </p><p>The following options are available: </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><span class="emphasis"><em>Highest</em></span>. 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.</p></li><li class="listitem"><p><span class="emphasis"><em>High</em></span>. Nodes with this priority will be favoured but not as + much so as those with Highest.</p></li><li class="listitem"><p><span class="emphasis"><em>Normal</em></span>. This is default election priority.</p></li><li class="listitem"><p><span class="emphasis"><em>Never</em></span>. The node will never be elected <span class="emphasis"><em>even if the + node has the most recent transaction</em></span>. The node will still keep up to date + with the replication stream and will still vote itself, but can just never be + elected.</p></li></ul></div><p> + </p><p>Node priority is configured as an <a class="link" href="Java-Broker-Management-Managing-Virtualhost-Nodes.html#Java-Broker-Management-Managing-Virtualhost-Nodes-Attributes" title="7.4.2. Attributes">attribute on the + virtualhost node</a> and can be changed at runtime and is effective immediately.</p><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Important</h3><p>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.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-High-Availability-Behaviour-MinimumNumberOfNodes"></a>10.4.4. Required Minimum Number Of Nodes</h3></div></div></div><p>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 + <span class="emphasis"><em>Default</em></span> (which signifies quorum).</p><p>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.</p><p>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.</p><p>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?</p><p>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 <a class="link" href="Java-Broker-Management-Managing-Virtualhost-Nodes.html#Java-Broker-Management-Managing-Virtualhost-Nodes-Attributes" title="7.4.2. Attributes">attribute on the + virtualhost node</a> and can be changed at runtime and is effective immediately.</p><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Important</h3><p>The attribute must be used cautiously. Careless use will lead to lost transactions and + can lead to a <a class="ulink" href="http://en.wikipedia.org/wiki/Split-brain_(computing)" target="_top">split-brain</a> in the event of a network partition. If used to temporarily restore + service from fewer than quorum nodes, it is <span class="emphasis"><em>imperative</em></span> to revert it + to the Default value as the failed nodes are restored.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-High-Availability-Behaviour-DesignatedPrimary"></a>10.4.5. Designated Primary</h3></div></div></div><p>This attribute applies to the groups of two only.</p><p> 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. </p><p>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 <a class="link" href="Java-Broker-Management-Managing-Virtualhost-Nodes.html#Java-Broker-Management-Managing-Virtualhost-Nodes-Attributes" title="7.4.2. Attributes">attribute on the + virtualhost node</a> and can be changed at runtime and is effective immediately.</p><p>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.</p><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Important</h3><p>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 <a class="ulink" href="http://en.wikipedia.org/wiki/Split-brain_(computing)" target="_top">split-brain</a> will + occur.</p></div></div></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="Java-Broker-High-Availability-CreatingGroup.html">Prev</a> </td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-High-Availability.html">Up</a></td><td align="right" width="40%"> <a accesskey="n" href="Java-Broker-High-Availability-NodeOperations.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">10.3. Creating a group </td><td align="center" width="20%"><a accesskey="h" href="index.html">Home</a></td><td align="right" valign="top" width="40%"> 10.5. Node Operations</td></tr></table></div></div> + + <hr/> + + <ul id="-apache-navigation"> + <li><a href="http://www.apache.org/">Apache</a></li> + <li><a href="http://www.apache.org/licenses/">License</a></li> + <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li> + <li><a href="http://www.apache.org/foundation/thanks.html">Thanks!</a></li> + <li><a href="http://www.apache.org/security/">Security</a></li> + <li><a href="http://www.apache.org/"><img id="-apache-feather" width="48" height="14" src="data:image/png;base64," alt="Apache"/></a></li> + </ul> + + <p id="-legal"> + Apache Qpid, Messaging built on AMQP; Copyright © 2013 + The Apache Software Foundation; Licensed under + the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache + License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton, + Proton, Apache, the Apache feather logo, and the Apache Qpid + project logo are trademarks of The Apache Software + Foundation; All other marks mentioned may be trademarks or + registered trademarks of their respective owners + </p> + </div> + </div> + </body> +</html> Modified: qpid/site/docs/releases/qpid-trunk/java-broker/book/Java-Broker-High-Availability-ClientFailover.html URL: http://svn.apache.org/viewvc/qpid/site/docs/releases/qpid-trunk/java-broker/book/Java-Broker-High-Availability-ClientFailover.html?rev=1632181&r1=1632180&r2=1632181&view=diff ============================================================================== --- qpid/site/docs/releases/qpid-trunk/java-broker/book/Java-Broker-High-Availability-ClientFailover.html (original) +++ qpid/site/docs/releases/qpid-trunk/java-broker/book/Java-Broker-High-Availability-ClientFailover.html Wed Oct 15 21:29:55 2014 @@ -21,7 +21,7 @@ --> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> - <title>13.7. Client failover configuration - Apache Qpid™</title> + <title>10.6. Client failover - Apache Qpid™</title> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <link rel="stylesheet" href="/site.css" type="text/css" async="async"/> @@ -106,16 +106,12 @@ </div> <div id="-middle" class="panel"> - <ul id="-path-navigation"><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-trunk/index.html">Qpid Trunk</a></li><li><a href="/releases/qpid-trunk/java-broker/book/index.html">AMQP Messaging Broker (Java)</a></li><li>13.7. Client failover configuration</li></ul> - <div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">13.7. Client failover configuration</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-High-Availability-DurabilityGuarantee.html">Prev</a> </td><th align="center" width="60%">Chapter 13. High Availability</th><td align="right" width="20%"> <a accesskey="n" href="Java-Broker-High-Availability-JMXAPI.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="Java-Broker-High-Availability-ClientFailover"></a>13.7. Client failover configuration</h2></div></div></div><p>The details about format of Qpid connection URLs can be found at section - <a class="ulink" href="/releases/qpid-trunk/programming/book/QpidJNDI.html#section-jms-connection-url" target="_top">Connection URLs</a> within the client documentation.</p><p>The failover policy option in the connection URL for the HA Cluster should be set to <span class="emphasis"><em>roundrobin</em></span>. - The Master broker should be put into a first place in <span class="emphasis"><em>brokerlist</em></span> URL option. - The recommended value for <span class="emphasis"><em>connectdelay</em></span> option in broker URL should be set to - the value greater than 1000 milliseconds. If it is desired that clients re-connect automatically after a - master to replica failure, <code class="varname">cyclecount</code> should be tuned so that the retry period is longer than - the expected length of time to perform the failover.</p><div class="example"><a id="idm233113839488"></a><p class="title"><strong>Example 13.2. Example of connection URL for the HA Cluster</strong></p><div class="example-contents"> -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'' - </div></div><br class="example-break" /></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="Java-Broker-High-Availability-DurabilityGuarantee.html">Prev</a> </td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-High-Availability.html">Up</a></td><td align="right" width="40%"> <a accesskey="n" href="Java-Broker-High-Availability-JMXAPI.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">13.6. Durability Guarantees </td><td align="center" width="20%"><a accesskey="h" href="index.html">Home</a></td><td align="right" valign="top" width="40%"> 13.8. Qpid JMX API for HA</td></tr></table></div></div> + <ul id="-path-navigation"><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-trunk/index.html">Qpid Trunk</a></li><li><a href="/releases/qpid-trunk/java-broker/book/index.html">AMQP Messaging Broker (Java)</a></li><li>10.6. Client failover</li></ul> + <div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">10.6. Client failover</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-High-Availability-NodeOperations.html">Prev</a> </td><th align="center" width="60%">Chapter 10. High Availability</th><td align="right" width="20%"> <a accesskey="n" href="Java-Broker-High-Availability-JMXAPI.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="Java-Broker-High-Availability-ClientFailover"></a>10.6. Client failover</h2></div></div></div><p>As mentioned above, the clients need to be able to find the location of the active + virtualhost within the group.</p><p>Clients can do this using a static technique, for example , utilising the <a class="ulink" href="/releases/qpid-trunk/programming/book/QpidJNDI.html#section-jms-connection-url" target="_top">failover feature of the Qpid connection url</a> + 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.</p><p>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.</p></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="Java-Broker-High-Availability-NodeOperations.html">Prev</a> </td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-High-Availability.html">Up</a></td><td align="right" width="40%"> <a accesskey="n" href="Java-Broker-High-Availability-JMXAPI.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">10.5. Node Operations </td><td align="center" width="20%"><a accesskey="h" href="index.html">Home</a></td><td align="right" valign="top" width="40%"> 10.7. Qpid JMX API for HA</td></tr></table></div></div> <hr/> Added: qpid/site/docs/releases/qpid-trunk/java-broker/book/Java-Broker-High-Availability-CreatingGroup.html URL: http://svn.apache.org/viewvc/qpid/site/docs/releases/qpid-trunk/java-broker/book/Java-Broker-High-Availability-CreatingGroup.html?rev=1632181&view=auto ============================================================================== --- qpid/site/docs/releases/qpid-trunk/java-broker/book/Java-Broker-High-Availability-CreatingGroup.html (added) +++ qpid/site/docs/releases/qpid-trunk/java-broker/book/Java-Broker-High-Availability-CreatingGroup.html Wed Oct 15 21:29:55 2014 @@ -0,0 +1,180 @@ +<!DOCTYPE html> +<!-- + - + - 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. + - +--> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> + <head> + <title>10.3. Creating a group - Apache Qpid™</title> + <meta http-equiv="X-UA-Compatible" content="IE=edge"/> + <meta name="viewport" content="width=device-width, initial-scale=1.0"/> + <link rel="stylesheet" href="/site.css" type="text/css" async="async"/> + <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/> + <script type="text/javascript">var _deferredFunctions = [];</script> + <script type="text/javascript" src="/deferred.js" defer="defer"></script> + <!--[if lte IE 8]> + <link rel="stylesheet" href="/ie.css" type="text/css"/> + <script type="text/javascript" src="/html5shiv.js"></script> + <![endif]--> + </head> + <body> + <div id="-content"> + <div id="-top" class="panel"> + <a id="-menu-link"><img width="16" height="16" src="data:image/png;base64," alt="Menu"/></a> + + <a id="-search-link"><img width="22" height="16" src="data:image/png;base64," alt="Search"/></a> + + <ul id="-global-navigation"> + <li><a id="-logotype" href="/index.html">Apache Qpid<sup>™</sup></a></li> + <li><a href="/download.html">Download</a></li> + <li><a href="/documentation.html">Documentation</a></li> + <li><a href="/discussion.html">Discussion</a></li> + <li><a href="/issues.html">Issues</a></li> + <li><a href="/source-code.html">Source Code</a></li> + <li><a href="/resources.html">More Resources</a></li> + </ul> + </div> + + <div id="-menu" class="panel" style="display: none;"> + <section> + <h3>Project</h3> + + <ul> + <li><a href="/overview.html">Overview</a></li> + <li><a href="/proton/index.html">Qpid Proton</a></li> + <li><a href="/contributors.html">Contributors</a></li> + <li><a href="/get-involved.html">Get involved</a></li> + </ul> + </section> + + <section> + <h3>Software</h3> + + <ul> + <li><a href="/download.html">Download</a></li> + <li><a href="/documentation.html">Documentation</a></li> + <li><a href="/components/index.html">Components</a></li> + <li><a href="/releases/index.html">Releases</a></li> + </ul> + </section> + + <section> + <h3>Resources</h3> + + <ul> + <li><a href="/discussion.html">Discussion</a></li> + <li><a href="/issues.html">Issues</a></li> + <li><a href="/source-code.html">Source code</a></li> + <li><a href="/resources.html">More resources</a></li> + </ul> + </section> + + <section> + <h3>More</h3> + + <ul> + <li><a href="/amqp.html">AMQP</a></li> + <li><a href="/developer.html">Developer central</a></li> + <li><a href="https://cwiki.apache.org/confluence/display/qpid/">Wiki</a></li> + </ul> + </section> + </div> + + <div id="-search" class="panel" style="display: none;"> + <form action="http://www.google.com/search" method="get"> + <input type="hidden" name="sitesearch" value="qpid.apache.org"/> + <input type="text" name="q" maxlength="255" autofocus="autofocus" tabindex="1"/> + <button type="submit">Search</button> + <p><a href="/search.html">More ways to search</a></p> + </form> + </div> + + <div id="-middle" class="panel"> + <ul id="-path-navigation"><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-trunk/index.html">Qpid Trunk</a></li><li><a href="/releases/qpid-trunk/java-broker/book/index.html">AMQP Messaging Broker (Java)</a></li><li>10.3. Creating a group</li></ul> + <div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">10.3. Creating a group</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-High-Availability-OverviewOfHA.html">Prev</a> </td><th align="center" width="60%">Chapter 10. High Availability</th><td align="right" width="20%"> <a accesskey="n" href="Java-Broker-High-Availability-Behaviour.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="Java-Broker-High-Availability-CreatingGroup"></a>10.3. Creating a group</h2></div></div></div><p>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.</p><p>A group is created through either <a class="link" href="Java-Broker-Management-Channel-Web-Console.html" title="6.2. Web Management Console">Web Management</a> or the <a class="link" href="Java-Broker-Management-Channel-REST-API.html" title="6.3. REST API">REST API</a>. These instructions + presume you are using Web Management. To illustrate the example it builds the group + illustrated in figure <a class="xref" href="Java-Broker-High-Availability-OverviewOfHA.html#Java-Broker-High-Availability-OverviewOfHA-Figure" title="Figure 10.1. 3-node group deployed across three Brokers.">Figure 10.1, “3-node group deployed across three Brokers.”</a></p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>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.</p></li><li class="listitem"><p>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.</p></li><li class="listitem"><p> + </p><p>Click the <code class="literal">Add</code> button on the Virtualhost Panel on the Broker + tab.</p><p> + </p><div class="orderedlist"><ol class="orderedlist" type="a"><li class="listitem"><p>Give the Virtualhost node a unique name e.g. <code class="literal">weather1</code>. 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.</p></li><li class="listitem"><p>Choose <code class="literal">BDB_HA</code> and select <code class="literal">New group</code> + </p></li><li class="listitem"><p>Give the group a name e.g. <code class="literal">weather</code>. 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.</p></li><li class="listitem"><p>Give the address of this node. This is an address on this node's host that + will be used for replication purposes. The hostname <span class="emphasis"><em>must</em></span> 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.</p></li><li class="listitem"><p>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 + <code class="literal">chaac:5000</code> and <code class="literal">indra:5000</code>.</p></li><li class="listitem"><p>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.</p></li></ol></div><p> + </p><p> + </p><div class="figure"><a id="idp1868816"></a><p class="title"><strong>Figure 10.2. Creating 1st node in a group</strong></p><div class="figure-contents"><div class="mediaobject"><img alt="Creating 1st node in a group" src="images/HA-Create-1.png" /></div></div></div><p><br class="figure-break" /> + </p><p> + </p></li><li class="listitem"><p> + </p><p>Now move to the second Broker to be the group. Click the <code class="literal">Add</code> + button on the Virtualhost Panel on the Broker tab of the second Broker.</p><p> + </p><div class="orderedlist"><ol class="orderedlist" type="a"><li class="listitem"><p>Give the Virtualhost node a unique name e.g. + <code class="literal">weather2</code>.</p></li><li class="listitem"><p>Choose <code class="literal">BDB_HA</code> and choose <code class="literal">Existing group</code> + </p></li><li class="listitem"><p>Give the details of the <span class="emphasis"><em>existing node</em></span>. Following our + example, specify <code class="literal">weather</code>, <code class="literal">weather1</code> and + <code class="literal">thor:5000</code></p></li><li class="listitem"><p>Give the address of this node.</p></li><li class="listitem"><p>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.</p></li><li class="listitem"><p>Repeat these steps until you have added all the nodes to the group.</p></li></ol></div><p> + </p><p> + </p><div class="figure"><a id="idp1884096"></a><p class="title"><strong>Figure 10.3. Adding subsequent nodes to the group</strong></p><div class="figure-contents"><div class="mediaobject"><img alt="Adding subsequent nodes to the group" src="images/HA-Create-2.png" /></div></div></div><p><br class="figure-break" /> + </p><p> + </p></li></ol></div><p>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. </p><div class="figure"><a id="idp1888976"></a><p class="title"><strong>Figure 10.4. View of group from one node</strong></p><div class="figure-contents"><div class="mediaobject"><img alt="View of group from one node" src="images/HA-Create-3.png" /></div></div></div><p><br class="figure-break" /></p></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="Java-Broker-High-Availability-OverviewOfHA.html">Prev</a> </td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-High-Availability.html">Up</a></td><td align="right" width="40%"> <a accesskey="n" href="Java-Broker-High-Availability-Behaviour.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">10.2. Overview of HA within the Java Broker </td><td align="center" width="20%"><a accesskey="h" href="index.html">Home</a></td><td align="right" valign="top" width="40%"> 10.4. Behaviour of the Group</td></tr></table></div></div> + + <hr/> + + <ul id="-apache-navigation"> + <li><a href="http://www.apache.org/">Apache</a></li> + <li><a href="http://www.apache.org/licenses/">License</a></li> + <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li> + <li><a href="http://www.apache.org/foundation/thanks.html">Thanks!</a></li> + <li><a href="http://www.apache.org/security/">Security</a></li> + <li><a href="http://www.apache.org/"><img id="-apache-feather" width="48" height="14" src="data:image/png;base64," alt="Apache"/></a></li> + </ul> + + <p id="-legal"> + Apache Qpid, Messaging built on AMQP; Copyright © 2013 + The Apache Software Foundation; Licensed under + the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache + License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton, + Proton, Apache, the Apache feather logo, and the Apache Qpid + project logo are trademarks of The Apache Software + Foundation; All other marks mentioned may be trademarks or + registered trademarks of their respective owners + </p> + </div> + </div> + </body> +</html> Modified: qpid/site/docs/releases/qpid-trunk/java-broker/book/Java-Broker-High-Availability-DiskSpace.html URL: http://svn.apache.org/viewvc/qpid/site/docs/releases/qpid-trunk/java-broker/book/Java-Broker-High-Availability-DiskSpace.html?rev=1632181&r1=1632180&r2=1632181&view=diff ============================================================================== --- qpid/site/docs/releases/qpid-trunk/java-broker/book/Java-Broker-High-Availability-DiskSpace.html (original) +++ qpid/site/docs/releases/qpid-trunk/java-broker/book/Java-Broker-High-Availability-DiskSpace.html Wed Oct 15 21:29:55 2014 @@ -21,7 +21,7 @@ --> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> - <title>13.10. Disk space requirements - Apache Qpid™</title> + <title>10.8. Disk space requirements - Apache Qpid™</title> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <link rel="stylesheet" href="/site.css" type="text/css" async="async"/> @@ -106,15 +106,11 @@ </div> <div id="-middle" class="panel"> - <ul id="-path-navigation"><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-trunk/index.html">Qpid Trunk</a></li><li><a href="/releases/qpid-trunk/java-broker/book/index.html">AMQP Messaging Broker (Java)</a></li><li>13.10. Disk space requirements</li></ul> - <div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">13.10. Disk space requirements</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-High-Availability-Monitoring-cluster.html">Prev</a> </td><th align="center" width="60%">Chapter 13. High Availability</th><td align="right" width="20%"> <a accesskey="n" href="Java-Broker-High-Availability-Network-Requirements.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="Java-Broker-High-Availability-DiskSpace"></a>13.10. Disk space requirements</h2></div></div></div><p>Disk space is a critical resource for the HA Qpid broker.</p><p>In case when a Replica goes down (or falls behind the Master in 2 node cluster where the Master is designated primary) - and the Master continues running, the non-replicated store files are kept on the Masters disk for the period of time - as specified in <span class="emphasis"><em>je.rep.repStreamTimeout</em></span> JE setting in order to replicate this data later - when the Replica is back. This setting is set to 1 hour by default by the broker. The setting can be overridden as described in - <a class="xref" href="Java-Broker-High-Availability-Configuration.html#Java-Broker-High-Availability-Configuration_BDBEnvVars" title="13.5.1. Passing BDB environment and replication configuration options">Section 13.5.1, “Passing BDB environment and replication configuration options”</a>.</p><p>Depending from the application publishing/consuming rates and message sizes, - the disk space might become overfull during this period of time due to preserved logs. - Please, make sure to allocate enough space on your disk to avoid this from happening. - </p></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="Java-Broker-High-Availability-Monitoring-cluster.html">Prev</a> </td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-High-Availability.html">Up</a></td><td align="right" width="40%"> <a accesskey="n" href="Java-Broker-High-Availability-Network-Requirements.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">13.9. Monitoring cluster </td><td align="center" width="20%"><a accesskey="h" href="index.html">Home</a></td><td align="right" valign="top" width="40%"> 13.11. Network Requirements</td></tr></table></div></div> + <ul id="-path-navigation"><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-trunk/index.html">Qpid Trunk</a></li><li><a href="/releases/qpid-trunk/java-broker/book/index.html">AMQP Messaging Broker (Java)</a></li><li>10.8. Disk space requirements</li></ul> + <div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">10.8. Disk space requirements</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-High-Availability-JMXAPI.html">Prev</a> </td><th align="center" width="60%">Chapter 10. High Availability</th><td align="right" width="20%"> <a accesskey="n" href="Java-Broker-High-Availability-Network-Requirements.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="Java-Broker-High-Availability-DiskSpace"></a>10.8. Disk space requirements</h2></div></div></div><p>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.</p><p>By default, the master will retain up to 1hour of missed transactions. In a busy + production system, the disk space occupied could be considerable.</p><p>This setting is controlled by virtualhost context variable + <code class="literal">je.rep.repStreamTimeout</code>.</p></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="Java-Broker-High-Availability-JMXAPI.html">Prev</a> </td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-High-Availability.html">Up</a></td><td align="right" width="40%"> <a accesskey="n" href="Java-Broker-High-Availability-Network-Requirements.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">10.7. Qpid JMX API for HA </td><td align="center" width="20%"><a accesskey="h" href="index.html">Home</a></td><td align="right" valign="top" width="40%"> 10.9. Network Requirements</td></tr></table></div></div> <hr/> Modified: qpid/site/docs/releases/qpid-trunk/java-broker/book/Java-Broker-High-Availability-JMXAPI.html URL: http://svn.apache.org/viewvc/qpid/site/docs/releases/qpid-trunk/java-broker/book/Java-Broker-High-Availability-JMXAPI.html?rev=1632181&r1=1632180&r2=1632181&view=diff ============================================================================== --- qpid/site/docs/releases/qpid-trunk/java-broker/book/Java-Broker-High-Availability-JMXAPI.html (original) +++ qpid/site/docs/releases/qpid-trunk/java-broker/book/Java-Broker-High-Availability-JMXAPI.html Wed Oct 15 21:29:55 2014 @@ -21,7 +21,7 @@ --> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> - <title>13.8. Qpid JMX API for HA - Apache Qpid™</title> + <title>10.7. Qpid JMX API for HA - Apache Qpid™</title> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <link rel="stylesheet" href="/site.css" type="text/css" async="async"/> @@ -106,92 +106,8 @@ </div> <div id="-middle" class="panel"> - <ul id="-path-navigation"><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-trunk/index.html">Qpid Trunk</a></li><li><a href="/releases/qpid-trunk/java-broker/book/index.html">AMQP Messaging Broker (Java)</a></li><li>13.8. Qpid JMX API for HA</li></ul> - <div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">13.8. Qpid JMX API for HA</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-High-Availability-ClientFailover.html">Prev</a> </td><th align="center" width="60%">Chapter 13. High Availability</th><td align="right" width="20%"> <a accesskey="n" href="Java-Broker-High-Availability-Monitoring-cluster.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="Java-Broker-High-Availability-JMXAPI"></a>13.8. Qpid JMX API for HA</h2></div></div></div><p>Qpid exposes the BDB HA store information via its JMX interface and provides APIs to remove a Node from - the group, update a Node IP address, and assign a Node as the designated primary.</p><p>An instance of the <code class="classname">BDBHAMessageStore</code> MBean is instantiated by the broker for the each virtualhost using the HA store.</p><p>The reference to this MBean can be obtained via JMX API using an ObjectName like <span class="emphasis"><em>org.apache.qpid:type=BDBHAMessageStore,name="<virtualhost name>"</em></span> - where <virtualhost name> is the name of a specific virtualhost on the broker.</p><div class="table"><table border="1">Mbean BDBHAMessageStore attributes<thead><tr> - <td>Name</td> - <td>Type</td> - <td>Accessibility</td> - <td>Description</td> - </tr></thead><tbody><tr> - <td>GroupName</td> - <td>String</td> - <td>Read only</td> - <td>Name identifying the group</td> - </tr><tr> - <td>NodeName</td> - <td>String</td> - <td>Read only</td> - <td>Unique name identifying the node within the group</td> - </tr><tr> - <td>NodeHostPort</td> - <td>String</td> - <td>Read only</td> - <td>Host/port used to replicate data between this node and others in the group</td> - </tr><tr> - <td>HelperHostPort</td> - <td>String</td> - <td>Read only</td> - <td>Host/port used to allow a new node to discover other group members</td> - </tr><tr> - <td>NodeState</td> - <td>String</td> - <td>Read only</td> - <td>Current state of the node</td> - </tr><tr> - <td>ReplicationPolicy</td> - <td>String</td> - <td>Read only</td> - <td>Node replication durability</td> - </tr><tr> - <td>DesignatedPrimary</td> - <td>boolean</td> - <td>Read/Write</td> - <td>Designated primary flag. Applicable to the two node case.</td> - </tr><tr> - <td>CoalescingSync</td> - <td>boolean</td> - <td>Read only</td> - <td>Coalescing sync flag. Applicable to the master sync policies NO_SYNC and WRITE_NO_SYNC only.</td> - </tr><tr> - <td>getAllNodesInGroup</td> - <td>TabularData</td> - <td>Read only</td> - <td>Get all nodes within the group, regardless of whether currently attached or not</td> - </tr></tbody></table></div><div class="table"><table border="1">Mbean BDBHAMessageStore operations<thead><tr> - <td>Operation</td> - <td>Parameters</td> - <td>Returns</td> - <td>Description</td> - </tr></thead><tbody><tr> - <td>removeNodeFromGroup</td> - <td> - <p><span class="emphasis"><em>nodeName</em></span>, name of node, string</p> - </td> - <td>void</td> - <td>Remove an existing node from the group</td> - </tr><tr> - <td>updateAddress</td> - <td> - <div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><span class="emphasis"><em>nodeName</em></span>, name of node, string</p></li><li class="listitem"><p><span class="emphasis"><em>newHostName</em></span>, new host name, string</p></li><li class="listitem"><p><span class="emphasis"><em>newPort</em></span>, new port number, int</p></li></ul></div> - </td> - <td>void</td> - <td>Update the address of another node. The node must be in a STOPPED state.</td> - </tr></tbody></table></div><div class="figure"><a id="idm233113794736"></a><p class="title"><strong>Figure 13.7. BDBHAMessageStore view from jconsole.</strong></p><div class="figure-contents"><div><img alt="BDBHAMessageStore view from jconsole." src="images/HA-BDBHAMessageStore-MBean-jconsole.png" /></div></div></div><br class="figure-break" /><div class="example"><a id="idm233113793232"></a><p class="title"><strong>Example 13.3. Example of java code to get the node state value</strong></p><div class="example-contents"><pre class="programlisting"> -Map<String, Object> environment = new HashMap<String, Object>(); - -// credentials: user name and password -environment.put(JMXConnector.CREDENTIALS, new String[] {"admin","admin"}); -JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:9001/jmxrmi"); -JMXConnector jmxConnector = JMXConnectorFactory.connect(url, environment); -MBeanServerConnection mbsc = jmxConnector.getMBeanServerConnection(); - -ObjectName queueObjectName = new ObjectName("org.apache.qpid:type=BDBHAMessageStore,name=\"test\""); -String state = (String)mbsc.getAttribute(queueObjectName, "NodeState"); - -System.out.println("Node state:" + state); - </pre><p>Example system output:</p><pre class="screen">Node state:MASTER</pre></div></div><br class="example-break" /></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="Java-Broker-High-Availability-ClientFailover.html">Prev</a> </td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-High-Availability.html">Up</a></td><td align="right" width="40%"> <a accesskey="n" href="Java-Broker-High-Availability-Monitoring-cluster.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">13.7. Client failover configuration </td><td align="center" width="20%"><a accesskey="h" href="index.html">Home</a></td><td align="right" valign="top" width="40%"> 13.9. Monitoring cluster</td></tr></table></div></div> + <ul id="-path-navigation"><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-trunk/index.html">Qpid Trunk</a></li><li><a href="/releases/qpid-trunk/java-broker/book/index.html">AMQP Messaging Broker (Java)</a></li><li>10.7. Qpid JMX API for HA</li></ul> + <div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">10.7. Qpid JMX API for HA</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-High-Availability-ClientFailover.html">Prev</a> </td><th align="center" width="60%">Chapter 10. High Availability</th><td align="right" width="20%"> <a accesskey="n" href="Java-Broker-High-Availability-DiskSpace.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="Java-Broker-High-Availability-JMXAPI"></a>10.7. Qpid JMX API for HA</h2></div></div></div><p>The Qpid JMX API for HA is now deprecated. New users are recommended to use the <a class="link" href="Java-Broker-Management-Channel-REST-API.html" title="6.3. REST API">REST API.</a></p></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width ="40%"><a accesskey="p" href="Java-Broker-High-Availability-ClientFailover.html">Prev</a> </td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-High-Availability.html">Up</a></td><td align="right" width="40%"> <a accesskey="n" href="Java-Broker-High-Availability-DiskSpace.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">10.6. Client failover </td><td align="center" width="20%"><a accesskey="h" href="index.html">Home</a></td><td align="right" valign="top" width="40%"> 10.8. Disk space requirements</td></tr></table></div></div> <hr/> Modified: qpid/site/docs/releases/qpid-trunk/java-broker/book/Java-Broker-High-Availability-Network-Requirements.html URL: http://svn.apache.org/viewvc/qpid/site/docs/releases/qpid-trunk/java-broker/book/Java-Broker-High-Availability-Network-Requirements.html?rev=1632181&r1=1632180&r2=1632181&view=diff ============================================================================== --- qpid/site/docs/releases/qpid-trunk/java-broker/book/Java-Broker-High-Availability-Network-Requirements.html (original) +++ qpid/site/docs/releases/qpid-trunk/java-broker/book/Java-Broker-High-Availability-Network-Requirements.html Wed Oct 15 21:29:55 2014 @@ -21,7 +21,7 @@ --> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> - <title>13.11. Network Requirements - Apache Qpid™</title> + <title>10.9. Network Requirements - Apache Qpid™</title> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <link rel="stylesheet" href="/site.css" type="text/css" async="async"/> @@ -106,10 +106,12 @@ </div> <div id="-middle" class="panel"> - <ul id="-path-navigation"><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-trunk/index.html">Qpid Trunk</a></li><li><a href="/releases/qpid-trunk/java-broker/book/index.html">AMQP Messaging Broker (Java)</a></li><li>13.11. Network Requirements</li></ul> - <div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">13.11. Network Requirements</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-High-Availability-DiskSpace.html">Prev</a> </td><th align="center" width="60%">Chapter 13. High Availability</th><td align="right" width="20%"> <a accesskey="n" href="Java-Broker-High-Availability-Security.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="Java-Broker-High-Availability-Network-Requirements"></a>13.11. Network Requirements</h2></div></div></div><p>The HA Cluster performance depends on the network bandwidth, its use by existing traffic, and quality of service.</p><p>In order to achieve the best performance it is recommended to use a separate network infrastructure for the Qpid HA Nodes - which might include installation of dedicated network hardware on Broker hosts, assigning a higher priority to replication ports, - installing a cluster in a separate network not impacted by any other traffic.</p></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="Java-Broker-High-Availability-DiskSpace.html">Prev</a> </td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-High-Availability.html">Up</a></td><td align="right" width="40%"> <a accesskey="n" href="Java-Broker-High-Availability-Security.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">13.10. Disk space requirements </td><td align="center" width="20%"><a accesskey="h" href="index.html">Home</a></td><td align="right" valign="top" width="40%"> 13.12. Security</td></tr></table></div></div> + <ul id="-path-navigation"><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-trunk/index.html">Qpid Trunk</a></li><li><a href="/releases/qpid-trunk/java-broker/book/index.html">AMQP Messaging Broker (Java)</a></li><li>10.9. Network Requirements</li></ul> + <div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">10.9. Network Requirements</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-High-Availability-DiskSpace.html">Prev</a> </td><th align="center" width="60%">Chapter 10. High Availability</th><td align="right" width="20%"> <a accesskey="n" href="Java-Broker-High-Availability-Security.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="Java-Broker-High-Availability-Network-Requirements"></a>10.9. Network Requirements</h2></div></div></div><p>The HA Cluster performance depends on the network bandwidth, its use by existing traffic, + and quality of service.</p><p>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.</p></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="Java-Broker-High-Availability-DiskSpace.html">Prev</a> </td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-High-Availability.html">Up</a></td><td align="right" width="40%"> <a accesskey="n" href="Java-Broker-High-Availability-Security.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">10.8. Disk space requirements </td><td align="center" width="20%"><a accesskey="h" href="index.html">Home</a></td><td align="right" valign="top" width="40%"> 10.10. Security</td></tr></table></div></div> <hr/> Added: qpid/site/docs/releases/qpid-trunk/java-broker/book/Java-Broker-High-Availability-NodeOperations.html URL: http://svn.apache.org/viewvc/qpid/site/docs/releases/qpid-trunk/java-broker/book/Java-Broker-High-Availability-NodeOperations.html?rev=1632181&view=auto ============================================================================== --- qpid/site/docs/releases/qpid-trunk/java-broker/book/Java-Broker-High-Availability-NodeOperations.html (added) +++ qpid/site/docs/releases/qpid-trunk/java-broker/book/Java-Broker-High-Availability-NodeOperations.html Wed Oct 15 21:29:55 2014 @@ -0,0 +1,156 @@ +<!DOCTYPE html> +<!-- + - + - 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. + - +--> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> + <head> + <title>10.5. Node Operations - Apache Qpid™</title> + <meta http-equiv="X-UA-Compatible" content="IE=edge"/> + <meta name="viewport" content="width=device-width, initial-scale=1.0"/> + <link rel="stylesheet" href="/site.css" type="text/css" async="async"/> + <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/> + <script type="text/javascript">var _deferredFunctions = [];</script> + <script type="text/javascript" src="/deferred.js" defer="defer"></script> + <!--[if lte IE 8]> + <link rel="stylesheet" href="/ie.css" type="text/css"/> + <script type="text/javascript" src="/html5shiv.js"></script> + <![endif]--> + </head> + <body> + <div id="-content"> + <div id="-top" class="panel"> + <a id="-menu-link"><img width="16" height="16" src="data:image/png;base64," alt="Menu"/></a> + + <a id="-search-link"><img width="22" height="16" src="data:image/png;base64," alt="Search"/></a> + + <ul id="-global-navigation"> + <li><a id="-logotype" href="/index.html">Apache Qpid<sup>™</sup></a></li> + <li><a href="/download.html">Download</a></li> + <li><a href="/documentation.html">Documentation</a></li> + <li><a href="/discussion.html">Discussion</a></li> + <li><a href="/issues.html">Issues</a></li> + <li><a href="/source-code.html">Source Code</a></li> + <li><a href="/resources.html">More Resources</a></li> + </ul> + </div> + + <div id="-menu" class="panel" style="display: none;"> + <section> + <h3>Project</h3> + + <ul> + <li><a href="/overview.html">Overview</a></li> + <li><a href="/proton/index.html">Qpid Proton</a></li> + <li><a href="/contributors.html">Contributors</a></li> + <li><a href="/get-involved.html">Get involved</a></li> + </ul> + </section> + + <section> + <h3>Software</h3> + + <ul> + <li><a href="/download.html">Download</a></li> + <li><a href="/documentation.html">Documentation</a></li> + <li><a href="/components/index.html">Components</a></li> + <li><a href="/releases/index.html">Releases</a></li> + </ul> + </section> + + <section> + <h3>Resources</h3> + + <ul> + <li><a href="/discussion.html">Discussion</a></li> + <li><a href="/issues.html">Issues</a></li> + <li><a href="/source-code.html">Source code</a></li> + <li><a href="/resources.html">More resources</a></li> + </ul> + </section> + + <section> + <h3>More</h3> + + <ul> + <li><a href="/amqp.html">AMQP</a></li> + <li><a href="/developer.html">Developer central</a></li> + <li><a href="https://cwiki.apache.org/confluence/display/qpid/">Wiki</a></li> + </ul> + </section> + </div> + + <div id="-search" class="panel" style="display: none;"> + <form action="http://www.google.com/search" method="get"> + <input type="hidden" name="sitesearch" value="qpid.apache.org"/> + <input type="text" name="q" maxlength="255" autofocus="autofocus" tabindex="1"/> + <button type="submit">Search</button> + <p><a href="/search.html">More ways to search</a></p> + </form> + </div> + + <div id="-middle" class="panel"> + <ul id="-path-navigation"><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-trunk/index.html">Qpid Trunk</a></li><li><a href="/releases/qpid-trunk/java-broker/book/index.html">AMQP Messaging Broker (Java)</a></li><li>10.5. Node Operations</li></ul> + <div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">10.5. Node Operations</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-High-Availability-Behaviour.html">Prev</a> </td><th align="center" width="60%">Chapter 10. High Availability</th><td align="right" width="20%"> <a accesskey="n" href="Java-Broker-High-Availability-ClientFailover.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title"><a id="Java-Broker-High-Availability-NodeOperations"></a>10.5. Node Operations</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-High-Availability-NodeOperations-Lifecycle"></a>10.5.1. Lifecycle</h3></div></div></div><p>Virtualhost nodes can be stopped, started and deleted.</p><div class="itemizedlist"><ul class="itemizedlist" type="di sc"><li class="listitem"><p><span class="emphasis"><em>Stop</em></span></p><p>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.</p><p>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.</p><p>A stopped virtualhost node is still considered to be a member of the group.</p></li><li class="listitem"><p><span class="emphasis"><em>Start</em></span></p><p>Starting a virtualhost node allows it to rejoin the group.</p><p>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.</p><p>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.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>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 <code class="literal">network restore</code>. + This involves streaming all the data held by the master over to the replica. This + could take considerable time.</p></div></li><li class="listitem"><p><span class="emphasis"><em>Delete</em></span></p><p>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.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>The names of deleted virtualhost node cannot be reused within a group.</p></div></li></ul></div><p>It is also possible to add nodes to an existing group using the procedure described + above.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-High-Availability-NodeOperations-TransferMaster"></a>10.5.2. Transfer Master</h3></div></div></div><p>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.</p><p>When using this function, the following occurs. </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>The system first gives time for the chosen new master to become reasonable up to + date. </p></li><li class="listitem"><p>It then suspends transactions on the old master and allows the chosen node to + become up to date.</p></li><li class="listitem"><p>The suspended transactions are aborted and any messaging clients connected to the + old master are disconnected.</p></li><li class="listitem"><p>The chosen master becomes the new master. The old master becomes a replica.</p></li><li class="listitem"><p>Messaging clients reconnect the new master.</p></li></ol></div></div></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="Java-Broker-High-Availability-Behaviour.html">Prev</a> </td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-High-Availability.html">Up</a></td><td align="right" width="40%"> <a accesskey="n" href="Java-Broker-High-Availability-ClientFailover.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">10.4. Behaviour of the Group </td><td align="center" width="20%"><a accesskey="h" href="index.html">Home</a></td><td align="right" valign="top" width="40%"> 10.6. Client failover</td></tr></table></div></div> + + <hr/> + + <ul id="-apache-navigation"> + <li><a href="http://www.apache.org/">Apache</a></li> + <li><a href="http://www.apache.org/licenses/">License</a></li> + <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li> + <li><a href="http://www.apache.org/foundation/thanks.html">Thanks!</a></li> + <li><a href="http://www.apache.org/security/">Security</a></li> + <li><a href="http://www.apache.org/"><img id="-apache-feather" width="48" height="14" src="data:image/png;base64," alt="Apache"/></a></li> + </ul> + + <p id="-legal"> + Apache Qpid, Messaging built on AMQP; Copyright © 2013 + The Apache Software Foundation; Licensed under + the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache + License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton, + Proton, Apache, the Apache feather logo, and the Apache Qpid + project logo are trademarks of The Apache Software + Foundation; All other marks mentioned may be trademarks or + registered trademarks of their respective owners + </p> + </div> + </div> + </body> +</html> --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org