summaryrefslogtreecommitdiff
path: root/qpid/cpp/xml/cluster.xml
blob: d239bb11f3728d3cec29eae5cd830d2cf5452c3d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
o<?xml version="1.0"?>
<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
- 
-   http://www.apache.org/licenses/LICENSE-2.0
- 
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
-
-->

<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>

    <!-- 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>