diff options
| author | Alan Conway <aconway@apache.org> | 2009-07-01 13:47:04 +0000 |
|---|---|---|
| committer | Alan Conway <aconway@apache.org> | 2009-07-01 13:47:04 +0000 |
| commit | 6f734e4aa938dccdc1c79e782908a0d1164ee526 (patch) | |
| tree | 3177af16cacd4ea4d265f7c0c48c181c85512608 /cpp/xml | |
| parent | cc0cb6411e14e23d45304c3ae84069d59b29465a (diff) | |
| download | qpid-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.xml | 19 |
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"/> |
