[zeromq-dev] Durable socket question

Pieter Hintjens ph at imatix.com
Wed Nov 3 10:30:27 CET 2010


On Mon, Nov 1, 2010 at 9:12 PM, Neale Ferguson <neale at sinenomine.net> wrote:

> I am planning an application that uses a PUSH/PULL pair to pass messages. I
> would like to exploit the durable socket feature of 0MQ such that if the
> PULL side was to fall-over it would be able to restart and pick up from
> where it had left off and not lose messages. A simple test program shows
> that using ZMQ_IDENTITY on the zmq_setsockopt call doesn't have any effect.
> Is this facility only valid for other types of sockets?

The durable subscriber feature only works for pubsub sockets.  If you
are doing push/pull and want to assure against message loss due to
crashing nodes, you need to add your own error detection and recovery.
 It can be quite brutal.  Assume that a crash is a rare occurrence,
and then treat your entire pipeline as a single unit of work.  If it
doesn't complete fully, i.e. if a single task got lost anywhere, throw
away the whole thing and restart it.

-Pieter



More information about the zeromq-dev mailing list