AMQP 1.0 defines a way to force a sending link to exhaust its credit via a 
drain flag in the Flow frame (see the flow control section in the spec).

Hate to admit my ignorance, but how does one properly drain a link using the 
Proton engine api?

>From what I can tell (using the proton-c api here), the application initiates 
>the drain by calling pn_link_drain() for a given link:

  pn_link_drain( myLink, X )

How does the application know when the drain has completed?  My guess is that 
the drain can be considered complete when the pn_link_credit() call returns 
zero (no more credit) - is that correct?

Furthermore, it appears that then engine api requires the sending application 
acknowledge the drain request by calling pn_link_drained() on the sending link. 
 But I don't see an engine interface that notifies the application that a drain 
has been requested for the link.

Are we missing a "get drain flag" api call for the sender link?



Reply via email to