quickfix-developers Mailing List for QuickFIX (Page 87)
Brought to you by:
orenmnero
You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
|
Feb
(5) |
Mar
(16) |
Apr
(15) |
May
(17) |
Jun
(33) |
Jul
(35) |
Aug
(34) |
Sep
(19) |
Oct
(40) |
Nov
(51) |
Dec
(43) |
2003 |
Jan
(45) |
Feb
(79) |
Mar
(124) |
Apr
(121) |
May
(132) |
Jun
(77) |
Jul
(110) |
Aug
(57) |
Sep
(48) |
Oct
(83) |
Nov
(60) |
Dec
(40) |
2004 |
Jan
(67) |
Feb
(72) |
Mar
(74) |
Apr
(87) |
May
(70) |
Jun
(96) |
Jul
(75) |
Aug
(147) |
Sep
(128) |
Oct
(83) |
Nov
(67) |
Dec
(42) |
2005 |
Jan
(110) |
Feb
(84) |
Mar
(68) |
Apr
(55) |
May
(51) |
Jun
(192) |
Jul
(111) |
Aug
(100) |
Sep
(79) |
Oct
(127) |
Nov
(73) |
Dec
(112) |
2006 |
Jan
(95) |
Feb
(120) |
Mar
(138) |
Apr
(127) |
May
(124) |
Jun
(97) |
Jul
(103) |
Aug
(88) |
Sep
(138) |
Oct
(91) |
Nov
(112) |
Dec
(57) |
2007 |
Jan
(55) |
Feb
(35) |
Mar
(56) |
Apr
(16) |
May
(20) |
Jun
(77) |
Jul
(43) |
Aug
(47) |
Sep
(29) |
Oct
(54) |
Nov
(39) |
Dec
(40) |
2008 |
Jan
(69) |
Feb
(79) |
Mar
(122) |
Apr
(106) |
May
(114) |
Jun
(76) |
Jul
(83) |
Aug
(71) |
Sep
(53) |
Oct
(75) |
Nov
(54) |
Dec
(43) |
2009 |
Jan
(32) |
Feb
(31) |
Mar
(64) |
Apr
(48) |
May
(38) |
Jun
(43) |
Jul
(35) |
Aug
(15) |
Sep
(52) |
Oct
(62) |
Nov
(62) |
Dec
(21) |
2010 |
Jan
(44) |
Feb
(10) |
Mar
(47) |
Apr
(22) |
May
(5) |
Jun
(54) |
Jul
(19) |
Aug
(54) |
Sep
(16) |
Oct
(15) |
Nov
(7) |
Dec
(8) |
2011 |
Jan
(18) |
Feb
(9) |
Mar
(5) |
Apr
(5) |
May
(41) |
Jun
(40) |
Jul
(29) |
Aug
(17) |
Sep
(12) |
Oct
(23) |
Nov
(22) |
Dec
(11) |
2012 |
Jan
(8) |
Feb
(24) |
Mar
(5) |
Apr
(5) |
May
(6) |
Jun
(5) |
Jul
(5) |
Aug
(5) |
Sep
(2) |
Oct
(9) |
Nov
(2) |
Dec
(18) |
2013 |
Jan
(25) |
Feb
(16) |
Mar
(8) |
Apr
(2) |
May
(16) |
Jun
(17) |
Jul
(2) |
Aug
(13) |
Sep
(3) |
Oct
(4) |
Nov
(1) |
Dec
|
2014 |
Jan
(2) |
Feb
|
Mar
(22) |
Apr
(9) |
May
(3) |
Jun
(1) |
Jul
(5) |
Aug
(11) |
Sep
(18) |
Oct
(4) |
Nov
(4) |
Dec
(3) |
2015 |
Jan
(2) |
Feb
|
Mar
|
Apr
(3) |
May
(4) |
Jun
(37) |
Jul
|
Aug
(4) |
Sep
(6) |
Oct
(1) |
Nov
(4) |
Dec
(2) |
2016 |
Jan
(9) |
Feb
(3) |
Mar
(7) |
Apr
(1) |
May
(8) |
Jun
|
Jul
|
Aug
|
Sep
(7) |
Oct
(3) |
Nov
(16) |
Dec
|
2017 |
Jan
(1) |
Feb
(15) |
Mar
(2) |
Apr
(12) |
May
(4) |
Jun
(7) |
Jul
(5) |
Aug
|
Sep
|
Oct
|
Nov
(23) |
Dec
(8) |
2018 |
Jan
(2) |
Feb
(4) |
Mar
(2) |
Apr
(8) |
May
(3) |
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2019 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(1) |
Sep
|
Oct
(5) |
Nov
(3) |
Dec
|
2020 |
Jan
|
Feb
(4) |
Mar
(3) |
Apr
|
May
|
Jun
|
Jul
(12) |
Aug
(5) |
Sep
(3) |
Oct
(1) |
Nov
|
Dec
(1) |
2021 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
(2) |
Sep
|
Oct
|
Nov
|
Dec
|
2022 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2025 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Dale W. <wil...@oc...> - 2008-04-22 20:52:35
|
Hi Lu;kas, lukas41 wrote: > I was able to run quickfix's example applications, such as ordermatch and > tradeclient. However, it doesn't seem like they are logging any outgoing > messages. I These applications "log" the messages to the screen. For example in .../examples/ordermatch/ordermatch.cpp you'll see code that looks like: FIX::FileStoreFactory storeFactory( settings ); FIX::ScreenLogFactory logFactory( true, true, true ); FIX::SocketAcceptor acceptor( application, storeFactory, settings, logFactory ); If you replace ScreenLogFactory(...) with FileLogFactory (settings) the logs will be written to a file rather than to the screen. Dale |
From: Brian E. <azz...@ya...> - 2008-04-22 20:23:57
|
I wrote a document on creating custom messages and field in QuickFIX. It was supposed to be added to the QF documentation, but I don't see it there, so here's a link to the original message: http://www.nabble.com/Custom-Messages-Classes-Tutorial-p13495584.html - Brian Erst Thynk Software, Inc. ----- Original Message ---- From: parlence <par...@go...> To: qui...@li... Sent: Tuesday, April 22, 2008 11:57:50 AM Subject: [Quickfix-developers] StreamingQuoteDuration -- Barclays extension QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html QuickFIX Support: http://www.quickfixengine.org/services.html Hi I am getting QuickFIX up and running with BARX but need to add the Barclays extension StreamingQuoteDuration. This is not a QuickFIX message so i am wondering how to get it into the message. BARX assure me that they have clients who have done this so i am hoping someone can point me in the right direction. john m howitt phone+447870644487 www.aranaio.com www.parlence.com www.egolion.com Time flies like an arrow, but fruit flies like a banana. |
From: Andrei G. <an...@gm...> - 2008-04-22 20:09:30
|
On Tue, Apr 22, 2008 at 6:24 AM, Åsa Sandberg <asa...@ly...> wrote: > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > > > > > > Hi all, > > Is there a way to turn off the display of all the FIX messages in the output window in Visual Studio? You are probably using a ScreenLogFactory. Try changing that to a FileLogFactory. |
From: Mike P. <mic...@ya...> - 2008-04-22 19:45:30
|
I'm assuming this is a field in a particular FIX message. You can use the C++ Message.setField(int field, String value) method, with 'field' being the field/tag #. Otherwise if this is a new FIX Message you can populate all of the fields (MsgType, BeginString, Sender/Target CompId/SubId, etc) manually vie the 'set' methods. You can also add the Message definition to the xml files and I believe this will cause the objects to be generated. I've never done this but it should be pretty easy to copy an existing message type. Hope this helps. Mike --- On Tue, 4/22/08, parlence <par...@go...> wrote: > From: parlence <par...@go...> > Subject: [Quickfix-developers] StreamingQuoteDuration -- Barclays extension > To: qui...@li... > Date: Tuesday, April 22, 2008, 11:57 AM > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: > http://www.quickfixengine.org/services.html------------------------------------------------------------------------- > This SF.net email is sponsored by the 2008 JavaOne(SM) > Conference > Don't miss this year's exciting event. There's > still time to save $100. > Use priority code J8TL2D2. > http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone_______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers ____________________________________________________________________________________ Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ |
From: <or...@qu...> - 2008-04-22 19:18:14
|
<html><body>You need to change to code a bit if you want to use the FileLog. If you look in those apps you will see that a ScreenLogFactory is passed into the initiator or acceptor. Passing a FileLogFactory in its place will get you file logs.<BR><BR> <BLOCKQUOTE style="PADDING-LEFT: 8px; MARGIN-LEFT: 8px; BORDER-LEFT: blue 2px solid" webmail="1">-------- Original Message --------<BR>Subject: [Quickfix-developers] FileLog not getting created<BR>From: lukas41 <mar...@gm...><BR>Date: Tue, April 22, 2008 1:23 pm<BR>To: <a href="mailto:qui...@li...">qui...@li...</a><BR><BR>QuickFIX Documentation: <A href="http://www.quickfixengine.org/quickfix/doc/html/index.html" target=_blank><a href="http://www.quickfixengine.org/quickfix/doc/html/index.html">http://www.quickfixengine.org/quickfix/doc/html/index.html</a></A><BR>QuickFIX Support: <A href="http://www.quickfixengine.org/services.html" target=_blank><a href="http://www.quickfixengine.org/services.html">http://www.quickfixengine.org/services.html</a></A><BR><BR><BR>Hi guys,<BR><BR>I'm new to quickfix. This forum had been very useful, and I would like to<BR>thank everyone in advance.<BR><BR>I was able to run quickfix's example applications, such as ordermatch and<BR>tradeclient. However, it doesn't seem like they are logging any outgoing<BR>messages. I understand that I should be using FileLog for this purpose. I<BR>see in the config file that I can specify a location for the log to go<BR>to...as in<BR>FileLogPath=store<BR><BR>However, nothing is getting logged there. The directory exists but it's<BR>empty after I run these apps.<BR><BR>I looked around the source code, and I see that the FileLog gets generated<BR>from a FileLogFactory. I put in some printout statements, and it seems like<BR>FileLogFactory.create never gets called. Instead, screenlogfactory gets<BR>created. What is the difference between screenlogfactory and filelogfactory?<BR>Will I be able to log messages to a file using screenlog?<BR><BR>thanks<BR><BR>lukas<BR>-- <BR>View this message in context: <A href="http://www.nabble.com/FileLog-not-getting-created-tp16825401p16825401.html" target=_blank><a href="http://www.nabble.com/FileLog-not-getting-created-tp16825401p16825401.html">http://www.nabble.com/FileLog-not-getting-created-tp16825401p16825401.html</a></A><BR>Sent from the QuickFIX - Dev mailing list archive at <a href="http://Nabble.com">Nabble.com</a>.<BR><BR><BR>-------------------------------------------------------------------------<BR>This <a href="http://SF.net">SF.net</a> email is sponsored by the 2008 JavaOne(SM) Conference <BR>Don't miss this year's exciting event. There's still time to save $100. <BR>Use priority code J8TL2D2. <BR><A href="http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone" target=_blank><a href="http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone">http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone</a></A><BR>_______________________________________________<BR>Quickfix-developers mailing list<BR><A onclick="Popup.composeWindow('pcompose.php?sendto=Quickfix-developers%40lists.sourceforge.net'); return false;" href="#Compose">Quickfix-developers<B></B>@lists.sourceforge.net</A><BR><A href="https://lists.sourceforge.net/lists/listinfo/quickfix-developers" target=_blank><a href="https://lists.sourceforge.net/lists/listinfo/quickfix-developers">https://lists.sourceforge.net/lists/listinfo/quickfix-developers</a></A><BR></BLOCKQUOTE></body></html> |
From: lukas41 <mar...@gm...> - 2008-04-22 18:23:26
|
Hi guys, I'm new to quickfix. This forum had been very useful, and I would like to thank everyone in advance. I was able to run quickfix's example applications, such as ordermatch and tradeclient. However, it doesn't seem like they are logging any outgoing messages. I understand that I should be using FileLog for this purpose. I see in the config file that I can specify a location for the log to go to...as in FileLogPath=store However, nothing is getting logged there. The directory exists but it's empty after I run these apps. I looked around the source code, and I see that the FileLog gets generated from a FileLogFactory. I put in some printout statements, and it seems like FileLogFactory.create never gets called. Instead, screenlogfactory gets created. What is the difference between screenlogfactory and filelogfactory? Will I be able to log messages to a file using screenlog? thanks lukas -- View this message in context: http://www.nabble.com/FileLog-not-getting-created-tp16825401p16825401.html Sent from the QuickFIX - Dev mailing list archive at Nabble.com. |
From: parlence <par...@go...> - 2008-04-22 16:58:20
|
Hi I am getting QuickFIX up and running with BARX but need to add the Barclays extension StreamingQuoteDuration. This is not a QuickFIX message so i am wondering how to get it into the message. BARX assure me that they have clients who have done this so i am hoping someone can point me in the right direction. john m howitt phone +447870644487 www.aranaio.com www.parlence.com www.egolion.com Time flies like an arrow, but fruit flies like a banana. |
From: Åsa S. <asa...@ly...> - 2008-04-22 09:25:07
|
Hi all, Is there a way to turn off the display of all the FIX messages in the output window in Visual Studio? Regards /Åsa |
From: fopguy <ma...@tr...> - 2008-04-21 23:14:21
|
Hi everyone, I am trying to modify filestore to log additional information. Whenever I get a message, i want to log additional information. I was able to successfully modify the function FileStore::set(int msgseqnum, string msg) so that additional information gets printed to the log file. Unfortunately, this doesn't cut it. I actually need to pass this additional information to the application layer, so that I can retrieve it inside Application.cpp's fromApp function. Getting additional data in Filestore.cpp is too late. I'm not sure what the best way is to do this. I thought one way is to find calls to FileStore.set (aka when the string that gets logged is generated), modify that string, and then pass it up. But...I have 2 problems. 1) I don't see where FileStore.set gets called. and 2) I don't know if that is a reasonable way to do this. If someone could shed some knowledge on this, I would deeply appreciate it. thanks mark -- View this message in context: http://www.nabble.com/modifying-filestore-to-log-additional-information-tp16817483p16817483.html Sent from the QuickFIX - Dev mailing list archive at Nabble.com. |
From: Alex M. <ale...@gm...> - 2008-04-21 20:21:28
|
OK. Thanks for the pointer. On Mon, Apr 21, 2008 at 3:02 PM, <or...@qu...> wrote: > You should pass in a log factory to your acceptor. It may give you more > information about what is happening with the received message. > > --oren > > -------- Original Message -------- > Subject: [Quickfix-developers] How can I know QuickFix got the message? > Body file? > From: "Alex McFerron" <ale...@gm...> > Date: Mon, April 21, 2008 11:28 am > To: qui...@li... > > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > ------------------------------ > I moved the client to another machine, ran wireshark, and I can see the > TCP/IP fix message being sent. > > So, its the server. The server is also using quickfix. Is there a file > where the tcp/ip messages are logged. For some reason the toApp method isn't > being triggered but the Tcp/ip message is being sent. > > thanks, > alex > > On Mon, Apr 21, 2008 at 10:52 AM, Alex McFerron <ale...@gm...> > wrote: > > > I have a client that is sending a security defin request and this > > message is in the body file. > > > > However, the server isn't receiving it. This is all on one machine so I > > can't see the traffic in wireshark. > > > > So, if I see the message in teh body file, is it safe to say it was sent > > over the socket to the server? is it safe to say to say that the server is > > having the issue? > > > > cheers, > > alex > > > > ------------------------------ > ------------------------------------------------------------------------- > This SF.net <http://sf.net/> email is sponsored by the 2008 JavaOne(SM) > Conference > Don't miss this year's exciting event. There's still time to save $100. > Use priority code J8TL2D2. > > http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone > ------------------------------ > _______________________________________________ > Quickfix-developers mailing list > Quickfix-developers**@lists.sourceforge.net<http://mail.google.com/mail/?ui=2&view=js&name=js&ids=qk1v6dmibzrk#1197294b71888212_Compose> > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > > |
From: <or...@qu...> - 2008-04-21 20:10:45
|
<html><body>Yes, you should call stop and then continue to call poll() until it returns false.<BR><BR> <BLOCKQUOTE style="PADDING-LEFT: 8px; MARGIN-LEFT: 8px; BORDER-LEFT: blue 2px solid" webmail="1">My mistake again, the initiator was trying to connect to a windows <BR>firewall and was getting a timout after 20sec.<BR>So the poll() method seems to solve our problems, we will digg deeper <BR>that way from inside a python thread.<BR><BR>small other question, at the end of my loop, should i call <BR>acceptor.stop() ? (or clear() or del acceptor) to cleanup resources <BR>maintained by it ?<BR><BR>Thanks a lot,<BR>Fugazy<BR></BLOCKQUOTE></body></html> |
From: <or...@qu...> - 2008-04-21 20:02:50
|
<html><body><div>You should pass in a log factory to your acceptor. It may give you more information about what is happening with the received message.</div> <div> </div> <div>--oren</div> <BLOCKQUOTE style="PADDING-LEFT: 8px; MARGIN-LEFT: 8px; BORDER-LEFT: blue 2px solid" webmail="1">-------- Original Message --------<BR>Subject: [Quickfix-developers] How can I know QuickFix got the message?<BR>Body file?<BR>From: "Alex McFerron" <ale...@gm...><BR>Date: Mon, April 21, 2008 11:28 am<BR>To: <a href="mailto:qui...@li...">qui...@li...</a><BR><BR>QuickFIX Documentation: <A href="http://www.quickfixengine.org/quickfix/doc/html/index.html" target=_blank><a href="http://www.quickfixengine.org/quickfix/doc/html/index.html">http://www.quickfixengine.org/quickfix/doc/html/index.html</a></A><BR>QuickFIX Support: <A href="http://www.quickfixengine.org/services.html" target=_blank><a href="http://www.quickfixengine.org/services.html">http://www.quickfixengine.org/services.html</a></A><BR><BR> <HR> <DIV>I moved the client to another machine, ran wireshark, and I can see the TCP/IP fix message being sent.</DIV> <DIV> </DIV> <DIV>So, its the server. The server is also using quickfix. Is there a file where the tcp/ip messages are logged. For some reason the toApp method isn't being triggered but the Tcp/ip message is being sent.</DIV> <DIV> </DIV> <DIV>thanks,</DIV> <DIV>alex<BR><BR></DIV> <DIV class=gmail_quote>On Mon, Apr 21, 2008 at 10:52 AM, Alex McFerron <<A onclick="Popup.composeWindow('pcompose.php?sendto=alexmcferron%40gmail.com');; return false;" href="mailto:ale...@gm..." target=_blank><a href="mailto:ale...@gm...">ale...@gm...</a></A>> wrote:<BR> <BLOCKQUOTE class=gmail_quote style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid"> <DIV>I have a client that is sending a security defin request and this message is in the body file.</DIV> <DIV> </DIV> <DIV>However, the server isn't receiving it. This is all on one machine so I can't see the traffic in wireshark.</DIV> <DIV> </DIV> <DIV>So, if I see the message in teh body file, is it safe to say it was sent over the socket to the server? is it safe to say to say that the server is having the issue?</DIV> <DIV> </DIV> <DIV>cheers,</DIV> <DIV>alex</DIV></BLOCKQUOTE></DIV><BR> <HR> -------------------------------------------------------------------------<BR>This <a href="http://SF.net">SF.net</a> email is sponsored by the 2008 JavaOne(SM) Conference <BR>Don't miss this year's exciting event. There's still time to save $100. <BR>Use priority code J8TL2D2. <BR><A href="http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone" target=_blank><a href="http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone">http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone</a></A> <HR> _______________________________________________<BR>Quickfix-developers mailing list<BR><A onclick="Popup.composeWindow('pcompose.php?sendto=Quickfix-developers%40lists.sourceforge.net'); return false;" href="#Compose">Quickfix-developers<B></B>@lists.sourceforge.net</A><BR><A href="https://lists.sourceforge.net/lists/listinfo/quickfix-developers" target=_blank><a href="https://lists.sourceforge.net/lists/listinfo/quickfix-developers">https://lists.sourceforge.net/lists/listinfo/quickfix-developers</a></A> </BLOCKQUOTE></body></html> |
From: <or...@qu...> - 2008-04-21 20:01:24
|
<html><body>Not neccesarily. If a message is in the body file it just means that the message has either been sent, or will be sent at the next available opportunity. If you want to see if messages went over the wire, the log file is your best bet. There is no mechanism within fix to know whether a counterparty has succesfully received a message.<BR><BR> <BLOCKQUOTE style="PADDING-LEFT: 8px; MARGIN-LEFT: 8px; BORDER-LEFT: blue 2px solid" webmail="1">-------- Original Message --------<BR>Subject: [Quickfix-developers] if message is in body file, was it sent?<BR>From: "Alex McFerron" <ale...@gm...><BR>Date: Mon, April 21, 2008 10:52 am<BR>To: <a href="mailto:qui...@li...">qui...@li...</a><BR><BR>QuickFIX Documentation: <A href="http://www.quickfixengine.org/quickfix/doc/html/index.html" target=_blank><a href="http://www.quickfixengine.org/quickfix/doc/html/index.html">http://www.quickfixengine.org/quickfix/doc/html/index.html</a></A><BR>QuickFIX Support: <A href="http://www.quickfixengine.org/services.html" target=_blank><a href="http://www.quickfixengine.org/services.html">http://www.quickfixengine.org/services.html</a></A><BR><BR> <HR> <DIV>I have a client that is sending a security defin request and this message is in the body file.</DIV> <DIV> </DIV> <DIV>However, the server isn't receiving it. This is all on one machine so I can't see the traffic in wireshark.</DIV> <DIV> </DIV> <DIV>So, if I see the message in teh body file, is it safe to say it was sent over the socket to the server? is it safe to say to say that the server is having the issue?</DIV> <DIV> </DIV> <DIV>cheers,</DIV> <DIV>alex</DIV> <HR> -------------------------------------------------------------------------<BR>This <a href="http://SF.net">SF.net</a> email is sponsored by the 2008 JavaOne(SM) Conference <BR>Don't miss this year's exciting event. There's still time to save $100. <BR>Use priority code J8TL2D2. <BR><A href="http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone" target=_blank><a href="http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone">http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone</a></A> <HR> _______________________________________________<BR>Quickfix-developers mailing list<BR><A onclick="Popup.composeWindow('pcompose.php?sendto=Quickfix-developers%40lists.sourceforge.net'); return false;" href="#Compose">Quickfix-developers<B></B>@lists.sourceforge.net</A><BR><A href="https://lists.sourceforge.net/lists/listinfo/quickfix-developers" target=_blank><a href="https://lists.sourceforge.net/lists/listinfo/quickfix-developers">https://lists.sourceforge.net/lists/listinfo/quickfix-developers</a></A> </BLOCKQUOTE></body></html> |
From: Xavier P. <xav...@lu...> - 2008-04-21 17:20:49
|
My mistake again, the initiator was trying to connect to a windows firewall and was getting a timout after 20sec. So the poll() method seems to solve our problems, we will digg deeper that way from inside a python thread. small other question, at the end of my loop, should i call acceptor.stop() ? (or clear() or del acceptor) to cleanup resources maintained by it ? Thanks a lot, Fugazy Xavier Pianet a écrit : > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > Result 1: > Well I just made a small trial with poll() on a SocketInitiator and it > seems to work OK, that is great. > But if i try it on a SocketAcceptor it seems that it will disconnect the > clients every 20sec (whatever the heartbeat > is configured to). any idea ? I can post the sample if it can help > > Result 3: > My mistake, it doesn't hog the cpu, just not realease the 'python > thread' after a time.sleep() for example. > > Thanks, > Fugazy > > or...@qu... a écrit : > >> Answer 1: >> There are three ways to run the engine. These are done via the >> start(), block(), and poll() calls. Poll will do what you are looking >> for I think. It will process any waiting events and then return, so >> you could run multiple message loops that way. >> >> Answer 2: >> There is currently no way to feed outside sockets into the QuickFIX >> event loop. This is something we can look into, you aren't the first >> to ask about this. >> Answer 3: >> I'm not entirely sure, but I am really curious as to why calling start >> is pegging your cpu. This should simply be blocking in another >> thread. There really shouldn't be anything going on with the cpu >> unless there are events to process. Any idea what is going on here? >> >> So question 1: >> Is there a way to 'step' the fix engine, ie something in the path of >> ----- >> acceptor = fix.SocketInitiator( application, storeFactory, >> settings, logFactory ) >> acceptor.start() >> while acceptor.isRunning(): >> acceptor.step() >> acceptor.stop() >> Question 2: >> is it possible to 'feed' the fix engine, ie i take care of all the >> socket work >> (open/accept/read/write) and feed the SocketInitiator/SocketAcceptor >> with the >> the one thing i can see that gives problem would be a 'callback' for >> it to >> write data to the socket. >> ----- >> acceptor = fix.SocketInitiator( application, storeFactory, >> settings, logFactory ) >> acceptor.setWriteCallback(myWriteCallback) >> acceptor.start() >> -- manage my sockets and read data from it into socketData >> if acceptor.isRunning(): >> acceptor.data(socketData) >> >> Question 3: >> any other approach that will help me get the QuickFix event loop >> coexist peacefully >> with twisted or wxPython >> >> BTW we have developper resources to devote to this pb, and i think >> it would >> be more interesting to solve this pb in QuickFix, than to redevelop >> (once more) our own >> python version of it (we only have 8 messages to implement and >> doing it from >> what we h ave in pure python should be in the 10-15 days work) >> >> > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by the 2008 JavaOne(SM) Conference > Don't miss this year's exciting event. There's still time to save $100. > Use priority code J8TL2D2. > http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > > |
From: Xavier P. <xav...@lu...> - 2008-04-21 16:44:30
|
Result 1: Well I just made a small trial with poll() on a SocketInitiator and it seems to work OK, that is great. But if i try it on a SocketAcceptor it seems that it will disconnect the clients every 20sec (whatever the heartbeat is configured to). any idea ? I can post the sample if it can help Result 3: My mistake, it doesn't hog the cpu, just not realease the 'python thread' after a time.sleep() for example. Thanks, Fugazy or...@qu... a écrit : > Answer 1: > There are three ways to run the engine. These are done via the > start(), block(), and poll() calls. Poll will do what you are looking > for I think. It will process any waiting events and then return, so > you could run multiple message loops that way. > > Answer 2: > There is currently no way to feed outside sockets into the QuickFIX > event loop. This is something we can look into, you aren't the first > to ask about this. > Answer 3: > I'm not entirely sure, but I am really curious as to why calling start > is pegging your cpu. This should simply be blocking in another > thread. There really shouldn't be anything going on with the cpu > unless there are events to process. Any idea what is going on here? > > So question 1: > Is there a way to 'step' the fix engine, ie something in the path of > ----- > acceptor = fix.SocketInitiator( application, storeFactory, > settings, logFactory ) > acceptor.start() > while acceptor.isRunning(): > acceptor.step() > acceptor.stop() > Question 2: > is it possible to 'feed' the fix engine, ie i take care of all the > socket work > (open/accept/read/write) and feed the SocketInitiator/SocketAcceptor > with the > the one thing i can see that gives problem would be a 'callback' for > it to > write data to the socket. > ----- > acceptor = fix.SocketInitiator( application, storeFactory, > settings, logFactory ) > acceptor.setWriteCallback(myWriteCallback) > acceptor.start() > -- manage my sockets and read data from it into socketData > if acceptor.isRunning(): > acceptor.data(socketData) > > Question 3: > any other approach that will help me get the QuickFix event loop > coexist peacefully > with twisted or wxPython > > BTW we have developper resources to devote to this pb, and i think > it would > be more interesting to solve this pb in QuickFix, than to redevelop > (once more) our own > python version of it (we only have 8 messages to implement and > doing it from > what we h ave in pure python should be in the 10-15 days work) > |
From: Alex M. <ale...@gm...> - 2008-04-21 16:29:06
|
I moved the client to another machine, ran wireshark, and I can see the TCP/IP fix message being sent. So, its the server. The server is also using quickfix. Is there a file where the tcp/ip messages are logged. For some reason the toApp method isn't being triggered but the Tcp/ip message is being sent. thanks, alex On Mon, Apr 21, 2008 at 10:52 AM, Alex McFerron <ale...@gm...> wrote: > I have a client that is sending a security defin request and this message > is in the body file. > > However, the server isn't receiving it. This is all on one machine so I > can't see the traffic in wireshark. > > So, if I see the message in teh body file, is it safe to say it was sent > over the socket to the server? is it safe to say to say that the server is > having the issue? > > cheers, > alex > |
From: Alex M. <ale...@gm...> - 2008-04-21 15:52:30
|
I have a client that is sending a security defin request and this message is in the body file. However, the server isn't receiving it. This is all on one machine so I can't see the traffic in wireshark. So, if I see the message in teh body file, is it safe to say it was sent over the socket to the server? is it safe to say to say that the server is having the issue? cheers, alex |
From: <or...@qu...> - 2008-04-21 15:11:32
|
<html><body><div>Answer 1:</div> <div>There are three ways to run the engine. These are done via the start(), block(), and poll() calls. Poll will do what you are looking for I think. It will process any waiting events and then return, so you could run multiple message loops that way.</div> <div> </div> <div>Answer 2:</div> <div>There is currently no way to feed outside sockets into the QuickFIX event loop. This is something we can look into, you aren't the first to ask about this.<BR></div> <div>Answer 3:<BR>I'm not entirely sure, but I am really curious as to why calling start is pegging your cpu. This should simply be blocking in another thread. There really shouldn't be anything going on with the cpu unless there are events to process. Any idea what is going on here?</div> <BLOCKQUOTE style="PADDING-LEFT: 8px; MARGIN-LEFT: 8px; BORDER-LEFT: blue 2px solid" webmail="1"> <div>So question 1:<BR>Is there a way to 'step' the fix engine, ie something in the path of<BR>-----<BR>acceptor = fix.SocketInitiator( application, storeFactory, <BR>settings, logFactory )<BR>acceptor.start()<BR>while acceptor.isRunning():<BR>acceptor.step()<BR>acceptor.stop()<BR></div> <div>Question 2:<BR>is it possible to 'feed' the fix engine, ie i take care of all the <BR>socket work<BR>(open/accept/read/write) and feed the SocketInitiator/SocketAcceptor <BR>with the<BR>the one thing i can see that gives problem would be a 'callback' for <BR>it to<BR>write data to the socket.<BR>-----<BR>acceptor = fix.SocketInitiator( application, storeFactory, <BR>settings, logFactory )<BR>acceptor.setWriteCallback(myWriteCallback)<BR>acceptor.start()<BR>-- manage my sockets and read data from it into socketData<BR>if acceptor.isRunning():<BR>acceptor.data(socketData)<BR><BR>Question 3:<BR>any other approach that will help me get the QuickFix event loop <BR>coexist peacefully<BR>with twisted or wxPython<BR><BR>BTW we have developper resources to devote to this pb, and i think it would<BR>be more interesting to solve this pb in QuickFix, than to redevelop <BR>(once more) our own<BR>python version of it (we only have 8 messages to implement and doing it from<BR>what we have in pure python should be in the 10-15 days work)</div></BLOCKQUOTE></body></html> |
From: Xavier P. <xav...@lu...> - 2008-04-21 14:49:39
|
Hello List, This is my first post to the list and i have a bunch of questions. If this is not the correct list to post please tell me so i post it in quickfix-users As an introduction, i'm new to QuickFix but not to Fix. We have been using our own C++ fix engine that is not very easy to maintain and make evolutive and we are willing to replace it with QuickFix. This should not give us to much headaches in the C++ world but my problem right now is related to the python wrappers. We are using the QuickFix python wrappers and would like to use them in a wxPython application. The trouble comes from the fact that both wxPython and QuickFix have their own event loop. I read some previous thread about the peacefull coexistence of twisted and the python wrappers, but didn't get the end conclusion (works on linux only?) (Integrate socket connections into application-wide async socket loop) (QuickFIX Python and Twisted) (AHA! : QuickFIX Python and Twisted) We managed to build the python wrappers under windows and we noticed the following : we do get out of fix.SocketInitiator().start() but right after the next system call after that the fix.SocketInitiator event loop take all the cpu. So question 1: Is there a way to 'step' the fix engine, ie something in the path of ----- acceptor = fix.SocketInitiator( application, storeFactory, settings, logFactory ) acceptor.start() while acceptor.isRunning(): acceptor.step() acceptor.stop() Question 2: is it possible to 'feed' the fix engine, ie i take care of all the socket work (open/accept/read/write) and feed the SocketInitiator/SocketAcceptor with the the one thing i can see that gives problem would be a 'callback' for it to write data to the socket. ----- acceptor = fix.SocketInitiator( application, storeFactory, settings, logFactory ) acceptor.setWriteCallback(myWriteCallback) acceptor.start() -- manage my sockets and read data from it into socketData if acceptor.isRunning(): acceptor.data(socketData) Question 3: any other approach that will help me get the QuickFix event loop coexist peacefully with twisted or wxPython BTW we have developper resources to devote to this pb, and i think it would be more interesting to solve this pb in QuickFix, than to redevelop (once more) our own python version of it (we only have 8 messages to implement and doing it from what we have in pure python should be in the 10-15 days work) plateform : Python2.4 win32 QuickFix 1.12.4 (stock) Any pointer(s) would be greatly appreciated. Thanks, Fugazy |
From: Nick R. <nic...@gm...> - 2008-04-18 23:43:05
|
Not sure if this is only effecting me or others as well but can you guys please post your messages in plain text As you may notice in the mailed out lists some message are completely missing and replaced by... "An HTML attachment was scrubbed..." Kinda hard to read a message (apologies it this message gets to you as html and is in itself scrubbed) thanks |
From: <or...@qu...> - 2008-04-18 16:22:35
|
<html><body><div>Yeah, that shold probably be changed. Especially since it is quite conceivable QuickFIX could compile under mono. Anyone tried this?<BR></div> <div>--oren</div> <BLOCKQUOTE style="PADDING-LEFT: 8px; MARGIN-LEFT: 8px; BORDER-LEFT: blue 2px solid" webmail="1">-------- Original Message --------<BR>Subject: [Quickfix-developers] .NET Source Directory Name<BR>From: Mike Perik <mic...@ya...><BR>Date: Fri, April 18, 2008 8:27 am<BR>To: <a href="mailto:qui...@li...">qui...@li...</a><BR><BR>QuickFIX Documentation: <A href="http://www.quickfixengine.org/quickfix/doc/html/index.html" target=_blank><a href="http://www.quickfixengine.org/quickfix/doc/html/index.html">http://www.quickfixengine.org/quickfix/doc/html/index.html</a></A><BR>QuickFIX Support: <A href="http://www.quickfixengine.org/services.html" target=_blank><a href="http://www.quickfixengine.org/services.html">http://www.quickfixengine.org/services.html</a></A><BR><BR>Ran across a somewhat funny issue, I was looking for the .NET source under the quickfix/src directory and couldn't find it. This morning I just so happened to be extracting the QuickFix source and saw the file under the .NET directory go pass on my terminal. The issue is that I'm on linux and the .NET directory is hidden because the name starts with a '.'. I know .NET is a MS technology but someone might want to try to use Mono on linux. Maybe it's appropriate for the .NET directory to be hidden on linux/unix machines...<BR><BR>Maybe the directory could be name dotNET?<BR><BR>Mike<BR><BR><BR><BR><BR>____________________________________________________________________________________<BR>Be a better friend, newshound, and <BR>know-it-all with Yahoo! Mobile. Try it now. <A href="http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ" target=_blank><a href="http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ">http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ</a></A><BR><BR>-------------------------------------------------------------------------<BR>This <a href="http://SF.net">SF.net</a> email is sponsored by the 2008 JavaOne(SM) Conference <BR>Don't miss this year's exciting event. There's still time to save $100. <BR>Use priority code J8TL2D2. <BR><A href="http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone" target=_blank><a href="http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone">http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone</a></A><BR>_______________________________________________<BR>Quickfix-developers mailing list<BR><A onclick="Popup.composeWindow('pcompose.php?sendto=Quickfix-developers%40lists.sourceforge.net'); return false;" href="#Compose">Quickfix-developers<B></B>@lists.sourceforge.net</A><BR><A href="https://lists.sourceforge.net/lists/listinfo/quickfix-developers" target=_blank><a href="https://lists.sourceforge.net/lists/listinfo/quickfix-developers">https://lists.sourceforge.net/lists/listinfo/quickfix-developers</a></A><BR></BLOCKQUOTE></body></html> |
From: <or...@qu...> - 2008-04-18 16:20:37
|
<html><body><div>Indeed, looks like we are still using blocking sockets in the threaded implementation. Would you mind resubmitting your changes? I thought we had upgraded it.</div> <div> </div> <div>--oren</div> <BLOCKQUOTE style="PADDING-LEFT: 8px; MARGIN-LEFT: 8px; BORDER-LEFT: blue 2px solid" webmail="1">-------- Original Message --------<BR>Subject: Re: [Quickfix-developers] Weird system freeze<BR>From: "Djalma Rosa dos Santos Filho" <drs...@gm...><BR>Date: Thu, April 17, 2008 8:15 pm<BR>To: <a href="mailto:qui...@li...">qui...@li...</a><BR><BR>QuickFIX Documentation: <A href="http://www.quickfixengine.org/quickfix/doc/html/index.html" target=_blank><a href="http://www.quickfixengine.org/quickfix/doc/html/index.html">http://www.quickfixengine.org/quickfix/doc/html/index.html</a></A><BR>QuickFIX Support: <A href="http://www.quickfixengine.org/services.html" target=_blank><a href="http://www.quickfixengine.org/services.html">http://www.quickfixengine.org/services.html</a></A><BR><BR> <HR> Hi John,<BR><BR>I guess that your QFRouter have hung because the ThreadedSocketAcceptor is implemented using a blocking socket. The connection is not broken, but the modal dialog in your client is preventing the tcp ack. QFRouter will keep frozen until QFClient sends some kind of receiving confirmation, which in your case will happen only when someone closes the modal dialog.<BR><BR>If you have QF 1.12.4 you can use the SocketAcceptor to try to solve this problem.<BR><BR>Because of performance issues, I preferred to make my own non-blocking implementation which I have already submitted.<BR><BR>Djalma<BR><BR> <DIV class=gmail_quote>On Thu, Apr 17, 2008 at 12:45 PM, John Haldi <<A onclick="Popup.composeWindow('pcompose.php?sendto=jrhaldi%40yahoo.com');; return false;" href="mailto:jr...@ya..." target=_blank><a href="mailto:jr...@ya...">jr...@ya...</a></A>> wrote:<BR> <BLOCKQUOTE class=gmail_quote style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">QuickFIX Documentation: <A href="http://www.quickfixengine.org/quickfix/doc/html/index.html" target=_blank><a href="http://www.quickfixengine.org/quickfix/doc/html/index.html">http://www.quickfixengine.org/quickfix/doc/html/index.html</a></A><BR>QuickFIX Support: <A href="http://www.quickfixengine.org/services.html" target=_blank><a href="http://www.quickfixengine.org/services.html">http://www.quickfixengine.org/services.html</a></A><BR><BR><BR> <DIV> <DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman,new york,times,serif"> <DIV> <DIV><SPAN><FONT face=Arial size=2>I had an interesting scenario happen here and was wondering if somebody could sanity check whether what I think happened actually happened, and if so what I might be able to do to handle this scenario if it pops up again. Here's the details:</FONT></SPAN></DIV> <DIV><SPAN></SPAN> </DIV> <DIV><SPAN><FONT face=Arial size=2>I have an application (QFrouter) which goes out and connects to 6 source systems (brokers/exchanges) using the threadedSocketInitiator. It also allows connections from 20+ client apps (QFclient) using the threadedSocketAcceptor. When a message comes in from an exchange/broker, I handle the callback and check certain fields in the message and determine which of my client apps should get a copy. I then send a copy of this incoming message to each of my clients by "rewiring" the sendercompid and the targetcompid and fan copies out to each client using the SendToTarget method.</FONT></SPAN></DIV> <DIV><SPAN></SPAN> </DIV> <DIV><SPAN><FONT face=Arial size=2>So far, all of this has worked fine (up until today). [The above process may not be the best way to do this, and I'd love to hear from somebody if this is a dumb way to do this, but that isn't my question right now.]</FONT></SPAN></DIV> <DIV><SPAN></SPAN> </DIV> <DIV><SPAN><FONT face=Arial size=2>Today a message came in from an exchange connection (ARCA1) and my code proceeded to send copies to each of my client apps. It got through the first 3 client apps and then tried to send to the 4th client app on my list of clients. At this point the client app in question ran out of disk space on the client workstation, resulting in a modal pop-up dialog box appearing on the client workstations saying "out of disk space". (One important factoid is that I didn't know the client workstation was stuck with a modal dialog box being displayed at this point. Might be relevant later in the story.)</FONT></SPAN></DIV> <DIV><SPAN></SPAN> </DIV> <DIV><SPAN><FONT face=Arial size=2>Once this happened, the thread in my QFrouter seems to have hung. The connection to ARCA1 eventually dropped when I didn't respond to a heartbeat, but my QFrouter never recovered, and eventually I had to kill the process and bounce QFrouter. Once I bounced QFrouter, I reconnected to ARCA1 and messages started flowing. As soon as I received a message that needed to be copied to client #4, my QFrouter hung again. At this point we discovered that client #4 had a modal dialog freezing the app. As soon as we deleted some files (freeing up sdisk space) from client workstation #4 and pressed ok on the modal dialog, messages started flowing to the client app and my QFrouter got "unstuck".</FONT></SPAN></DIV> <DIV><SPAN></SPAN> </DIV> <DIV><SPAN><FONT face=Arial size=2>In digging into my logs, it appears that the modal dialog was created by a generic exception handler in my client app (QFclient), and was triggered within the onMessage callback when either the QF engine or my app (unclear which) attempted to log the incoming message. With hindsight, I will of course handle this scenario in QFclient in a more graceful manner.</FONT></SPAN></DIV> <DIV><SPAN></SPAN> </DIV> <DIV><SPAN><FONT face=Arial size=2>But what I'm really curious about is whether QFrouter should have handled the fact that client #4 wasn't responding. I would have thought that in this scenario the QF engine in QFrouter should have recognized that client #4 wasn't responding and dropped that conenction wtihin the threadedSocketAcceptor and moved on -- or at least thrown an exception of some sort. But it didn't - it simply seems to have frozen on that thread. Meanwhile, messages continued to be processed coming in from the other exchanges/brokers on the threadedSocketInitiator and passing those messages on to clients.</FONT></SPAN></DIV> <DIV><SPAN></SPAN> </DIV> <DIV><SPAN><FONT face=Arial size=2>Am I correct in thinking that my QFrouter should have handled this scenario more gracefully? If so, should I have coded differently to expect this scenario? Should an exception of some sort been thrown by the QF engine?</FONT></SPAN></DIV> <DIV><SPAN></SPAN> </DIV> <DIV><SPAN><FONT face=Arial size=2>For reference, both QFrouter and QFclient are VB .NET 2005 apps, and both have the generic binary .dll that ships with QF, runtime version 2.0.50727, version 1.0.2447.42056. Both apps have been running happily for months, but this is the first time we had a disk space error.</FONT></SPAN></DIV> <DIV><SPAN></SPAN> </DIV> <DIV><SPAN><FONT face=Arial size=2>If anybody has any thoughts on this I'd greatly appreciate it.</FONT></SPAN></DIV> <DIV><SPAN></SPAN> </DIV> <DIV><SPAN><FONT face=Arial size=2>Many thanks,</FONT></SPAN></DIV> <DIV><SPAN></SPAN> </DIV> <DIV><SPAN><FONT face=Arial size=2> John</FONT></SPAN></DIV> <DIV><SPAN></SPAN><BR></DIV></DIV></DIV></DIV><BR>-------------------------------------------------------------------------<BR>This <a href="http://SF.net">SF.net</a> email is sponsored by the 2008 JavaOne(SM) Conference<BR>Don't miss this year's exciting event. There's still time to save $100.<BR>Use priority code J8TL2D2.<BR><A href="http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone" target=_blank><a href="http://ad.doubleclick.net/clk;198757673;13503038;p?">http://ad.doubleclick.net/clk;198757673;13503038;p?</a><A href="http://java.sun.com/javaone" target=_blank><a href="http://java.sun.com/javaone">http://java.sun.com/javaone</a></A></A><BR>_______________________________________________<BR>Quickfix-developers mailing list<BR><A onclick="Popup.composeWindow('pcompose.php?sendto=Quickfix-developers%40lists.sourceforge.net');; return false;" href="mailto:Qui...@li..." target=_blank><a href="mailto:Qui...@li...">Qui...@li...</a></A><BR><A href="https://lists.sourceforge.net/lists/listinfo/quickfix-developers" target=_blank><a href="https://lists.sourceforge.net/lists/listinfo/quickfix-developers">https://lists.sourceforge.net/lists/listinfo/quickfix-developers</a></A><BR></BLOCKQUOTE></DIV><BR> <HR> -------------------------------------------------------------------------<BR>This <a href="http://SF.net">SF.net</a> email is sponsored by the 2008 JavaOne(SM) Conference <BR>Don't miss this year's exciting event. There's still time to save $100. <BR>Use priority code J8TL2D2. <BR><A href="http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone" target=_blank><a href="http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone">http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone</a></A> <HR> _______________________________________________<BR>Quickfix-developers mailing list<BR><A onclick="Popup.composeWindow('pcompose.php?sendto=Quickfix-developers%40lists.sourceforge.net'); return false;" href="#Compose">Quickfix-developers<B></B>@lists.sourceforge.net</A><BR><A href="https://lists.sourceforge.net/lists/listinfo/quickfix-developers" target=_blank><a href="https://lists.sourceforge.net/lists/listinfo/quickfix-developers">https://lists.sourceforge.net/lists/listinfo/quickfix-developers</a></A> </BLOCKQUOTE></body></html> |
From: <or...@qu...> - 2008-04-18 16:08:34
|
<html><body><div>Well, first, I wonder what release version of QF you are using. I can see this happening with some of the old code which used blocking sockets, but we have since switched to non-blocking sockets so I wouldn't expect to see this with more recent releases. Before discussing possible changes to your software, do you know from which release you got the DLLs?</div> <div> </div> <div>--oren</div> <BLOCKQUOTE style="PADDING-LEFT: 8px; MARGIN-LEFT: 8px; BORDER-LEFT: blue 2px solid" webmail="1">-------- Original Message --------<BR>Subject: [Quickfix-developers] Weird system freeze<BR>From: John Haldi <jr...@ya...><BR>Date: Thu, April 17, 2008 10:45 am<BR>To: <a href="mailto:qui...@li...">qui...@li...</a><BR><BR>QuickFIX Documentation: <A href="http://www.quickfixengine.org/quickfix/doc/html/index.html" target=_blank><a href="http://www.quickfixengine.org/quickfix/doc/html/index.html">http://www.quickfixengine.org/quickfix/doc/html/index.html</a></A><BR>QuickFIX Support: <A href="http://www.quickfixengine.org/services.html" target=_blank><a href="http://www.quickfixengine.org/services.html">http://www.quickfixengine.org/services.html</a></A><BR><BR> <HR> <STYLE type=text/css> #wmMessage DIV {margin:0px;} </STYLE> <DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif"> <DIV> <DIV><SPAN class=406321315-17042008><FONT face=Arial size=2>I had an interesting scenario happen here and was wondering if somebody could sanity check whether what I think happened actually happened, and if so what I might be able to do to handle this scenario if it pops up again. Here's the details:</FONT></SPAN></DIV> <DIV><SPAN class=406321315-17042008></SPAN> </DIV> <DIV><SPAN class=406321315-17042008><FONT face=Arial size=2>I have an application (QFrouter) which goes out and connects to 6 source systems (brokers/exchanges) using the threadedSocketInitiator. It also allows connections from 20+ client apps (QFclient) using the threadedSocketAcceptor. When a message comes in from an exchange/broker, I handle the callback and check certain fields in the message and determine which of my client apps should get a copy. I then send a copy of this incoming message to each of my clients by "rewiring" the sendercompid and the targetcompid and fan copies out to each client using the SendToTarget method.</FONT></SPAN></DIV> <DIV><SPAN class=406321315-17042008></SPAN> </DIV> <DIV><SPAN class=406321315-17042008><FONT face=Arial size=2>So far, all of this has worked fine (up until today). [The above process may not be the best way to do this, and I'd love to hear from somebody if this is a dumb way to do this, but that isn't my question right now.]</FONT></SPAN></DIV> <DIV><SPAN class=406321315-17042008></SPAN> </DIV> <DIV><SPAN class=406321315-17042008><FONT face=Arial size=2>Today a message came in from an exchange connection (ARCA1) and my code proceeded to send copies to each of my client apps. It got through the first 3 client apps and then tried to send to the 4th client app on my list of clients. At this point the client app in question ran out of disk space on the client workstation, resulting in a modal pop-up dialog box appearing on the client workstations saying "out of disk space". (One important factoid is that I didn't know the client workstation was stuck with a modal dialog box being displayed at this point. Might be relevant later in the story.)</FONT></SPAN></DIV> <DIV><SPAN class=406321315-17042008></SPAN> </DIV> <DIV><SPAN class=406321315-17042008><FONT face=Arial size=2>Once this happened, the thread in my QFrouter seems to have hung. The connection to ARCA1 eventually dropped when I didn't respond to a heartbeat, but my QFrouter never recovered, and eventually I had to kill the process and bounce QFrouter. Once I bounced QFrouter, I reconnected to ARCA1 and messages started flowing. As soon as I received a message that needed to be copied to client #4, my QFrouter hung again. At this point we discovered that client #4 had a modal dialog freezing the app. As soon as we deleted some files (freeing up sdisk space) from client workstation #4 and pressed ok on the modal dialog, messages started flowing to the client app and my QFrouter got "unstuck".</FONT></SPAN></DIV> <DIV><SPAN class=406321315-17042008></SPAN> </DIV> <DIV><SPAN class=406321315-17042008><FONT face=Arial size=2>In digging into my logs, it appears that the modal dialog was created by a generic exception handler in my client app (QFclient), and was triggered within the onMessage callback when either the QF engine or my app (unclear which) attempted to log the incoming message. With hindsight, I will of course handle this scenario in QFclient in a more graceful manner.</FONT></SPAN></DIV> <DIV><SPAN class=406321315-17042008></SPAN> </DIV> <DIV><SPAN class=406321315-17042008><FONT face=Arial size=2>But what I'm really curious about is whether QFrouter should have handled the fact that client #4 wasn't responding. I would have thought that in this scenario the QF engine in QFrouter should have recognized that client #4 wasn't responding and dropped that conenction wtihin the threadedSocketAcceptor and moved on -- or at least thrown an exception of some sort. But it didn't - it simply seems to have frozen on that thread. Meanwhile, messages continued to be processed coming in from the other exchanges/brokers on the threadedSocketInitiator and passing those messages on to clients.</FONT></SPAN></DIV> <DIV><SPAN class=406321315-17042008></SPAN> </DIV> <DIV><SPAN class=406321315-17042008><FONT face=Arial size=2>Am I correct in thinking that my QFrouter should have handled this scenario more gracefully? If so, should I have coded differently to expect this scenario? Should an exception of some sort been thrown by the QF engine?</FONT></SPAN></DIV> <DIV><SPAN class=406321315-17042008></SPAN> </DIV> <DIV><SPAN class=406321315-17042008><FONT face=Arial size=2>For reference, both QFrouter and QFclient are VB .NET 2005 apps, and both have the generic binary .dll that ships with QF, runtime version 2.0.50727, version 1.0.2447.42056. Both apps have been running happily for months, but this is the first time we had a disk space error.</FONT></SPAN></DIV> <DIV><SPAN class=406321315-17042008></SPAN> </DIV> <DIV><SPAN class=406321315-17042008><FONT face=Arial size=2>If anybody has any thoughts on this I'd greatly appreciate it.</FONT></SPAN></DIV> <DIV><SPAN class=406321315-17042008></SPAN> </DIV> <DIV><SPAN class=406321315-17042008><FONT face=Arial size=2>Many thanks,</FONT></SPAN></DIV> <DIV><SPAN class=406321315-17042008></SPAN> </DIV> <DIV><SPAN class=406321315-17042008><FONT face=Arial size=2> John</FONT></SPAN></DIV> <DIV><SPAN class=406321315-17042008></SPAN><BR></DIV></DIV></DIV> <HR> -------------------------------------------------------------------------<BR>This <a href="http://SF.net">SF.net</a> email is sponsored by the 2008 JavaOne(SM) Conference <BR>Don't miss this year's exciting event. There's still time to save $100. <BR>Use priority code J8TL2D2. <BR><A href="http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone" target=_blank><a href="http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone">http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone</a></A> <HR> _______________________________________________<BR>Quickfix-developers mailing list<BR><A onclick="Popup.composeWindow('pcompose.php?sendto=Quickfix-developers%40lists.sourceforge.net'); return false;" href="#Compose">Quickfix-developers<B></B>@lists.sourceforge.net</A><BR><A href="https://lists.sourceforge.net/lists/listinfo/quickfix-developers" target=_blank><a href="https://lists.sourceforge.net/lists/listinfo/quickfix-developers">https://lists.sourceforge.net/lists/listinfo/quickfix-developers</a></A> </BLOCKQUOTE></body></html> |
From: <or...@qu...> - 2008-04-18 16:03:59
|
<html><body><div>These both look pretty reasonable to me, some additional tests might be required to verify them. As for not listening on the socket, this is much more tricky. There is not a one to one relationship between a session and the listening socket. It is entirely possible one acceptor socket is servicing a few or even hundreds of waiting sessions. So I don't know if it is really feasible to tell a session to disable and at the same time shut the socket down. The best I can think is if the acceptor can determine that all waiting session are disabled, then we can stop listening on the socket. But this is pretty much equivalent to stopping the acceptor.<BR></div> <div>--oren</div> <BLOCKQUOTE style="PADDING-LEFT: 8px; MARGIN-LEFT: 8px; BORDER-LEFT: blue 2px solid" webmail="1">-------- Original Message --------<BR>Subject: [Quickfix-developers] stopping a single session<BR>From: "Mark T. Kennedy" <mke...@di...><BR>Date: Wed, April 16, 2008 10:29 am<BR>To: quickfix developers <<a href="mailto:qui...@li...urceforge">qui...@li...urceforge</a>.net><BR><BR>QuickFIX Documentation: <A href="http://www.quickfixengine.org/quickfix/doc/html/index.html" target=_blank><a href="http://www.quickfixengine.org/quickfix/doc/html/index.html">http://www.quickfixengine.org/quickfix/doc/html/index.html</a></A><BR>QuickFIX Support: <A href="http://www.quickfixengine.org/services.html" target=_blank><a href="http://www.quickfixengine.org/services.html">http://www.quickfixengine.org/services.html</a></A><BR><BR><BR>could those who really know the code comment on the following patch to Session.cpp<BR>(from the subversion trunk):<BR><BR>Index: Session.cpp<BR>===================================================================<BR>--- Session.cpp (revision 1944)<BR>+++ Session.cpp (working copy)<BR>@@ -213,6 +213,13 @@<BR>return;<BR>}<BR><BR>+ if( !isEnabled() )<BR>+ {<BR>+ m_state.onEvent( "Received logon but session is disabled" );<BR>+ disconnect();<BR>+ return;<BR>+ }<BR>+<BR>ResetSeqNumFlag resetSeqNumFlag(false);<BR>if( logon.isSetField(resetSeqNumFlag) )<BR>logon.getField( resetSeqNumFlag );<BR>@@ -305,7 +312,10 @@<BR>else<BR>m_state.onEvent( "Received logout response" );<BR><BR>- m_state.incrNextTargetMsgSeqNum();<BR>+ MsgSeqNum msgSeqNum;<BR>+ logout.getHeader ().getField (msgSeqNum);<BR>+ if (getExpectedTargetNum () == msgSeqNum)<BR>+ m_state.incrNextTargetMsgSeqNum();<BR>if ( m_resetOnLogout ) m_state.reset();<BR>disconnect();<BR><BR>the first hunk causes an acceptor to refuse logon attempts after stop() has been<BR>called on it. thus, calling stop() and then waiting for isLoggedOn() to return<BR>false guarantees no more fromApp() or fromAdmin() callbacks.<BR><BR>question: how do i prevent the acceptor from continuing to listen on the acceptor's<BR>port?<BR><BR>the second hunk fixes what i think is a bug (that others have reported as well) in<BR>that sequence numbers can be inadvertently consumed by logout messages that<BR>are received out of sequence.<BR><BR>all of the UT tests and the AT tests pass after this patch, although i don't know if the<BR>tests actually hit the new code.<BR><BR>i'm looking for someone (e.g. oren) to say "yeah, that looks right" or maybe "bogus!<BR>do this instead."<BR><BR>/mark kennedy<BR><BR>This communication and any attachments may contain confidential/proprietary information and is intended for information purposes only. It is not an invitation or offer to purchase interests from Diamondback. Any representation to the contrary is unintentional. This communication is intended only for the person(s) to whom it is addressed. If you are not the intended recipient you are hereby notified that you have received this document in error and that any review, dissemination, distribution, or copying of this message or any attachments is not permitted. If you have received this in error, please notify the sender immediately by e-mail and delete this message. All e-mails sent to or received from this address will be received by Diamondback's company e-mail system and is subject to archival and possible review by someone other than the recipient. This notice is automatically appended to each e-mail message leaving Diamondback.<BR><BR><BR>-------------------------------------------------------------------------<BR>This <a href="http://SF.net">SF.net</a> email is sponsored by the 2008 JavaOne(SM) Conference <BR>Don't miss this year's exciting event. There's still time to save $100. <BR>Use priority code J8TL2D2. <BR><A href="http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone" target=_blank><a href="http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone">http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone</a></A><BR>_______________________________________________<BR>Quickfix-developers mailing list<BR><A onclick="Popup.composeWindow('pcompose.php?sendto=Quickfix-developers%40lists.sourceforge.net'); return false;" href="#Compose">Quickfix-developers<B></B>@lists.sourceforge.net</A><BR><A href="https://lists.sourceforge.net/lists/listinfo/quickfix-developers" target=_blank><a href="https://lists.sourceforge.net/lists/listinfo/quickfix-developers">https://lists.sourceforge.net/lists/listinfo/quickfix-developers</a></A><BR></BLOCKQUOTE></body></html> |
From: Mike G. <mg...@co...> - 2008-04-18 15:46:04
|
You could install a cygwin environment <http://www.cygwin.com> and build quickfix with GCC. -- Mike Gatny Connamara Systems, LLC http://www.connamara.com/ |