Hi,

In my setup I connect bunch of REQ sockets through a queue device to a
backend service. REQ sockets are torn down on read timeout. If the backend
service becomes unavailable my app eventually runs out of FDs.

If I connect REQ sockets directly to the backend service - they're being
destroyed gracefully.

Failing queue device version: http://pastebin.com/AM1fDAVM

Working direct connection version: http://pastebin.com/3p2Tb2uG

I traced what's exactly hapenning with socket in these two versions and in
the first version not a single req_t destructor is being called while in
the working version req_t destructors are called.

Any ideas how could I make the queue version surviving the backend service
unavailability period? I was thinking of using additional heartbeat service
but maybe there's some other, cleaner way. Also connecting backend-service
to the other queue endpoint is not possible in my scenario.

regards,
Marcin Olak
_______________________________________________
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to