[zeromq-dev] looking inside ZMQ queue

diffuser78 diffuser78 at gmail.com
Fri Jul 27 20:27:39 CEST 2012


Sorry about my ignorance and laziness. I read this on the FAQ page:


*How do I determine how many messages are in queue?*

*This isn't possible. At any given time a message may be in the ØMQ sender
queue, the sender's kernel buffer, on the wire, in the receiver's kernel
buffer or in the receiver's ØMQ receiver queue. Furthermore, a ØMQ socket
can bind and/or connect to many peers. Each peer may have different
performance characteristics and therefore a different queue depth. Any
"queue depth" number is almost certainly wrong, so rather than provide
incorrect information the library avoids providing any view into this data.*
I had a related question but not same as above.

When ZMQ sent this message over TCP to the receivier and when receiver did
a FIN/ACK indicating that it is ACK'ing to the finish of the tranmission of
byte transfer, it indicates that the transport layer on the other end got
the message. Does ZMQ keep tab of this ? When does sender ZMQ removes this
message from its internal buffer. *I am only interested in knowing (in YES
or NO) whether this message is in sender zmq buffer or not*. Is that
possible ? If you can point me out, I can create a patch for it and send
for review.

Any thoughts are greatly appreciated.

DJ

On Fri, Jul 27, 2012 at 11:16 AM, Ian Barber <ian.barber at gmail.com> wrote:

> On Fri, Jul 27, 2012 at 6:26 PM, diffuser78 <diffuser78 at gmail.com> wrote:
> > What I want to know is that, ZMQ might have returned success upon
> buffering
> > the message. But what if message is still in the queue and has not been
> > delivered to the receiver for some reasons (say slow receiver). Is there
> a
> > way I can peek into ZMQ queue to find out if my message M that I had
> sent in
> > a non blocking way was indeed sent on the wire successfully? My lib
> needs to
> > acknowledge to the app if there was an error after some time T for it to
> > timeout on the message M.
>
> It could be lost in the network, or the other side could crash while
> processing. The best way is to send an acknowledgement back from the
> receiver (also using ZeroMQ) and use that to determine whether the
> other side has received and processed it.
>
> Ian
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20120727/42a4de4b/attachment.htm>


More information about the zeromq-dev mailing list