[zeromq-dev] best way to guarantee delivery of large message and to be warned of network issues?

Kenton Garner kenton.garner at gmail.com
Tue Sep 23 04:19:36 CEST 2014

I am using jeroMQ and starting to like it, but...
For the life of me,  I can not get past the abstraction from the socket

1.) The lack of feedback on socket issues is worrisome.  I have added a
second thread just to ping(pong) the server to insure that the connection
is kept alive, but without some feedback when do I know whether to cycle
the connections?   I see  that it does throw some unchecked exceptions (why
unchecked - what a pain in the ass) - but I have never seen any thrown no
matter what I do to the server or connection.

2) When I have a large message to transfer and it takes a while, I have no
alternative but to put a huge timeout value on the poll before returning.
This means that I may wait a couple minutes for a tiny message ( when the
server is not running ) just so I can be sure that my large messages have a
sufficient timeout value.  I have acknowledgment messages returning so I
know if it was received, but it is not acceptable to block on the recv()
call because zeromq does not warn me if there are any socket issues ( has
not so far ).  I could block for ever without a clue.

I understand that when I send a message it is just put on an internal queue
and then sent later, however in my case, I would prefer not to queue.  I
want to block on the send until the data is actually sent, then I can have
a reasonable time-out waiting for the server to respond.

3.) Do the smoke and mirrors behind the zmq_proxy() handle cycling
connection if necessary - or does it just die?

Thanks for any help I would appreciate it.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20140922/d741a03a/attachment.htm>

More information about the zeromq-dev mailing list