diff options
| author | Alan Conway <aconway@apache.org> | 2008-09-10 18:15:25 +0000 |
|---|---|---|
| committer | Alan Conway <aconway@apache.org> | 2008-09-10 18:15:25 +0000 |
| commit | ed35819acfafa18730802532ca581c51d1be3854 (patch) | |
| tree | 47e22004858bc19eaade16d585f1e054f76ac8a7 /qpid/cpp/xml | |
| parent | 26acdc039853786717e5392f567fc84dcf9db82c (diff) | |
| download | qpid-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')
| -rw-r--r-- | qpid/cpp/xml/cluster.xml | 50 |
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> |
