summaryrefslogtreecommitdiff
path: root/cpp/xml
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2009-07-01 13:47:04 +0000
committerAlan Conway <aconway@apache.org>2009-07-01 13:47:04 +0000
commit6f734e4aa938dccdc1c79e782908a0d1164ee526 (patch)
tree3177af16cacd4ea4d265f7c0c48c181c85512608 /cpp/xml
parentcc0cb6411e14e23d45304c3ae84069d59b29465a (diff)
downloadqpid-python-6f734e4aa938dccdc1c79e782908a0d1164ee526.tar.gz
Fix members joining cluster while cluster is handling client errors.
Previously cluster members could abort if a new member joins while existing members are handling a client error. Now if an update offer arrives while an error is in progress, the offering broker retracts the offer and the newcomer must try again. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@790163 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/xml')
-rw-r--r--cpp/xml/cluster.xml19
1 files changed, 15 insertions, 4 deletions
diff --git a/cpp/xml/cluster.xml b/cpp/xml/cluster.xml
index d9ab6e97cb..474c191b0b 100644
--- a/cpp/xml/cluster.xml
+++ b/cpp/xml/cluster.xml
@@ -27,16 +27,24 @@
<class name = "cluster" code = "0x80" label="Qpid clustering extensions.">
<doc>Qpid extension class to allow clustered brokers to communicate.</doc>
- <control name="update-request" code="0x1" label="URL for a member.">
+ <!-- New joiner requests an update to url. -->
+ <control name="update-request" code="0x1">
<field name="url" type="str16"/>
</control>
- <control name = "update-offer" code="0x2" label="Member offering to be updater for updatee.">
+ <!-- Sender offers an update to a new joiner. -->
+ <control name = "update-offer" code="0x2">
<field name="updatee" type="uint64"/>
<field name="cluster-id" type="uuid"/>
</control>
- <control name="ready" code="0x10" label="New member is ready.">
+ <!-- Sender retracts an offer to a new joiner. -->
+ <control name = "retract-offer" code="0x3">
+ <field name="updatee" type="uint64"/>
+ </control>
+
+ <!-- New member or updater is ready as an active member. -->
+ <control name="ready" code="0x10">
<field name="url" type="str16"/>
</control>
@@ -91,7 +99,7 @@
- attach sessions, create consumers, set flow with normal AMQP cokmmands.
- send /reset additional session state with controls below.
- send shadow-ready to mark end of shadow update.
- - send update-complete when entire update is complete.
+ - send membership when entire update is complete.
-->
<!-- Consumer state that cannot be set by standard AMQP controls. -->
@@ -166,6 +174,9 @@
<field name="frame-seq" type="uint64"/> <!-- frame sequence number -->
</control>
+ <!-- Updater cannot fulfill an update offer. -->
+ <control name = "retract-offer" code="0x22"/>
+
<!-- Set the position of a replicated queue. -->
<control name="queue-position" code="0x30">
<field name="queue" type="str8"/>