Apologies for the delay, as I mentioned in another post I've been out of commission for a bit recently.
I'm a bit confused by this question. Are you asking about a peer to peer scenario with a sender and receiver talking directly via AMQP or are you talking about a producer talking to a broker via AMQP and a broker talking to a consumer via AMQP? Sender/receiver have very specific hop to hop meanings in the AMQP standard, so in a brokered scenario there are actually two hops and therefore two sender/receiver pairs. It's a bit difficult to answer your question without this part of the picture being clear. --Rafael On Wed, Mar 20, 2013 at 3:07 AM, Rakesh Kushwaha <[email protected]>wrote: > Thanks Rafael , > > Hope this should complete rest of part of question , > > 1> Let say I have created sender on queue as target (Queue Node is > receiver) , > now when I am enquequing the message to queue as Sender , How I will get > link credit from receiver when at this time I have zero credit. > ,I want to know when Reciever will pass link credit to sender using flow > packet , how Receiver get to know that somebody want to send message to him > so that he can pass credit or how many credit sender needs . > > 2> do it is necessary to create Receiver (consumer) on Queue to pass link > credit to Sender ?? > > Regards, > Rakesh > > > > > On Tue, Mar 19, 2013 at 11:14 PM, Rafael Schloming <[email protected]> > wrote: > > > In general the idea is that "credit" represents how many messages a > > receiver can handle at a given point in time. The sender never sets this > > amount independently (except for initializing it to zero), he only sets > it > > to what the receiver has told him. As for what you do as a sender when > you > > don't have sufficient credit to send messages, you simply have to wait > for > > the receiver to tell you that they can handle more messages. This > > guarantees that the sender will never send more messages than a receiver > > can handle. > > > > On Tue, Mar 19, 2013 at 11:48 AM, Rakesh Kushwaha <[email protected] > > >wrote: > > > > > I am looking for > > > how link credit protocol works with respect to producer and consumer . > > > > > > my main confusion points are , > > > > > > 1> let say I have any create producer API which should in turn create > > link > > > with sender role (amqp protocol), > > > what should be link credit for this producer (at create producer > > API) > > > so the it can enqueue message. > > > > > > > Initially the receiver hasn't told the sender anything, so the protocol > > specification defines the initial link credit for a producer to be zero. > > > > > > > > > > 2> In case ,sender is done with all link credit then how It gets link > > > credit again when It tries to enqueue message . > > > > > > like in case of sender gets flow per-formative frame with drain > > flag > > > (flow (drain= true))set as true , it has to consume all link credit , > how > > > it will again get link credit . > > > > > > Off course if I am not able understand above two points , I may be > > > missing something else also :). > > > > > > > The only way the sender ever increases its credit levels is when the > > receiver tells it to do so by sending a flow performative with additional > > credit. This applies both to the initial case, and to the drain case you > > mention above, and would also apply if the producer simply sent enough > > messages that the credit level fell to zero. > > > > I hope this helps. Let me know if you still have questions. > > > > --Rafael > > >
