<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0cm;
        margin-right:0cm;
        margin-bottom:0cm;
        margin-left:36.0pt;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:582950870;
        mso-list-type:hybrid;
        mso-list-template-ids:85985174 134807553 134807555 134807557 134807553 134807555 134807557 134807553 134807555 134807557;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:41.45pt;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:77.45pt;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:113.45pt;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:149.45pt;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:185.45pt;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:221.45pt;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:257.45pt;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:293.45pt;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:329.45pt;
        text-indent:-18.0pt;
        font-family:Wingdings;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-GB link=blue vlink=purple><div class=WordSection1><p class=MsoNormal>Dear 0MQ developers,<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>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.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoListParagraph style='margin-left:41.45pt;text-indent:-18.0pt;mso-list:l0 level1 lfo1'><![if !supportLists]><span style='font-family:Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>         </span></span></span><![endif]>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?).<o:p></o:p></p><p class=MsoListParagraph style='margin-left:41.45pt;text-indent:-18.0pt;mso-list:l0 level1 lfo1'><![if !supportLists]><span style='font-family:Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>         </span></span></span><![endif]>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.<o:p></o:p></p><p class=MsoListParagraph style='margin-left:41.45pt;text-indent:-18.0pt;mso-list:l0 level1 lfo1'><![if !supportLists]><span style='font-family:Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>         </span></span></span><![endif]>I would like the data flows to be asynchronous and that the data sources ‘push’ data to the central point.<o:p></o:p></p><p class=MsoListParagraph style='margin-left:41.45pt;text-indent:-18.0pt;mso-list:l0 level1 lfo1'><![if !supportLists]><span style='font-family:Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>         </span></span></span><![endif]>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.<o:p></o:p></p><p class=MsoListParagraph style='margin-left:41.45pt;text-indent:-18.0pt;mso-list:l0 level1 lfo1'><![if !supportLists]><span style='font-family:Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>         </span></span></span><![endif]>A facility to detect when data sources have died/gone away, heartbeating.<o:p></o:p></p><p class=MsoListParagraph style='margin-left:41.45pt;text-indent:-18.0pt;mso-list:l0 level1 lfo1'><![if !supportLists]><span style='font-family:Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>         </span></span></span><![endif]>Preferably to I’d like to work in C++; it’s familiar.<o:p></o:p></p><p class=MsoListParagraph style='margin-left:41.45pt;text-indent:-18.0pt;mso-list:l0 level1 lfo1'><![if !supportLists]><span style='font-family:Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>         </span></span></span><![endif]>Windows 7 compatibility is essential, I am tied to using Windows it is where the data sources will run.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>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:  <a href="http://stackoverflow.com/questions/24597251/zeromq-issues-with-example-networking-patterns-paranoid-pirate-and-majordomo">Stackoverflow question</a><o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>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  <a href="http://lists.zeromq.org/pipermail/zeromq-dev/2013-October/022981.html">rocket scientists</a>  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.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Seeking answers & further investigating REQ-ROUTER I discovered this example: <a href="http://thisthread.blogspot.co.uk/2012/05/very-simple-req-router-example.html">simple req2Router example</a> and built it into a working Windows program. The cpp  & header file code for it are here  <a href="http://pastebin.com/g66mzGm9">req2Router cpp file</a> and <a href="http://pastebin.com/yti8jUEc">zmq2.h header file</a> .<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>What I discovered was that this simple req2Router program would function properly when linked against zeromq-2.2.0 but would <u>not</u> 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?<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>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.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>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?<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>With thanks,<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Riskybiz.<o:p></o:p></p></div></body></html>