I know you are actually using the C++ broker, but I dont imagine the answers to these questions are any different than for the Java broker broker so...
On 11 February 2012 09:41, Fraser Adams <[email protected]> wrote: > > This might be a slightly weird question, but what does making an exchange > persistent actually do? > For the Java broker at least this would make the exchange configuration (name, type, arguments) get persisted in the config store, and would also mean that bindings for any durable queues bound to the exchange would then also get persisted. > What I mean is that one of the behaviours that I'd really like with Qpid is > to be able to have *configuration* persisted. > > > With queues if I make the queue durable then I end up with queue config that > survives broker restarts, but unfortunately (for my scenario) I also end up > with a queue that persists messages and gives me a performance hit etc. > which I don't want. > As William mentioned, this is because the messages themselves are marked as persistent (I dont know about the other language clients, but the Java client defaults to this as required by JMS). If the queue isnt durable then the messages will be lost on restart regardless, but if the queue is durable and the message requests it then it will get persisted. We have toyed in the past with adding the kind of queue config option you suggest below to the Java broker to allow queues to be durable in the sense they are always present, but not actually cause the messages to be retained on restart. You can actually sort of do this already at the moment with the configuration files by specifying non-durable queues, but I imagine some upcoming config work will allow specifying such queues in new ways. > > So what about exchanges? If I create an exchange marked as durable does this > simply persist the exchange configuration and allow it to be recreated > automatically on broker restart or does it also mess with messages (in other > words does a durable exchange do anything specific on the message flow > performance critical path that might affect message flow performance?) > Exchange persistence can affect queue binding persistence, but it should have no performance bearing on message flow. > Does anyone have any thoughts on how easy it might be to add a switch like > "durable-config" (as opposed to "durable") to queue creation. I've got a > nasty feeling that it might be harder than it sounds as I think that queues > can be created via QMF and also by underlying queueDeclare methods (I > *think* qpid-config and Address parsing use the latter) so I guess that one > would have to be careful to avoid breaking anything that relies on the > current method signature. > > MTIA > Frase > > --------------------------------------------------------------------- > Apache Qpid - AMQP Messaging Implementation > Project: http://qpid.apache.org > Use/Interact: mailto:[email protected] > --------------------------------------------------------------------- Apache Qpid - AMQP Messaging Implementation Project: http://qpid.apache.org Use/Interact: mailto:[email protected]
