[zeromq-dev] Zeromq Paranoid Pirate & Majordomo examples.

Riskybiz riskybizlive at live.com
Sat Aug 23 22:53:30 CEST 2014

Dear 0MQ developers,


For some months I've been trying to get the Paranoid Pirate & Majordomo
patterns working so that I may study their operation and implement the
principles in some new development work I have in mind.  What I would like
to achieve is relatively simple.


.         Using 0MQ networking I would like several sources (REQ?) of
time-series data to pass any accumulated time series data history to a
central point (ROUTER?).

.         When the accumulated data history has been passed then the sources
would pass real time updates to the central point; as and when the new data
are generated.

.         I would like the data flows to be asynchronous and that the data
sources 'push' data to the central point.

.         It is important that no data is lost due to slow joiner syndrome.
It is also important that the data arrives in the correct order; otherwise
the data will be gobbledegook.

.         A facility to detect when data sources have died/gone away,

.         Preferably to I'd like to work in C++; it's familiar.

.         Windows 7 compatibility is essential, I am tied to using Windows
it is where the data sources will run.


In working through the problems getting Paranoid Pirate & Majordomo to work
I came to suspect that the problem lay in the REQ-ROUTER connection which is
present in both the Paranoid Pirate and Majordomo patterns.  This
stackoverflow question explains some of approaches I've tried:
Stackoverflow question


I even tried building CZMQ on Windows 7 so that I could try the C language
original versions of the Paranoid Pirate & Majordomo patterns.  Have you
tried building CZMQ on Windows; it's just a nightmare?  The provided Visual
Studio solution file just didn't work and the instructions are practically
non-existent.  Searching the internet for help found  rocket scientists
proposing cross compilation as the solution; but where to start with that?
Really should it be that difficult?  All I could see there was another month
of lost weekends.  So all in all that was a dead end.


Seeking answers & further investigating REQ-ROUTER I discovered this
example: simple req2Router example
l>  and built it into a working Windows program. The cpp  & header file code
for it are here  req2Router cpp file <http://pastebin.com/g66mzGm9>  and
zmq2.h header file <http://pastebin.com/yti8jUEc>  .


What I discovered was that this simple req2Router program would function
properly when linked against zeromq-2.2.0 but would not function when linked
against zeromq-3.2.3 or zeromq-4.0.4.  N.B. When running tests I ensured
that the corresponding libzmq.dll file was used from the relevant version of
zeromq. Could this be the problem in getting the Paranoid Pirate & Majordomo
examples to work; that the example code is zeromq version dependant?  Does
anyone know why this might be the case? What has changed between versions
which would affect the REQ-ROUTER functionality?


I really am stuck and getting tangled with this and am losing time to it. I
cannot move forward with the plan I have in mind until I can get working
implementations of Paranoid Pirate,  Majordomo & Asynchronous Majordomo on
Windows as a foundation on which to build.  It's doubly difficult because I
want to learn from the examples but debugging them at the same time is
testing to say the least.


Is anyone able to help get these examples working with the latest versions
of zeromq on Windows, not just for my sake but also for the next person who
tries?  Surely I can't be the only person who needs or wants to try this?


With thanks,



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20140823/05060203/attachment.html>

More information about the zeromq-dev mailing list