Thread: [Quickfix-users] QuickFIXEngine user experience
Brought to you by:
orenmnero
From: Barry M. <bar...@ya...> - 2005-06-26 18:33:14
|
I'm currently considering using the QuickFIXEngine and I'm looking for information from users who have had actual experience with it. The particular areas of interest are - platform used on, i.e., Windows, Linux, Solaris, FreeeBSD, MacOS, mainframe - reliability - performance Any information you can provide will be much appreciated. Thanks, Barry Barry Marks Logicware, Inc. Northbrook, IL bar...@ya... |
From: Nick E. <ni...@de...> - 2005-06-28 10:12:46
|
Hi, > I'm currently considering using the QuickFIXEngine > and I'm looking for information from users who have > had actual experience with it. The particular > areas of interest are > > - platform used on, > i.e., Windows, Linux, Solaris, FreeeBSD, MacOS, mainframe I've been using quickfix on windows/linux/solaris for sometime.. The most annoying thing with quickfix is broken double parsing, because of atof() usage. So if your platform honors locale settings for atof() call (like Solaris) and your current locale settings have decimal separator other than '.' quickfix will silently drop fraction part on all of your pricess! (damn!) so be sure to set LC_NUMERIC=C prior to running any quickfix application. > - reliability There is quite a bit to do in this area.. (requires manual fixing and testing). When runs as a client (initiator) does not handle properly out of sync message sequence situation regardless config settings (see bug #19 it seems to be there for ages). When runs as server thread accepting connections silently exits on unknown fields in login message. java port does not deal properly with classloaders. > - performance I do not really care about performance right now... I mean that order processing time is always much more than message parsing time. The only issue you _probably_ may have is high garbage rate in case you chose the most typesafe way programming quickfix. But in reality your order processing engine will become bottleneck much sooner. The only case you should care about performance is when your are about to distribute market data (quotes) using fix... all the others are safe. :) Hope it helps. |
From: Joerg T. <Joe...@ma...> - 2005-06-28 10:32:26
|
Nick Evgeniev wrote: > I've been using quickfix on windows/linux/solaris for sometime.. The > most annoying thing with quickfix is broken double parsing, because of > atof() usage. So if your platform honors locale settings for atof() call > (like Solaris) and your current locale settings have decimal separator > other than '.' quickfix will silently drop fraction part on all of your > pricess! (damn!) so be sure to set LC_NUMERIC=C prior to running any > quickfix application. Nick, please file a bug report to the bug tracker. Since the formatting of FIX messages is defined by the FIX spec, it should not be modified by any locale settings. Do you remember of other situations where this could apply (e.g. date/time etc.)? Thanks. >> - reliability > > There is quite a bit to do in this area.. (requires manual fixing and > testing). > When runs as a client (initiator) does not handle properly out of sync > message sequence situation regardless config settings (see bug #19 it > seems to be there for ages). OK, there is a patch attached. Does it work for you? > When runs as server thread accepting connections silently exits on > unknown fields in login message. Hmmm, could you provide more details here? > java port does not deal properly with classloaders. Java API, the (pure) Java port of Steve Bates is in CVS. This is bug 58 with patches attached. I did not find time to have a closer look at it, but it will make using QF with JBoss (and other application server) and eclipse much easier. Cheers, Jörg -- Joerg Thoennes http://macd.com Tel.: +49 (0)241 44597-24 Macdonald Associates GmbH Fax : +49 (0)241 44597-10 Lothringer Str. 52, D-52070 Aachen |
From: Nick E. <ni...@de...> - 2005-07-01 10:20:23
|
Hi, >> When runs as a client (initiator) does not handle properly out of sync >> message sequence situation regardless config settings (see bug #19 it >> seems to be there for ages). > > OK, there is a patch attached. Does it work for you? Actually, I've found this bug right after fixing this bug.. My fix is quite simple I'm adding reset flag to logon message on application side i.e. within toAdmin() message call. >> When runs as server thread accepting connections silently exits on >> unknown fields in login message. > > Hmmm, could you provide more details here? Yes. I was trying to logon with Username & Password fields set to fix4.2 session, w/o adding such fields to the spec first... After such attempt quickfix stops from listenning socket. >> java port does not deal properly with classloaders. > > Java API, the (pure) Java port of Steve Bates is in CVS. This is bug 58 > with patches attached. I did not find time to have a closer look at it, > but it will make using QF with JBoss (and other application server) and > eclipse much easier. Actually I was talking about java + native part port. Don't know how to name it in case of pure java port presens. The bug is quite simple -- once you have either Acceptor or Initiator started, quickfix starts new internal thread w/o saving context class loader or at least classloader which has loaded Acceptor/Initiator... Later when calls from this thread are made to parse incoming messages, system classloader is being used. Hence you can get ClassNotFoundException for newly loaded classes.. Right now I'm workarounding this by restoring original classloader in fromApp() call.. There is yet another bug (or feature) that may be an issue in multithreaded application using quickfix... Quickfix holds a session lock while dispatching new message (preventing other threads from sending concurrent messages) so if you have to synchronize dispatching thread with another thread which in turn also may send a message -- you have a deadlock.. There are several fixes for this problem -- either write clearly in docs about threading issues, or inject lock management from quickfix core, or at least make such locks accessible for application. The last approach has an advantage as it would not break existing quickfix applications. |
From: Joerg T. <Joe...@ma...> - 2005-06-28 10:43:23
|
Barry Marks wrote: > I'm currently considering using the QuickFIXEngine > and I'm looking for information from users who have > had actual experience with it. Have a look at this link: http://www.quickfixengine.org/wikifix/index.php?WhoIsUsingQuickFix Its part of the now defunct WikiFIX (we have got a lot of spam issues), but this page still works. > The particular areas of interest are > > - platform used on, > i.e., Windows, Linux, Solaris, FreeeBSD, MacOS, mainframe At the moment, I am not aware of any port to mainframe or AIX. But the other platforms are supported (and used). Please also note the pure Java port of Steve Bates. > - reliability We (www.glox.com) are using QuickFIX in production for more than 2 years, and it proved very stable during that time. Of course, there are bugs. But they get fixed and added to the unit tests to avoid regression. I also know of at least 2 exchanges using QuickFIX (SWX and CME). > - performance For more detailed figures, run quickfix/src/pt.cpp on a suitable machine. There have been some substantial performance improvements last year. Speaking for GLOX, we are satisfied with performance and never had any issues related. Cheers, Jörg -- Joerg Thoennes http://macd.com Tel.: +49 (0)241 44597-24 Macdonald Associates GmbH Fax : +49 (0)241 44597-10 Lothringer Str. 52, D-52070 Aachen |