summaryrefslogtreecommitdiff
path: root/qpid/cpp/xml/cluster.xml
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2008-09-10 18:15:25 +0000
committerAlan Conway <aconway@apache.org>2008-09-10 18:15:25 +0000
commited35819acfafa18730802532ca581c51d1be3854 (patch)
tree47e22004858bc19eaade16d585f1e054f76ac8a7 /qpid/cpp/xml/cluster.xml
parent26acdc039853786717e5392f567fc84dcf9db82c (diff)
downloadqpid-python-ed35819acfafa18730802532ca581c51d1be3854.tar.gz
Cluster support for copying shared broker state to new members.
cluster/DumpClient: Copies broker shared state to a new broker via AMQP. broker/*Registry, Queue, QueueBindings: Added iteration functions for DumpClient broker/SemanticState.cpp: Allow DumpClient to sidestep setting of delivery-properties.exchange. client/Connection.h: Added Connection::open(Url) overload. client/SessionImpl: Added send(AMQBody, FrameSet) overload for forwarding broker messages. tests/cluster_test.cpp: Added test for DumpClient copying shared state between brokers. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@693918 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/xml/cluster.xml')
-rw-r--r--qpid/cpp/xml/cluster.xml50
1 files changed, 48 insertions, 2 deletions
diff --git a/qpid/cpp/xml/cluster.xml b/qpid/cpp/xml/cluster.xml
index a5f9d51a13..d239bb11f3 100644
--- a/qpid/cpp/xml/cluster.xml
+++ b/qpid/cpp/xml/cluster.xml
@@ -22,20 +22,66 @@ o<?xml version="1.0"?>
<amqp major="0" minor="10" port="5672">
+ <!-- Controls sent between cluster nodes. -->
+
<class name = "cluster" code = "0x80" label="Qpid clustering extensions.">
<doc>Qpid extension class to allow clustered brokers to communicate.</doc>
- <control name = "url-notice" code="0x1">
- <field name="url-notice" type="str16" />
+ <!-- Cluster membership -->
+
+ <control name = "joining" code="0x1">
+ <field name="joining" type="str16" label="URL of new member joining cluster."/>
+ </control>
+
+
+ <control name="ready" code="0x2" label="New member is ready."/>
+
+ <control name="members" code="0x3" label="Cluster map sent to new members.">
+ <field name="members" type="map"/> <!-- member-id -> URL -->
+ <field name="donors" type="map"/> <!-- member-id -> uint32 (donor-count) -->
+ <field name="newbies" type="map"/> <!-- member-id -> URL -->
</control>
+
+ <!-- Transferring broker state -->
+
</class>
+ <!-- TODO aconway 2008-09-10: support for un-attached connections. -->
+
+ <!-- Controls associated with a specific connection. -->
+
<class name="cluster-connection" code="0x81" label="Qpid clustering extensions.">
+
<control name="deliver-close" code="0x2">
</control>
<control name="deliver-do-output" code="0x3">
<field name="bytes" type="uint32"/>
</control>
+
+ <!-- Brain-dump controls. Sent to a new broker in joining mode.
+ A connection is dumped as followed:
+ - open as a normal connection.
+ - attach sessions, create consumers, set flow with normal AMQP cokmmands.
+ - reset session state by sending session-state for each session.
+ - frames following session-state are replay frames.
+ - send shadow-ready to mark end of dump.
+ -->
+ <control name="session-state" code="0x4" label="Set session state during a brain dump.">
+ <!-- Target session deduced from channel number. -->
+ <field name="replay-id" type="sequence-no"/>
+ <field name="send-id" type="sequence-no"/>
+ <field name="sent-incomplete" type="sequence-set"/>
+
+ <field name="expected-id" type="sequence-no"/>
+ <field name="received-id" type="sequence-no"/>
+ <field name="unknown-completed" type="sequence-set"/>
+ <field name="received-incomplete" type="sequence-set"/>
+ </control>
+
+ <control name="shadow-ready" code="0x5" label="End of shadow connection dump.">
+ <field name="cluster-id" type="uint64"/>
+ <field name="user-id" type="vbin16"/>
+ </control>
</class>
</amqp>