[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
layer.
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