On 03/08/12 14:38, Gordon Sim wrote:
On 08/03/2012 01:35 PM, Fraser Adams wrote:
So if the "unreliable message" behaviour isn't behaving as expected in
earlier brokers (say 0.8) and we have a slow consumer hanging off the
other side of a federated link, then are you suggesting that this just
might be the cause of our woes?

I'm not exactly sure where the problem is. Is it the 'upstream' broker that is growing? i.e. the one the publisher is connected to? Or is it the broker 'downstream' of the federation link (the one the consumer is connected to)?

It's the broker that the publisher is connected to that is growing. As I mentioned previously the really weird thing is that it only seems to happen when that broker is co-located with the publisher. What's especially weird is that things are mostly OK. most of our topology still has the producer and first broker co-located, but we had a particularly high rate (and quite bursty) producer that was giving us problems and the work around was to point it to a remote broker. I suspect that we're seeing it again because many of our other producers are starting to increase their rate now.

Our theory has been that perhaps the network was doing just enough to flatten out the burstiness. The test clients are set up to deliver bursts then sleep as this is quite close to what our real producers do.


At this stage having a
good analysis and understanding is probably most important - so if you
can help me enable flow control (and suggest how I'd try unreliable
messaging using qpid::client too if possible) in the client-consumer I
posted that would be really helpful.

subscription = subscriptions.subscribe(*this, queue,
  SubscriptionSettings(FlowControl::messageWindow(100),
  ACCEPT_MODE_NONE));

Would give a flow controlled, unreliable subscription. However simply setting the ACCEPT_MODE_NONE with FlowControl::unlimited() in the qpid::client API should prevent build up of messages through delivery records at all.
Thanks, I'll try that out.


If I can get evidence to suggest that the federation "unreliable links"
behaviour isn't as effective at mitigating this in 0.8 as it is in later
brokers that would be useful, as I say I keep arguing that we should be
upgrading to something newer.

I've had a scan through the svn logs and I don't see anything obviously broken in 0.8; the lines that allow the message to be released are in there. However a lot has changed since and many other things could interact.
It's a pity that there's nothing obvious. I'll try your suggestion for unreliable messaging then I might set my box back to 0.8 to see if it behaves any differently than 0.12.

BTW do you know of a good way to allow multiple broker versions to co-exist on the same box (short of virtualisation). I always seem to need to completely uninstall one version before I can install another due to library dependencies. I guess that I could set up a chroot jail, but I was wondering if there's a simpler approach?


Frase.







---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to