Re: [Quickfix-developers] General and specific queries about the Ruby port
Brought to you by:
orenmnero
From: Chris B. <cb...@co...> - 2015-06-26 17:58:20
|
Hey Rob, In theory the SWIG wrapped versions should be just fine. Having said that, I have very limited experience with the ruby wrapped api and have seen little traffic on these lists from others regarding that api. I recommend the jruby version simply because we have had success and the jruby integration is seamless. On Fri, Jun 26, 2015 at 3:10 AM, Robert Rainthorpe <ro...@le...> wrote: > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/ > > > Hi Chris, > > Thanks for that suggestion - evaluating it now. > > Reading between the lines, would it be fair to say that the SWIG-based > plain Ruby wrapper is a toy, or a proof-of-concept more than a production > tool? > > Rob. > > > On 25 Jun 2015, at 18:51, Chris Busbey <cb...@co...> wrote: > > Hi Robert, > > I can't comment on your specific issues, but if you have the flexibility, > you might want to consider using JRuby and quickfix-j. Connamara Systems > has a gemified quickfix-jruby on github and rubygems that does just that. > > https://github.com/connamara/quickfix-jruby > > We have successfully deployed production systems using this setup. > > On Thu, Jun 25, 2015 at 9:20 AM, Robert Rainthorpe <ro...@le...> > wrote: > >> QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/ >> >> I'm using quickfix 1.14.3.1 on ruby 2.2.2p95 on Mac OS 10.10.3 >> (development) and Centos 5.10. (deployment) >> >> I'm putting together a drop copy engine connecting to Turquoise. The >> basic parsing side of things works very well. But my problems begin when it >> comes to preparing the application for production. In particular I cannot >> get the program to logout of the exchange successfully. Ideally I want my >> program to cleanly disconnect from the exchange in the following >> circumstances: >> >> 1. The exchange tells me to logout. >> 2. The program receives a SIGTERM or SIGINT >> 3. The current time is outside of StartTime/EndTime. >> >> 1 works - the exchange kicks me off, I respond to the logout and all is >> sweetness and light. We'll come back to 2. But 3 appears to not work. My >> settings file has the following information: >> >> UseLocalTime=Y >> StartTime=15:43:00 >> EndTime=15:43:59 >> StartDay=Monday >> EndDay=Tuesday >> >> It's currently 16:59 here in the UK, on Thursday. But the application >> will start without complaint. Similar tests with the time passing EndTime >> also fail. So question 1: >> >> QUESTION 1: Should the time handling code work on Ruby? >> >> >> On to part 2. I've added signal handlers and verified that they're called >> when the relevant signal is received. They set a global variable. The main >> "do-nothing" loop ejects when the variable is set. This bit works, although >> it seems that the Quickfix thread is a bit tenacious since the program only >> notices the signal after the HeartBtInt interval. >> >> The problem arises when I try to actually logout of the session and/or >> stop the initiator. If initiator.stop is called then the program runs to >> completion and then throws a Segmentation fault with the following >> backtrace: >> >> 0 libruby.2.2.0.dylib 0x00000001075f8445 >> rb_vm_bugreport + 149 >> 1 libruby.2.2.0.dylib 0x000000010749c719 rb_bug_context >> + 473 >> 2 libruby.2.2.0.dylib 0x0000000107572653 sigsegv + 83 >> 3 libsystem_platform.dylib 0x00007fff96af6f1a _sigtramp + 26 >> 4 quickfix.bundle 0x000000010823e635 >> _ZN3FIX7SessionD2Ev + 53 >> 5 ??? 0x00007fff587afa60 0x0 + >> 140734677842528 >> >> If I instead call Session.lookupSession(<<<sessionid, stored away >> earlier>>>).logout (without calling initiator.stop), then the program runs >> to completion, but the logout call doesn't appear to do anything - no log >> of any outgoing messages. So, second question: >> >> QUESTION 2: What's the appropriate way to handle an unscheduled >> termination of a Ruby Quickfix program? >> >> And finally, the general question: >> >> QUESTION 3: Am I mad to do serious production development in Quickfix >> Ruby? It is seriously lacking in documentation and whilst it's been fun >> ferreting around the source (C++ and Ruby) to get the meat of my >> application running, I fear these deployment issues are going to stop me >> actually getting the code accepted by the exchange. Is anyone using the gem >> to do real work, or should I dust off my C++ skills (from 1997...) and >> sacrifice all the meta-programming goodness that made writing the actual >> parse module straightforward? >> >> Thanks for any pointers, help, brickbats, whatever. >> >> Rob. >> >> >> >> ------------------------------------------------------------------------------ >> Monitor 25 network devices or servers for free with OpManager! >> OpManager is web-based network management software that monitors >> network devices and physical & virtual servers, alerts via email & sms >> for fault. Monitor 25 devices for free with no restriction. Download now >> http://ad.doubleclick.net/ddm/clk/292181274;119417398;o >> _______________________________________________ >> Quickfix-developers mailing list >> Qui...@li... >> https://lists.sourceforge.net/lists/listinfo/quickfix-developers >> > > > > -- > Chris Busbey > Connamara Systems, LLC > > > > > ------------------------------------------------------------------------------ > Monitor 25 network devices or servers for free with OpManager! > OpManager is web-based network management software that monitors > network devices and physical & virtual servers, alerts via email & sms > for fault. Monitor 25 devices for free with no restriction. Download now > http://ad.doubleclick.net/ddm/clk/292181274;119417398;o > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > -- Chris Busbey Connamara Systems, LLC |