summaryrefslogtreecommitdiff
path: root/cpp/xml
diff options
context:
space:
mode:
authorRafael H. Schloming <rhs@apache.org>2009-12-26 12:42:57 +0000
committerRafael H. Schloming <rhs@apache.org>2009-12-26 12:42:57 +0000
commit248f1fe188fe2307b9dcf2c87a83b653eaa1920c (patch)
treed5d0959a70218946ff72e107a6c106e32479a398 /cpp/xml
parent3c83a0e3ec7cf4dc23e83a340b25f5fc1676f937 (diff)
downloadqpid-python-248f1fe188fe2307b9dcf2c87a83b653eaa1920c.tar.gz
synchronized with trunk except for ruby dir
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/qpid.rnr@893970 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/xml')
-rw-r--r--cpp/xml/cluster.xml199
1 files changed, 195 insertions, 4 deletions
diff --git a/cpp/xml/cluster.xml b/cpp/xml/cluster.xml
index 6dfb4d14c3..e2c69d33fd 100644
--- a/cpp/xml/cluster.xml
+++ b/cpp/xml/cluster.xml
@@ -20,18 +20,209 @@
-
-->
+<!--
+- NOTE: if you make changes to this XML you must update CLUSTER_VERSION
+- in src/qpid/cluster/Cluster.cpp
+-->
+
<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 = "notify" code="0x1">
- <field name="url" type="str16" />
+ <!-- New joiner requests an update to url. -->
+ <control name="update-request" code="0x1">
+ <field name="url" type="str16"/>
+ </control>
+
+ <!-- Sender offers an update to a new joiner. -->
+ <control name = "update-offer" code="0x2">
+ <field name="updatee" type="uint64"/>
+ </control>
+
+ <!-- Sender retracts an offer to a new joiner. -->
+ <control name = "retract-offer" code="0x3">
+ <field name="updatee" type="uint64"/>
+ </control>
+
+ <!-- Possible states for persistent store -->
+ <domain name="store-state" type="uint8">
+ <enum>
+ <choice name="no-store" value="0"/>
+ <choice name="empty-store" value="1"/>
+ <choice name="clean-store" value="2"/>
+ <choice name="dirty-store" value="3"/>
+ </enum>
+ </domain>
+
+ <!-- Status exchanged when new members join the cluster. -->
+ <control name="initial-status" code="0x5">
+ <field name="version" type="uint32"/>
+ <field name="active" type="bit"/>
+ <field name="cluster-id" type="uuid"/>>
+ <field name="store-state" type="store-state"/>
+ <field name="shutdown-id" type="uuid"/>
+ </control>
+
+ <!-- New member or updater is ready as an active member. -->
+ <control name="ready" code="0x10">
+ <field name="url" type="str16"/>
+ </control>
+
+ <control name="config-change" code="0x11" label="Raw cluster membership.">
+ <field name="current" type="vbin16"/> <!-- packed member-id array -->
+ </control>
+
+ <control name="message-expired" code="0x12">
+ <field name="id" type="uint64"/>
+ </control>
+
+ <domain name="error-type" type="uint8" label="Types of error">
+ <enum>
+ <choice name="none" value="0"/>
+ <choice name="session" value="1"/>
+ <choice name="connection" value="2"/>
+ </enum>
+ </domain>
+
+ <!-- Check for error consistency across the cluster -->
+ <control name="error-check" code="0x14">
+ <field name="type" type="error-type"/>
+ <field name="frame-seq" type="sequence-no"/>
+ </control>
+
+ <!-- Shut down the entire cluster -->
+ <control name="shutdown" code="0x20">
+ <field name="shutdown-id" type="uuid"/>
+ </control>
+
+ </class>
+
+ <!-- Controls associated with a specific connection. -->
+
+ <class name="cluster-connection" code="0x81" label="Qpid clustering extensions.">
+
+ <!-- Announce a new connection -->
+ <control name="announce" code="0x1">
+ <!-- Security Strength Factor (ssf): if the transport provides
+ encryption (e.g. ssl), ssf is the bit length of the key. Zero if no
+ encryption provided. -->
+ <field name="ssf" type="uint32"/>
+ </control>
+
+ <!-- Marks the cluster-wide point when a connection is considered closed. -->
+ <control name="deliver-close" code="0x2"/>
+
+ <!-- Permission to generate output up to the limit. -->
+ <control name="deliver-do-output" code="0x3">
+ <field name="limit" type="uint32"/>
</control>
- <control name="connection-close" code="0x2"/>
+ <!-- Abort a connection that is sending invalid data. -->
+ <control name="abort" code="0x4"/>
+
+ <!-- Update controls. Sent to a new broker in joining mode.
+ A connection is updateed as followed:
+ - open as a normal connection.
+ - 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 membership when entire update is complete.
+ -->
+
+ <!-- Consumer state that cannot be set by standard AMQP controls. -->
+ <control name="consumer-state" code="0x10">
+ <field name="name" type="str8"/>
+ <field name="blocked" type="bit"/>
+ <field name="notifyEnabled" type="bit"/>
+ <field name="position" type="sequence-no"/>
+ </control>
+
+ <!-- Delivery-record for outgoing messages sent but not yet accepted. -->
+ <control name="delivery-record" code ="0x11">
+ <field name="queue" type="str8"/>
+ <field name="position" type="sequence-no"/>
+ <field name="tag" type="str8"/>
+ <field name="id" type="sequence-no"/>
+ <field name="acquired" type="bit"/> <!--If not set, message follows. -->
+ <field name="accepted" type="bit"/>
+ <field name="cancelled" type="bit"/>
+ <field name="completed" type="bit"/>
+ <field name="ended" type="bit"/>
+ <field name="windowing" type="bit"/>
+ <field name="enqueued" type="bit"/>
+ <field name="credit" type="uint32"/>
+ </control>
+
+ <!-- Tx transaction state. -->
+ <control name="tx-start" code="0x12"/>
+ <control name="tx-accept" code="0x13"> <field name="commands" type="sequence-set"/> </control>
+ <control name="tx-dequeue" code="0x14"> <field name="queue" type="str8"/> </control>
+ <control name="tx-enqueue" code="0x15"> <field name="queue" type="str8"/> </control>
+ <control name="tx-publish" code="0x16">
+ <field name="queues" type="array"/> <!--Array of str8 -->
+ <field name="delivered" type="bit"/>
+ </control>
+ <control name="tx-end" code="0x17"/>
+ <control name="accumulated-ack" code="0x18"> <field name="commands" type="sequence-set"/> </control>
+
+ <!-- Consumers in the connection's output task -->
+ <control name="output-task" code="0x19">
+ <field name="channel" type="uint16"/>
+ <field name="name" type="str8"/>
+ </control>
- <control name="connection-do-output" code="0x3"/>
+ <!-- Complete a session state update. -->
+ <control name="session-state" code="0x1F">
+ <!-- Target session deduced from channel number. -->
+ <field name="replay-start" type="sequence-no"/> <!-- Replay frames will start from this point.-->
+ <field name="command-point" type="sequence-no"/> <!-- Id of next command sent -->
+ <field name="sent-incomplete" type="sequence-set"/> <!-- Commands sent and incomplete. -->
+ <field name="expected" type="sequence-no"/> <!-- Next command expected. -->
+ <field name="received" type="sequence-no"/> <!-- Received up to here (>= expected) -->
+ <field name="unknown-completed" type="sequence-set"/> <!-- Completed but not known to peer. -->
+ <field name="received-incomplete" type="sequence-set"/> <!-- Received and incomplete -->
+ </control>
+
+ <!-- Complete a shadow connection update. -->
+ <control name="shadow-ready" code="0x20" label="End of shadow connection update.">
+ <field name="member-id" type="uint64"/>
+ <field name="connection-id" type="uint64"/>
+ <field name="user-name" type="str8"/>
+ <field name="fragment" type="str32"/>
+ <field name="send-max" type="uint32"/>
+ </control>
+
+ <!-- Complete a cluster state update. -->
+ <control name="membership" code="0x21" label="Cluster membership details.">
+ <field name="joiners" type="map"/> <!-- member-id -> URL -->
+ <field name="members" type="map"/> <!-- member-id -> state -->
+ <field name="frame-seq" type="sequence-no"/> <!-- 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"/>
+ <field name="position" type="sequence-no"/>
+ </control>
+
+ <!-- Replicate encoded exchanges/queues. -->
+ <control name="exchange" code="0x31"><field name="encoded" type="str32"/></control>
+ <control name="queue" code="0x32"><field name="encoded" type="str32"/></control>
+
+ <!-- Set expiry-id for subsequent messages. -->
+ <control name="expiry-id" code="0x33"><field name="expiry-id" type="uint64"/></control>
+
+ <!-- Add a listener to a queue -->
+ <control name="add-queue-listener" code="0x34">
+ <field name="queue" type="str8"/>
+ <field name="consumer" type="uint32"/>
+ </control>
</class>
</amqp>