On Fri, 2012-02-10 at 08:37 +0000, Fraser Adams wrote: > Hi Pavel, > Sorry I can't be any more help. Given what I said previously based on my > casual rummage through the source code my bet is that configuring the > producer capacity simply isn't supported on the Java client run time. My > comment below about > "Hmmm scratch that.. I'm typing this as I'm looking, I've just tried > "grep -rH getProducerCapacity ." and the only place where that seems to > be referenced is in Link.java, so I'm now suspecting that the above sets > the value, but nothing is using it yet" is my best bet on the subject. > > Unless a Java client runtime guru can step in and prove us wrong I'd say > raise a Jira on it. > > > I have to admit that I'm not really clear on how the capacity stuff > works (on C++ or Java really). I'm fairly sure that the consumer > capacity (AKA prefetch) maps to an internal queue in the client runtime > (I think in the old qpid::client API there was a local queue explicitly > involved in the API, though I'm not overly familiar with that API). > > I assume the consumer capacity works by allowing the client runtime to > pull messages as fast as it can asynchronously to the client application > in order to minimise round trip network delays that may be caused by a > more chatty synchronous network mechanism. > > I'm not so sure on the producer capacity though.....
Consumer capacity limits prefetch. The client libraries are allowed to fetch messages in advance of the application asking for them up to the capacity limit. Producer capacity limits "in doubt" messages. The client library is allowed to have up to N messages sent but not yet acknowledged. If the limit is reached the client library will block until the broker acks some messages. --------------------------------------------------------------------- Apache Qpid - AMQP Messaging Implementation Project: http://qpid.apache.org Use/Interact: mailto:[email protected]
