Hi, I am having some issues with bindings persisting on federated brokers.
My main aim is to have a number of brokers (3 in this example) federated, using dynamic routes, so as a binding that is made/destroyed with a single broker is replicated across all the federated brokers. I want the federated brokers to be logically a single broker, therefore a message sent to any one of the brokers can be received by an consumer. Further I want to use headers exchange so the consumers only receive messages that they are interested in based on fields in the headers. To do this I have 3 qpid brokers running (qpidd (qpid-cpp) version 0.24), they are all running on the same host on different ports. I add a headers exchange to each broker: ./qpid-config -a localhost:10003 add exchange headers test_header_ex ./qpid-config -a localhost:10004 add exchange headers test_header_ex ./qpid-config -a localhost:10005 add exchange headers test_header_ex I federate the exchanges between the brokers ./qpid-route dynamic add localhost:10003 localhost:10004 test_header_ex ./qpid-route dynamic add localhost:10004 localhost:10003 test_header_ex ./qpid-route dynamic add localhost:10004 localhost:10005 test_header_ex ./qpid-route dynamic add localhost:10005 localhost:10004 test_header_ex a route map shows the federation has worked with broker running on 10004 being a common node between 10003 and 10005 ./qpid-route route map localhost:10004 Finding Linked Brokers: localhost:10004... Ok localhost:10003... Ok localhost:10005... Ok Dynamic Routes: Exchange test_header_ex: localhost:10004 <=> localhost:10003 localhost:10005 <=> localhost:10004 Static Routes: none found now I run drain with options added to the address string to bind to the exchange based on a specific header field --this is a consumer registering interest in a message with header value m-id = 123 ./drain -f -b localhost:10003 "test_header_ex;{node:{x- declare:{auto-delete:true}},link:{x-declare:{arguments:{ no-local:true}},x-bindings:[{auto-delete:true,exchange:' test_header_ex',key:'key1',arguments:{x-match:'all',m-id:'123'}}]}}" use qpid-stat to look at the bindings created on each broker - a binding has been made to each [image: Inline image 1] kill drain and look at the bindings again using qpid-stat - there is a binding still on the 10005 broker [image: Inline image 2] This was not how I understood dymanic routes to operate: 1.4.1.3. Dynamic Exchange Routes Dynamic exchange routes allow a client to create bindings to an exchange on one broker, and receive messages that satisfy the conditions of these bindings not only from the exchange to which the client created the binding, but also from other exchanges that are connected to it using dynamic exchange routes. If the client modifies the bindings for a given exchange, they are also modified for dynamic exchange routes associated with that exchange. Any suggestions of how to remedy this gratefully received! Thanks, dd