quickfix-developers Mailing List for QuickFIX (Page 241)
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: Ramprakash U. <ram...@ca...> - 2004-06-09 08:51:40
|
Hi, Can anyone explain why I get error when I try to crack messages = fromAdmin using the following code Public Sub fromAdmin(ByVal QFmessage As QuickFix.Message, ByVal = QFSession As QuickFix.SessionID) Implements QuickFix.Application.fromAdmin 'Some code here '--- '--- '--- crack(QFmessage, QFSession) End Sub Public Overloads Overrides Sub onMessage(ByVal message As QuickFix42.TestRequest, ByVal session As QuickFix.SessionID) MsgBox(message.getTestReqID.getValue) End Sub The Error is, An unhandled exception of type 'QuickFix.UnsupportedMessageType' = occurred in quickfix_net_messages.dll in the code where I is crack command. I use QF 1.7.1 with Microsoft.NET 1.1/Windows 2003/VS.NET 2003 Thanks in advance, Ramprakash |
From: Sharma H. <sha...@ho...> - 2004-06-08 16:00:49
|
Hi, Is it possible to build the complete C++ code of QuickFix with the compiler and build tools provided on Solaris 8 machines, without the use of any of GNU tools or libraries? Would the above be possible by just changing the makefiles in the project or more work would be needed? Himanshu _________________________________________________________________ Help your child stay a topper. With a zenith topper PC. http://server1.msn.co.in/sp04/zenith/ Enter the zenith contest now! |
From: Sharma H. <sha...@ho...> - 2004-06-08 15:57:26
|
Vijay, The error comes at the time of linker (ild), therefore it may not be question of header file being missed. Himanshu >From: "Vijay Singh Yadav" <vy...@op...> >To: <qui...@li...> >Subject: [Quickfix-developers] RE: Quickfix-developers digest, Vol 1 #494 - >1 msg >Date: Mon, 7 Jun 2004 08:38:21 -0500 > >Himanshu, > I work mostly on Windows platform. But it is clear that you are not >including STL headers. > >-- vijay > > -----Original Message----- > From: qui...@li... >[mailto:qui...@li...] > Sent: Sun 6/6/2004 10:05 PM > To: qui...@li... > Cc: > Subject: Quickfix-developers digest, Vol 1 #494 - 1 msg > > > > Send Quickfix-developers mailing list submissions to > qui...@li... > > To subscribe or unsubscribe via the World Wide Web, visit > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > or, via email, send a message with subject or body 'help' to > qui...@li... > > You can reach the person managing the list at > qui...@li... > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of Quickfix-developers digest..." > > > QuickFIX Documentation: >http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX FAQ: http://www.quickfixengine.org/quickfix/doc/html/FAQ.html > > Today's Topics: > > 1. Compilation errors (Sharma Himanshu) > > --__--__-- > > Message: 1 > From: "Sharma Himanshu" <sha...@ho...> > To: qui...@li... > Date: Sun, 06 Jun 2004 18:35:20 +0000 > Subject: [Quickfix-developers] Compilation errors > > Hi, > > Could someone please tell me what are the correct libraries required to >link > quickfix code on Solaris 8 machine. > > I am getting error of type: > ild:symbol undefine-> std::pair<rw::.... > > Thanks in advance. > > Himanshu > > _________________________________________________________________ > Get head-hunted by 10,000 recruiters. http://go.msnserver.com/IN/46246.asp > Post your CV on naukri.com today. > > > > > --__--__-- > > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > > > End of Quickfix-developers Digest > > ><< winmail.dat >> _________________________________________________________________ Get head-hunted by 10,000 recruiters. http://go.msnserver.com/IN/46246.asp Post your CV on naukri.com today. |
From: Oren M. <or...@qu...> - 2004-06-08 14:36:40
|
Session::sendToTarget will return true if the socket was able to successfully send the message, false if not. Either way, the message will always be placed in the store in case a resend request is required. --oren On Jun 8, 2004, at 6:49 AM, Ramprakash Umapathy wrote: > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX FAQ: > http://www.quickfixengine.org/quickfix/doc/html/FAQ.htmlHi, > > Can anyone explain me how to find a message let us say newordersingle > is > sent properly or still lies in the FileStorePath Folder name that we > specify > in the configuration file. > > TIA, > Ramprakash > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: GNOME Foundation > Hackers Unite! GUADEC: The world's #1 Open Source Desktop Event. > GNOME Users and Developers European Conference, 28-30th June in Norway > http://2004/guadec.org > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > |
From: Oren M. <or...@qu...> - 2004-06-08 14:29:53
|
You would type ./configure --with-mysql=3D/usr As for creating the database, there is a script that does this called=20 create_mysql.sh in the src/sql directory. Just run this and it will=20 construct a database called quickfix with all the necessary tables. As for Postgres, we do not currently have support for that. We went=20 with MySQL first because it's a little easier to use (i think anyway),=20= and is blazing fast. I'd would like to add support for Postgres, which=20= would require Postgres implementations for the MessageStore and Log. --oren On Jun 8, 2004, at 7:37 AM, Clark Sims wrote: > I am using debian linux, sarge > which mysql returns > /usr/bin/mysql > =A0 > so should I type ./configure --with-mysql=3D/usr/bin=A0=A0 ? > > Do you Yahoo!? > Friends. Fun. Try the all-new Yahoo! Messenger= |
From: Clark S. <cla...@ya...> - 2004-06-08 12:37:17
|
I am using debian linux, sarge which mysql returns /usr/bin/mysql so should I type ./configure --with-mysql=/usr/bin ? --------------------------------- Do you Yahoo!? Friends. Fun. Try the all-new Yahoo! Messenger |
From: Clark S. <cla...@ya...> - 2004-06-08 12:22:19
|
I have postgresql installed on my machines, is it possible to log the messages into a postgresql database? I have never used mysql before. I assume that if I want to have my messages stored in a mysql database, I just need to run configure --with-mysql Once I run configure --with-mysql, make, and make install, how do I log the session messages? Is the database automatically created? Thanks in Advance, Clark --------------------------------- Do you Yahoo!? Friends. Fun. Try the all-new Yahoo! Messenger |
From: Ramprakash U. <ram...@ca...> - 2004-06-08 11:49:57
|
Hi, Can anyone explain me how to find a message let us say newordersingle is sent properly or still lies in the FileStorePath Folder name that we = specify in the configuration file. TIA, Ramprakash |
From: Dinesh B. <Din...@in...> - 2004-06-08 08:19:15
|
HI can u tell me more about session management in quick fix.. basically i want to know how to create a session object once the user is = logged in to the server.at later point of time how to invalidate the = session. how to disconnect and connect to the system.. dinesh. > NOTICE > This e-mail message and any attachments, which may contain = confidential information, are to be viewed solely by the intended = recipient of Integral Development Corp. If the reader of this message = is not the intended recipient, you are hereby notified that any use, = dissemination, distribution or copying of this communication is strictly = prohibited. If you have received this message in error, please = immediately notify the sender and delete the mail and all attachments. >=20 |
From: Dinesh B. <Din...@in...> - 2004-06-08 08:15:14
|
HI can u tell me more about session management in quick fix.. basically i want to know how to create a session object once the user is = logged in to the server.at later point of time how to invalidate the = session. how to disconnect and connect to the system.. dinesh. > NOTICE > This e-mail message and any attachments, which may contain = confidential information, are to be viewed solely by the intended = recipient of Integral Development Corp. If the reader of this message = is not the intended recipient, you are hereby notified that any use, = dissemination, distribution or copying of this communication is strictly = prohibited. If you have received this message in error, please = immediately notify the sender and delete the mail and all attachments. >=20 |
From: Clark S. <cla...@ya...> - 2004-06-07 19:49:49
|
In the querycancelreplace41 function, somehow Price and Quantity were not being added to the final message, even though I entered them in manually. By commenting out the calls to queryConfirm I got the function working properly. To my eye, the code looks fine, lol but my eyes are far from perfect! There might be some bug in gcc or the default template library I don't know. I had this problem with gcc-2.95 on Debian woody. This is how I got the function to work: FIX41::OrderCancelReplaceRequest Application::queryCancelReplaceRequest41() { FIX41::OrderCancelReplaceRequest cancelReplaceRequest( queryOrigClOrdID(), queryClOrdID(), FIX::HandlInst( '1' ), querySymbol(), querySide(), queryOrdType() ); //if ( queryConfirm( "New price" ) ) cancelReplaceRequest.set( queryPrice() ); //if ( queryConfirm( "New quantity" ) ) cancelReplaceRequest.set( queryOrderQty() ); queryHeader( cancelReplaceRequest.getHeader() ); //if (tradeclient_cfg_file == "cfg/arca.cfg") { // querysession( cancelReplaceRequest); //} { std::cerr << "line = " << __LINE__ << endl; FIX::Price price; FIX::OrderQty orderqty; try { cancelReplaceRequest.get( price); std::cerr << "price = " << price.getString() << endl; } catch (...) { std::cerr << "price not found" << endl; } try { cancelReplaceRequest.get( orderqty); std::cerr << "orderqty = " << orderqty.getString() << endl; } catch (...) { std::cerr << "orderqty not found" << endl; } } return cancelReplaceRequest; } --------------------------------- Do you Yahoo!? Friends. Fun. Try the all-new Yahoo! Messenger |
From: Clark S. <cla...@ya...> - 2004-06-07 19:22:21
|
In my version of tradeclient, I wrote calls to system, to catch sigint (ctrl-c) and term (shutdown). I have shutdown tradeclient countless times today (more that 10 times), logoff gets called everytime, and the sequence numbers remain synched between my fix client, and the CERT Fix server at arca. This is a ***BIG*** improvement. In the past, a ctrl-c shutdown frequently caused a big disagreement between the fix client (tradeserver), and whatever server I was using. static long do_loop = 1; static void end_do_loop( int sig) { std::cerr << "signal = " << sig << " caught in tradeclient.application.cpp::end_do_loop" << endl; do_loop = 0; FIX::process_sleep( 1); } void Application::run() { struct sigaction act; act.sa_handler = end_do_loop; sigemptyset( &act.sa_mask); act.sa_flags = 0; sigaction( SIGINT, &act, 0); sigaction( SIGTERM, &act, 0); sigaction( SIGALRM, &act, 0); while ( do_loop ) { try { char action = queryAction(); if ( action == '1' ) queryEnterOrder(); else if ( action == '2' ) queryCancelOrder(); else if ( action == '3' ) queryReplaceOrder(); else if ( action == '4' ) queryMarketDataRequest(); else if ( action == '5' ) break; } catch ( std::exception & e ) { std::cout << "Message Not Sent: " << e.what(); } } } --------------------------------- Do you Yahoo!? Friends. Fun. Try the all-new Yahoo! Messenger |
From: Ramprakash U. <ram...@ca...> - 2004-06-07 14:42:16
|
Hi Oren, =20 Sorry for the personal post I use QF 1.7.1 with Microsoft.NET 1.1/Windows 2003/VS.NET 2003 =20 And why I get getField error =20 TIA, Ramprakash =20 -----Original Message----- From: Oren Miller [mailto:or...@qu...]=20 Sent: luned=EC 7 giugno 2004 16:13 To: Ramprakash Umapathy Subject: Re: How to make a TestRequest and get Response This is essentially the way you would do it, but can you double check = the version you are using? There is no 1.3.6 On Jun 7, 2004, at 8:43 AM, Ramprakash Umapathy wrote: Hi, =20 I'm trying to make a Test Request in test code and try to collect the response. The code is in VB.NET with QuickFix 1.3.6 =20 Please correct me if I'm anything wrong with this approach =20 I write a method in my QuickFix.Application implementation class like = this, =20 Public Sub GenerateTestRequest() Try Dim QFTest As New QuickFix42.TestRequest(New = QuickFix.TestReqID("TEST MESSAGE")) Session.sendToTarget(QFTest, "umapar1a", "s09183") Catch ex As System.Exception Throw (ex) End Try End Sub=20 And then collect the Response from the Server like this in FromAdmin of QuickFix.Application implementation class Public Sub fromAdmin(ByVal QFmessage As QuickFix.Message, ByVal = QFSession As QuickFix.SessionID) Implements QuickFix.Application.fromAdmin If (QFmessage.getHeader.getField(35) =3D "0") Then If QFmessage.isSetField(112) Then If QFMessage.getField(112) =3D "TEST MESSAGE") Then MsgBox "TEST Request Succeeded" =20 End If End If End If End Sub=20 Now my Questions are, 1) Is this approach is right or is there any other better way of doing = it. 2) Why I get QFMessage.getField(112) get a compilation error? (Error is 'getField' has a return type that is not supported or = parameter types that are not supported.) Thanks in Advance, Ramprakash =20 =20 |
From: Ramprakash U. <ram...@ca...> - 2004-06-07 13:54:50
|
=20 -----Original Message----- From: Ramprakash Umapathy [mailto:Ram...@ca...]=20 Sent: luned=EC 7 giugno 2004 15:43 To: 'Oren Miller' Subject: How to make a TestRequest and get Response Hi, =20 I'm trying to make a Test Request in test code and try to collect the response. The code is in VB.NET with QuickFix 1.3.6=20 =20 Please correct me if I'm anything wrong with this approach =20 I write a method in my QuickFix.Application implementation class like = this, =20 Public Sub GenerateTestRequest() Try Dim QFTest As New QuickFix42.TestRequest(New = QuickFix.TestReqID("TEST MESSAGE")) Session.sendToTarget(QFTest, "umapar1a", "s09183") Catch ex As System.Exception Throw (ex) End Try End Sub=20 And then collect the Response from the Server like this in FromAdmin of QuickFix.Application implementation class Public Sub fromAdmin(ByVal QFmessage As QuickFix.Message, ByVal = QFSession As QuickFix.SessionID) Implements QuickFix.Application.fromAdmin If (QFmessage.getHeader.getField(35) =3D "0") Then=20 If QFmessage.isSetField(112) Then If QFMessage.getField(112) =3D "TEST MESSAGE") Then MsgBox "TEST Request Succeeded" =20 End If End If End If End Sub=20 Now my Questions are, 1) Is this approach is right or is there any other better way of doing = it. 2) Why I get QFMessage.getField(112) get a compilation error? (Error is 'getField' has a return type that is not supported or = parameter types that are not supported.) Thanks in Advance, Ramprakash =20 =20 |
From: Vijay S. Y. <vy...@op...> - 2004-06-07 13:41:59
|
SGltYW5zaHUsDQogSSB3b3JrIG1vc3RseSBvbiBXaW5kb3dzIHBsYXRmb3JtLiBCdXQgaXQgaXMg Y2xlYXIgdGhhdCB5b3UgYXJlIG5vdCBpbmNsdWRpbmcgU1RMIGhlYWRlcnMuDQogDQotLSB2aWph eQ0KDQoJLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0gDQoJRnJvbTogcXVpY2tmaXgtZGV2ZWxv cGVycy1yZXF1ZXN0QGxpc3RzLnNvdXJjZWZvcmdlLm5ldCBbbWFpbHRvOnF1aWNrZml4LWRldmVs b3BlcnMtcmVxdWVzdEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXRdIA0KCVNlbnQ6IFN1biA2LzYvMjAw NCAxMDowNSBQTSANCglUbzogcXVpY2tmaXgtZGV2ZWxvcGVyc0BsaXN0cy5zb3VyY2Vmb3JnZS5u ZXQgDQoJQ2M6IA0KCVN1YmplY3Q6IFF1aWNrZml4LWRldmVsb3BlcnMgZGlnZXN0LCBWb2wgMSAj NDk0IC0gMSBtc2cNCgkNCgkNCg0KCVNlbmQgUXVpY2tmaXgtZGV2ZWxvcGVycyBtYWlsaW5nIGxp c3Qgc3VibWlzc2lvbnMgdG8NCgkgICAgICAgIHF1aWNrZml4LWRldmVsb3BlcnNAbGlzdHMuc291 cmNlZm9yZ2UubmV0DQoJDQoJVG8gc3Vic2NyaWJlIG9yIHVuc3Vic2NyaWJlIHZpYSB0aGUgV29y bGQgV2lkZSBXZWIsIHZpc2l0DQoJICAgICAgICBodHRwczovL2xpc3RzLnNvdXJjZWZvcmdlLm5l dC9saXN0cy9saXN0aW5mby9xdWlja2ZpeC1kZXZlbG9wZXJzDQoJb3IsIHZpYSBlbWFpbCwgc2Vu ZCBhIG1lc3NhZ2Ugd2l0aCBzdWJqZWN0IG9yIGJvZHkgJ2hlbHAnIHRvDQoJICAgICAgICBxdWlj a2ZpeC1kZXZlbG9wZXJzLXJlcXVlc3RAbGlzdHMuc291cmNlZm9yZ2UubmV0DQoJDQoJWW91IGNh biByZWFjaCB0aGUgcGVyc29uIG1hbmFnaW5nIHRoZSBsaXN0IGF0DQoJICAgICAgICBxdWlja2Zp eC1kZXZlbG9wZXJzLWFkbWluQGxpc3RzLnNvdXJjZWZvcmdlLm5ldA0KCQ0KCVdoZW4gcmVwbHlp bmcsIHBsZWFzZSBlZGl0IHlvdXIgU3ViamVjdCBsaW5lIHNvIGl0IGlzIG1vcmUgc3BlY2lmaWMN Cgl0aGFuICJSZTogQ29udGVudHMgb2YgUXVpY2tmaXgtZGV2ZWxvcGVycyBkaWdlc3QuLi4iDQoJ DQoJDQoJUXVpY2tGSVggRG9jdW1lbnRhdGlvbjogaHR0cDovL3d3dy5xdWlja2ZpeGVuZ2luZS5v cmcvcXVpY2tmaXgvZG9jL2h0bWwvaW5kZXguaHRtbA0KCVF1aWNrRklYIEZBUTogaHR0cDovL3d3 dy5xdWlja2ZpeGVuZ2luZS5vcmcvcXVpY2tmaXgvZG9jL2h0bWwvRkFRLmh0bWwNCgkNCglUb2Rh eSdzIFRvcGljczoNCgkNCgkgICAxLiBDb21waWxhdGlvbiBlcnJvcnMgKFNoYXJtYSBIaW1hbnNo dSkNCgkNCgktLV9fLS1fXy0tDQoJDQoJTWVzc2FnZTogMQ0KCUZyb206ICJTaGFybWEgSGltYW5z aHUiIDxzaGFybWFfaGltYW5zaHVAaG90bWFpbC5jb20+DQoJVG86IHF1aWNrZml4LWRldmVsb3Bl cnNAbGlzdHMuc291cmNlZm9yZ2UubmV0DQoJRGF0ZTogU3VuLCAwNiBKdW4gMjAwNCAxODozNToy MCArMDAwMA0KCVN1YmplY3Q6IFtRdWlja2ZpeC1kZXZlbG9wZXJzXSBDb21waWxhdGlvbiBlcnJv cnMNCgkNCglIaSwNCgkNCglDb3VsZCBzb21lb25lIHBsZWFzZSB0ZWxsIG1lIHdoYXQgYXJlIHRo ZSBjb3JyZWN0IGxpYnJhcmllcyByZXF1aXJlZCB0byBsaW5rDQoJcXVpY2tmaXggY29kZSBvbiBT b2xhcmlzIDggbWFjaGluZS4NCgkNCglJIGFtIGdldHRpbmcgZXJyb3Igb2YgdHlwZToNCglpbGQ6 c3ltYm9sIHVuZGVmaW5lLT4gc3RkOjpwYWlyPHJ3OjouLi4uDQoJDQoJVGhhbmtzIGluIGFkdmFu Y2UuDQoJDQoJSGltYW5zaHUNCgkNCglfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KCUdldCBoZWFkLWh1bnRlZCBieSAxMCww MDAgcmVjcnVpdGVycy4gaHR0cDovL2dvLm1zbnNlcnZlci5jb20vSU4vNDYyNDYuYXNwDQoJUG9z dCB5b3VyIENWIG9uIG5hdWtyaS5jb20gdG9kYXkuDQoJDQoJDQoJDQoJDQoJLS1fXy0tX18tLQ0K CQ0KCV9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQoJUXVp Y2tmaXgtZGV2ZWxvcGVycyBtYWlsaW5nIGxpc3QNCglRdWlja2ZpeC1kZXZlbG9wZXJzQGxpc3Rz LnNvdXJjZWZvcmdlLm5ldA0KCWh0dHBzOi8vbGlzdHMuc291cmNlZm9yZ2UubmV0L2xpc3RzL2xp c3RpbmZvL3F1aWNrZml4LWRldmVsb3BlcnMNCgkNCgkNCglFbmQgb2YgUXVpY2tmaXgtZGV2ZWxv cGVycyBEaWdlc3QNCgkNCg0K |
From: Sharma H. <sha...@ho...> - 2004-06-06 18:46:56
|
Hi, Could someone please tell me what are the correct libraries required to link quickfix code on Solaris 8 machine. I am getting error of type: ild:symbol undefine-> std::pair<rw::.... Thanks in advance. Himanshu _________________________________________________________________ Get head-hunted by 10,000 recruiters. http://go.msnserver.com/IN/46246.asp Post your CV on naukri.com today. |
From: Oren M. <or...@qu...> - 2004-06-05 13:27:03
|
Yes, thank you. I've checked this fix it in to CVS. http://cvs.sourceforge.net/viewcvs.py/quickfix/quickfix/src/C%2B%2B/=20 MySQLStore.cpp?r1=3D1.6&r2=3D1.7 On Jun 4, 2004, at 5:37 PM, Pasquale d'Aloise wrote: > I think the "UPDATE" statements in functions =20 > MySQLStore::setNextSenderMsgSeqNum() and =20 > MySQLStore::setNextTargetMsgSeqNum() have been exchanged. > setNextSenderMsgSeqNum() must set the=A0field "outgoing_seqnum" while =20= > setNextTargetMsgSeqNum() must set the=A0field "incoming_seqnum", I =20 > suppose. > > Here is the wrong code: > > void MySQLStore::setNextSenderMsgSeqNum( int value ) throw ( =20 > IOException& ) > { > ..... > =A0=A0=A0 query << "UPDATE sessions SET incoming_seqnum=3D" << value = << " =20 > WHERE " > ... > } > > void MySQLStore::setNextTargetMsgSeqNum( int value ) throw ( =20 > IOException& ) > { > .... > =A0=A0=A0 query << "UPDATE sessions SET outgoing_seqnum=3D" << value = << " =20 > WHERE " > ... > } > =A0 > Regards. > Pasquale d'Aloise |
From: Oren M. <or...@qu...> - 2004-06-05 01:50:54
|
> If the other fix machine, has a sequence number that is too low, can't=20= > I just send it all of the fix messages that it is missing? Isn't there=20= > some type of resend request? No, because that is an unrelated set of messages. Remember, there are=20= two sequence numbers, and incoming and an outgoing. The fact that they=20= are sending you a sequence number that is too low, is in no way an=20 indication that they are missing any messages. It is an indication=20 that you are being sent a message that has already been sent before. =20 Since it is not marked with a PossDup, it basically means they have=20 sent the same message twice. Or at least you have no way of knowing if=20= it's the same or not. This is extremely dangerous because you could=20 end up processing the same NewOrderSingle or ExecutionReport twice. A ResendRequest would only happen if you send them a message with a=20 sequence number that is too high, which would cause them to want to see=20= what is missing. This is an entirely different scenario. > I am also a little confused by the term sequence number. On the Arca=20= > CERT site today I saw the following: > > =A0Message Sequence Number 1812 > > =A0Our Sequence Number will be: 7 By "Our Sequence Number", they are referring to their sender or next=20 outgoing sequence number. This should match up with your target or=20 expected incoming sequence number. Likewise 1812 is their incoming and=20= your outgoing number. Now, how it is that you sent them 1811 messages=20= and they only sent you 7 is very strange. And as you had shown=20 earlier, QuickFIX was expecting to receive sequence number 165 (which=20 sounds more reasonable to me). Ctrl-C wouldn't be an issue here=20 because there is no way Ctrl-C would cause QuickFIX to increase it's=20 expected sequence number. Basically I don't think that their sequence=20= number being set to 7 sound right unless they had purposely lowered it=20= somehow. I don't have the full records of your interaction so I can=20 only speculate. --oren |
From: Clark S. <cla...@ya...> - 2004-06-05 01:23:19
|
This is what happened today when I killed tradeclient, with a ctrl-c. The arca CERT fix server got out of sequence, and I wasn't able to test for the rest of the day. About 18 months ago, I wasy experimenting with Quickfix, and the test server at O'Connor. Here again, the sequence numbers got out of sync almost everytime, I killed tradeclient with a ctrl-c. If the other fix machine, has a sequence number that is too low, can't I just send it all of the fix messages that it is missing? Isn't there some type of resend request? In a production situation, I would like to be able to call the manager of the other fix engine, and tell him to do a straight cancel of every open order. Once the connection, or stability problem is settled, I would like to be able to restart the fix session with as little manual intervention as possible. In this situation, the only problems would be if the fills somehow didn't match up. Would it be possible to send a command that would resend all the fills? I am also a little confused by the term sequence number. On the Arca CERT site today I saw the following: > Message Sequence Number 1812 > Our Sequence Number will be: 7 Which numbers do I pass to the Session api function? DO I pass 1812, or 7? Also which api function (or functions?) should I call. Oren Miller <or...@qu...> wrote: Well, in a typical recovery scenario this should never happen. If someone is sending you sequence numbers that are too low, it is considered a serious error that the FIX spec says requires manual intervention. If an internet connection goes down, or a computer crashes, this should not happen because QuickFIX (and any FIX engine) can recover its state from the MessageStore and continue sending where it left off. The only time this would not happen is if the state is somehow destroyed or corrupted. Now if this does happen, you will have to synchronize the sequence numbers. If you have control of both sides, the easiest way to do this is to reset both sides to 1, which can be done by just deleting the state. Otherwise you need to coordinate with the counter-party and either one of you needs to adjust your sequence numbers, or you can both reset to 1. If you did want to try to handle this programatically, you can set the sequence numbers on the Session to whatever you want through the class API, however this is a risky thing to do because you would risk one or both of you losing messages without being aware of it. --oren On Jun 4, 2004, at 3:55 PM, Clark Sims wrote: > The next question is how do I fix this situation? > > In production I could easily see a situation where an internet > connection goes down, or a computer crashes, or I have to kill the > client, and when I bring it back up again, there is a problem with the > sequence numbers. So I really need to be able to fix this problem. > > Clark Sims wrote: > yes you are correct: > > 20040604-20:32:02 : Connection succeeded > 20040604-20:32:03 : Initiated logon request > 20040604-20:32:05 : MsgSeqNum too low RECEIVED: 11 EXPECTED: 165 > PosDup: N > 20040604-20:32:05 : Sequence number too low and PossDupFlag > > Do you Yahoo!? > Friends. Fun. Try the all-new Yahoo! Messenger > > Do you Yahoo!? > Friends. Fun. Try the all-new Yahoo! Messenger --------------------------------- Do you Yahoo!? Friends. Fun. Try the all-new Yahoo! Messenger |
From: Oren M. <or...@qu...> - 2004-06-05 01:16:08
|
It wouldn't. The reason this was done is because it turns out doing=20 handling this in a portable way (i.e. works in unix and windows), turns=20= out to be not trivial. I didn't want to clutter up the sample code=20 with that sort of nonsense so I just took the easy way out. You are=20 correct in noting that this will not do a clean exit, and will in fact=20= result in a SIG_INT which terminates the application. If you look at=20 the java example, you will see that it waits for a keypress and then=20 does do a proper exit. If you want to do a clean exit on Ctrl-C, you=20 will have to set up a signal handler for your application. --oren On Jun 4, 2004, at 8:06 PM, Clark Sims wrote: > In the file executor.cpp I see the following code: > =A0 > > void wait() > { > =A0 std::cout << "Type Ctrl-C to quit" << std::endl; > =A0 while(true) > =A0 { > =A0=A0=A0 FIX::process_sleep(1); > =A0 } > } > > and this is called from > > =A0 > > > =A0=A0=A0 acceptor.start(); > =A0=A0=A0 wait(); > =A0=A0=A0 acceptor.stop(); > =A0=A0=A0 return 0; > > =A0 > > acceptor.stop(), must be the function that cleans up before a = shutdown. > > =A0 > > I don't understand how ctrl-c causes wait to return. I went through=20 > the code for process_sleep, and no call to signal, is made. Nor is=20 > there a call to signal anywhere else. It looks to me that typing=20 > ctrl-c would cause the program to shutdown immediately, and that=20 > acceptor.stop, would never be called. > > =A0 > > So my question is, how can ctrl-c cause this program to shutdown in a=20= > clean way? > > =A0 > > Thanks in Advance, > > =A0 > > Clark Sims > > Do you Yahoo!? > Friends. Fun. Try the all-new Yahoo! Messenger= |
From: Clark S. <cla...@ya...> - 2004-06-05 01:07:02
|
In the file executor.cpp I see the following code: void wait() { std::cout << "Type Ctrl-C to quit" << std::endl; while(true) { FIX::process_sleep(1); } } and this is called from acceptor.start(); wait(); acceptor.stop(); return 0; acceptor.stop(), must be the function that cleans up before a shutdown. I don't understand how ctrl-c causes wait to return. I went through the code for process_sleep, and no call to signal, is made. Nor is there a call to signal anywhere else. It looks to me that typing ctrl-c would cause the program to shutdown immediately, and that acceptor.stop, would never be called. So my question is, how can ctrl-c cause this program to shutdown in a clean way? Thanks in Advance, Clark Sims --------------------------------- Do you Yahoo!? Friends. Fun. Try the all-new Yahoo! Messenger |
From: Oren M. <or...@qu...> - 2004-06-05 01:06:05
|
Well, in a typical recovery scenario this should never happen. If=20 someone is sending you sequence numbers that are too low, it is=20 considered a serious error that the FIX spec says requires manual=20 intervention. If an internet connection goes down, or a computer=20 crashes, this should not happen because QuickFIX (and any FIX engine)=20 can recover its state from the MessageStore and continue sending where=20= it left off. The only time this would not happen is if the state is=20 somehow destroyed or corrupted. Now if this does happen, you will have=20= to synchronize the sequence numbers. If you have control of both=20 sides, the easiest way to do this is to reset both sides to 1, which=20 can be done by just deleting the state. Otherwise you need to=20 coordinate with the counter-party and either one of you needs to adjust=20= your sequence numbers, or you can both reset to 1. If you did want to try to handle this programatically, you can set the=20= sequence numbers on the Session to whatever you want through the class=20= API, however this is a risky thing to do because you would risk one or=20= both of you losing messages without being aware of it. --oren On Jun 4, 2004, at 3:55 PM, Clark Sims wrote: > The next question is how do I fix this situation? > =A0 > In production I could easily see a situation where an internet=20 > connection goes down, or a computer crashes, or I have to kill the=20 > client, and when I bring it back up again, there is a problem with the=20= > sequence numbers. So I really need to be able to fix this problem. > > Clark Sims <cla...@ya...> wrote: > yes you are correct: > =A0 > 20040604-20:32:02 : Connection succeeded > 20040604-20:32:03 : Initiated logon request > 20040604-20:32:05 : MsgSeqNum too low RECEIVED: 11 EXPECTED: 165=20 > PosDup: N > 20040604-20:32:05 : Sequence number too low and PossDupFlag > > Do you Yahoo!? > Friends. Fun. Try the all-new Yahoo! Messenger > > Do you Yahoo!? > Friends. Fun. Try the all-new Yahoo! Messenger= |
From: Pasquale d'A. <pas...@ga...> - 2004-06-04 22:34:49
|
I think the "UPDATE" statements in functions = MySQLStore::setNextSenderMsgSeqNum() and = MySQLStore::setNextTargetMsgSeqNum() have been exchanged. setNextSenderMsgSeqNum() must set the field "outgoing_seqnum" while = setNextTargetMsgSeqNum() must set the field "incoming_seqnum", I = suppose. Here is the wrong code: void MySQLStore::setNextSenderMsgSeqNum( int value ) throw ( = IOException& ) {=20 ..... query << "UPDATE sessions SET incoming_seqnum=3D" << value << " = WHERE " ... } void MySQLStore::setNextTargetMsgSeqNum( int value ) throw ( = IOException& ) {=20 .... query << "UPDATE sessions SET outgoing_seqnum=3D" << value << " = WHERE " ... } Regards. Pasquale d'Aloise |
From: Clark S. <cla...@ya...> - 2004-06-04 20:55:23
|
The next question is how do I fix this situation? In production I could easily see a situation where an internet connection goes down, or a computer crashes, or I have to kill the client, and when I bring it back up again, there is a problem with the sequence numbers. So I really need to be able to fix this problem. Clark Sims <cla...@ya...> wrote: yes you are correct: 20040604-20:32:02 : Connection succeeded 20040604-20:32:03 : Initiated logon request 20040604-20:32:05 : MsgSeqNum too low RECEIVED: 11 EXPECTED: 165 PosDup: N 20040604-20:32:05 : Sequence number too low and PossDupFlag --------------------------------- Do you Yahoo!? Friends. Fun. Try the all-new Yahoo! Messenger --------------------------------- Do you Yahoo!? Friends. Fun. Try the all-new Yahoo! Messenger |
From: Clark S. <cla...@ya...> - 2004-06-04 20:34:37
|
yes you are correct: 20040604-20:32:02 : Connection succeeded 20040604-20:32:03 : Initiated logon request 20040604-20:32:05 : MsgSeqNum too low RECEIVED: 11 EXPECTED: 165 PosDup: N 20040604-20:32:05 : Sequence number too low and PossDupFlag --------------------------------- Do you Yahoo!? Friends. Fun. Try the all-new Yahoo! Messenger |