quickfix-developers Mailing List for QuickFIX (Page 93)
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: Shane T. <str...@co...> - 2008-03-07 15:18:01
|
Sequence problems are common, can you post the exact series of messages in full (it's hard to debug without an exact sequence number series and error messages.) You can find the messages in the messages.log file as specified in the quickfix config file. -- Shane Trotter Connamara Systems, LLC On 3/7/08, Eranga Samararathna <pe...@ri...> wrote: > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > Hello, > > I sent invalid message to a quickfix application. ( eg : 35=XXXX). After > receiving this message quickfix didn't work properly. Even I sent the > correct message ( eg : 35=D ) it didn't work. It complains about > sequence number error. > > Application information > ------------------------- > > Acceptor and initiator both used QF 1.12.4 c++ build. > > Initiator send 35=XXXX message , Acceptor side complain about sequence > error > > > Initiator send 35=D message, Acceptor call back didn't get fired > > ------------------------------------------------------- > > I know this an abnormal cause. But your guidance is needed. > > Thanks, > > Regards, > > Eranga > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > |
From: Eranga S. <pe...@ri...> - 2008-03-07 12:43:00
|
Hello, I sent invalid message to a quickfix application. ( eg : 35=XXXX). After receiving this message quickfix didn't work properly. Even I sent the correct message ( eg : 35=D ) it didn't work. It complains about sequence number error. Application information ------------------------- Acceptor and initiator both used QF 1.12.4 c++ build. Initiator send 35=XXXX message , Acceptor side complain about sequence error Initiator send 35=D message, Acceptor call back didn't get fired ------------------------------------------------------- I know this an abnormal cause. But your guidance is needed. Thanks, Regards, Eranga |
From: Eranga S. <pe...@ri...> - 2008-03-07 12:23:41
|
Hello, I have build the quickfix with tcmalloc ( http://goog-perftools.sourceforge.net/doc/tcmalloc.html). But this build didn't work. Are quickfix support for tcmalloc? If not when quickfix support for tcmalloc? Are you experts see the any performance gain with tcmalloc over traditional malloc? Thanks, regards, Eranga |
From: Eranga S. <pe...@ri...> - 2008-03-07 08:17:54
|
Hi, On Thu, 2008-03-06 at 16:14 -0600, Vega, Edgar wrote: > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > Hi, > 1)After the QuickFix project is Build and tested do I have to creat a > Setup(.exe) for Deployment? What are you mean build and tested ? If you developed an application using QuickFix, of course you can create a build for it. QuickFix it self doesn't a deployable application. > 2)" Add the quickfix_net.dll and quickfix_net_message.dll to the > references section of your projects. " where is the Reference section > in the Project? What are you do when you add thirdparty references in to your .net environment ? E.g. log4net,nunit...etc You have to do same thing here. These two libraries should be in your project reference path. Regards, Eranga > Thanks and Regards, > Edgar Allen > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
From: Vega, E. <ev...@On...> - 2008-03-06 22:15:05
|
Hi, 1)After the QuickFix project is Build and tested do I have to creat a Setup(.exe) for Deployment? 2)" Add the quickfix_net.dll and quickfix_net_message.dll to the references section of your projects. " where is the Reference section in the Project? Thanks and Regards, Edgar Allen |
From: azmat <mr...@gm...> - 2008-03-06 19:07:43
|
All, I've gotten over my difficulty with understanding how I should setup my config file to handle multiple sessions. Thanks to everyone that helped! What I want to do now is use 1 initiator with 2 sessions. Is this even possible? Basically we have a listening session that we need to keep open (different CompIDs, different port #) in order to listen for execution reports and allocation reports that the broker is sending to us. In addition to that we have a session dedicated to trades/orders via FIX that also handles exec reports, but those made via FIX. My code now is able to handle the various onMessages that would be returned, but I want 1 instance of my quickfix app to handle these two sessions, instead of instantiating two separate instances of the app. Is this possible? If not, then I will be resigned to using two instances. many thanks! azmat azmat wrote: > > All- > > I need to setup 3 connections (one for market data, one for orders, and > one for Drop Copies). Do I just need to setup the config file with three > connections with the appropriate information? Also, how do I call > Session.Logon() or Session.Logout()? > > I can't instantiate an instance of Session (it lacks a constructor) and > the logon/logout methods are not static. Is this how I would logout/logon > specific sessions, if I were able to use these functions? > > many thanks to all. > > thanks! > azmat > > -- View this message in context: http://www.nabble.com/multiple-sessions-connections-tp15834166p15881514.html Sent from the QuickFIX - Dev mailing list archive at Nabble.com. |
From: Scott R. <sri...@fo...> - 2008-03-06 16:44:36
|
The conditionally required field missing exception is caused when your code tries to extract the value of a field which is listed in the xml as not required. It appears that when you process each group, you are attempting to extract field 48. However, your broker is only sending field 48 once (presumably, it is constant across all groups). I suggest simply extracting field 48 for the first group you process, and not doing so for subsequent groups, reusing the value from the first group in your logic. -----Original Message----- From: qui...@li... [mailto:qui...@li...] On Behalf Of Giovanni Chiappini Sent: Thursday, March 06, 2008 5:06 AM To: qui...@li... Subject: [Quickfix-developers] Rejecting an MarketDataIncrementalRefreshmessage QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html QuickFIX Support: http://www.quickfixengine.org/services.html |
From: Jeff <jhe...@gm...> - 2008-03-06 13:59:15
|
Thanks for the reply! It's not so much that I want to create it without the message-store factory, I was just asking that in an attempt for more testing. The big issue is that it's not possible to test with Nunit due to the gchandle crossing app domains problem, which appears to be in the log factory and the message store factory. I suppose no one is really using NUnit to do any unit testing with this library? QuickFix developers: Are there any unnecessary gchandles being passed in the log and message store factories? Thanks! Jeff On Thu, Mar 6, 2008 at 12:30 AM, <Nil...@co...> wrote: > > Jeff > > I don't think you can create initiator without message-store factory. > However you can create it without log-factory. This could be because the > message-store is been used for guaranteed message delivery, irrespective > of TCP or UDP, as required by the FIX specifications. > > Cheers > -NIlesh > > >-----Original Message----- > >From: qui...@li... > [mailto:quickfix- > >dev...@li...] On Behalf Of Jeff > >Sent: Thursday, March 06, 2008 12:34 AM > >To: qui...@li... > >Subject: Re: [Quickfix-developers] Testing QuickFix with NUnit > > > >QuickFIX Documentation: > >http://www.quickfixengine.org/quickfix/doc/html/index.html > >QuickFIX Support: http://www.quickfixengine.org/services.html > > > This e-mail and any files transmitted with it are for the sole use of the > intended recipient(s) and may contain confidential and privileged > information. > If you are not the intended recipient, please contact the sender by reply > e-mail and destroy all copies of the original message. > Any unauthorised review, use, disclosure, dissemination, forwarding, > printing or copying of this email or any action taken in reliance on this > e-mail is strictly > prohibited and may be unlawful. > |
From: <Nil...@co...> - 2008-03-06 08:41:39
|
Hi I am using ODBC with SQL Server for logging purpose. I have observed some strange behavior, not sure if this is bug in QF. I am using QF 1.12.4. I assume that "message_log" table stores all incoming and outgoing messages. In my case it doing this job perfectly fine, no issues there. Assume that the server comp-id is "SERVER" and client comp-id is "CLIENT". What I see in "message_log" table is the sendercompid and targetcompid is always "SERVER" and "CLIENT" respectively. Irrespective of the incoming or outgoing message. Any idea what is going on here... Thanks & Regards -Nilesh This e-mail and any files transmitted with it are for the sole use of the intended recipient(s) and may contain confidential and privileged information. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. Any unauthorised review, use, disclosure, dissemination, forwarding, printing or copying of this email or any action taken in reliance on this e-mail is strictly prohibited and may be unlawful. |
From: <Nil...@co...> - 2008-03-06 07:56:50
|
I would say don't create a Session object directly, use sessionfactory to create session object. What you have done is correct; you can use the lookupSession to retrieve the existing session object. Whenever there is factory pattern implemented, designer would force you to create object using the factory (by making the constructor method private), just to avoid accidental creation of object without factory. This is exactly what you are trying to do. I have no clue about your other question, regarding multiple sessions. Hope this will help -Nilesh ________________________________ From: azm...@gm... [mailto:azm...@gm...] On Behalf Of mr azmat Sent: Thursday, March 06, 2008 12:05 PM To: Gajjar, Nilesh (Cognizant) Subject: Re: [Quickfix-developers] multiple sessions/connections Nilesh, that is odd. I am using C#, but when I try to instantiate the Session class, the compiler won't let me. Then when I try to call Session.logout() or Session.logon() it won't let me because logon/logout aren't static members of the Session class. I'm trying to do all of this because I know of no other way to logout of a session. What I ended up doing was storing the sessionID and then calling like this: Session mySession = Session.lookupSession(SessionID) Then I can call logout/logon from mySession. mySession.logon() mySession.logout() I dont understand why I am unable to instantiate the Session class. When I get into work tomorrow, I'll take a screenshot of the message. I am now able to use logon/logout, but it wasn't as straightforward as I thought it should be. But I was wondering if you could answer my first question: "I need to setup 3 connections (one for market data, one for orders, and one for Drop Copies). Do I just need to setup the config file with three connections with the appropriate information?" thanks Nilesh, azmat On Thu, Mar 6, 2008 at 12:16 AM, <Nil...@co...> wrote: Hi Azmat I am not sure what you are talking about, there will always be a default public constructor for any cpp object, even if there is no user defined one. However I can see a constructor for Session object, am using the QF-1.12.4. source. ====================== #ifndef FIX_SESSION_H #define FIX_SESSION_H ... ... ... /// Maintains the state and implements the logic of a %FIX %session. class Session { public: Session( Application&, MessageStoreFactory&, const SessionID&, const DataDictionary&, const SessionTime&, int heartBtInt, LogFactory* pLogFactory ); ~Session(); void logon() { m_state.enabled( true ); m_state.logoutReason( "" ); } void logout( const std::string& reason = "" ) { m_state.enabled( false ); m_state.logoutReason( reason ); } ======================= Further, I don't understand a need to create Session object, as it is already created and ready to be used by SocketInitiator. Also note that QF provides you the sessionFactory, if there is a factory object available than its good idea to create a object using factory rather than creating it directly. It will be good if you can explain bit more in detail about the need to create a session object and need to call methods like logon and logout. Cheers -Nilesh >-----Original Message----- >From: qui...@li... [mailto:quickfix- >dev...@li...] On Behalf Of azmat >Sent: Thursday, March 06, 2008 4:39 AM >To: qui...@li... >Subject: Re: [Quickfix-developers] multiple sessions/connections > >QuickFIX Documentation: >http://www.quickfixengine.org/quickfix/doc/html/index.html >QuickFIX Support: http://www.quickfixengine.org/services.html > > >All- > >I need to setup 3 connections (one for market data, one for orders, and one >for Drop Copies). Do I just need to setup the config file with three >connections with the appropriate information? Also, how do I call >Session.Logon() or Session.Logout()? > >I can't instantiate an instance of Session (it lacks a constructor) and the >logon/logout methods are not static. Is this how I would logout/logon >specific sessions, if I were able to use these functions? > >many thanks to all. > >thanks! >azmat > > > > > >azmat wrote: >> >> All- >> >> I've setup two connections in my config file, but how do I start both >> sessions? Would they both get called if their information is in the >> "FixSettings.txt" file with the code below (when _initiator.start() is >> called): >> >> >> if (_initiator != null) >> throw new Exception("Already Started"); >> try >> { >> SessionSettings settings = new >> SessionSettings("FixSettings.txt"); >> QFWrapper application = new QFWrapper(this); >> FileStoreFactory storeFactory = new >> FileStoreFactory(settings); >> FileLogFactory logFactory = new FileLogFactory(settings); >> MessageFactory messageFactory = new >> DefaultMessageFactory(); >> _initiator = new ThreadedSocketInitiator(application, >> storeFactory, settings, logFactory, messageFactory); >> _initiator.start(); >> } >> catch (Exception e) >> { >> System.Diagnostics.Trace.WriteLine("FixServer.Start() >> ERROR: " + e.Message); >> } >> >> >> Also, I need to setup another session for Drop Copies, and I imagine the >> same rule applies to 3 sessions as it does with 2. Basically what I will >> be doing is cracking any messages received, and if the messages contained >> are MarketData Messages (specifically snapshot, incremental, or reject >> messages), I will use the appropriate market-data logic in my >application. >> If it is an execution Report then the cracker will pick it up and we can >> take care of it. Is this the correct approach? >> >> >> thanks! >> azmat >> > >-- >View this message in context: http://www.nabble.com/multiple-sessions- >connections-tp15834166p15862725.html >Sent from the QuickFIX - Dev mailing list archive at Nabble.com. > > >----------------------------------------------------------------------- -- >This SF.net email is sponsored by: Microsoft >Defy all challenges. Microsoft(R) Visual Studio 2008. >http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >_______________________________________________ >Quickfix-developers mailing list >Qui...@li... >https://lists.sourceforge.net/lists/listinfo/quickfix-developers This e-mail and any files transmitted with it are for the sole use of the intended recipient(s) and may contain confidential and privileged information. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. Any unauthorised review, use, disclosure, dissemination, forwarding, printing or copying of this email or any action taken in reliance on this e-mail is strictly prohibited and may be unlawful. This e-mail and any files transmitted with it are for the sole use of the intended recipient(s) and may contain confidential and privileged information. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. Any unauthorised review, use, disclosure, dissemination, forwarding, printing or copying of this email or any action taken in reliance on this e-mail is strictly prohibited and may be unlawful. |
From: Parjeet S. <par...@oa...> - 2008-03-06 05:44:19
|
I have been struggling with this issue for last two days. I am using QuickFIX for C# and FIX 4.2. I am able to sendToTarget message successfully. When I get the response from the broker, it comes as BusinessMessageReject. "8=FIX.4.29=15935=j34=4443=Y49=BARX-PRICES-TEST52=20080306-05:36:0 956=OAKVALE-PRICES-TEST122=20080306-04:43:4245=4058=Unhandled message type '3' received372=3380=310=045" I need few clarifications: 1. When I get response from broker, then I am expecting BusinessMessageReject. 2. According to the brokers spec, tag 58 is not required. 3. Do I have to handle this message? 4. How can I implement OnMessage in the Cracker. Thanks in advance PS |
From: <Nil...@co...> - 2008-03-06 05:30:57
|
Jeff I don't think you can create initiator without message-store factory. However you can create it without log-factory. This could be because the message-store is been used for guaranteed message delivery, irrespective of TCP or UDP, as required by the FIX specifications. Cheers -NIlesh >-----Original Message----- >From: qui...@li... [mailto:quickfix- >dev...@li...] On Behalf Of Jeff >Sent: Thursday, March 06, 2008 12:34 AM >To: qui...@li... >Subject: Re: [Quickfix-developers] Testing QuickFix with NUnit > >QuickFIX Documentation: >http://www.quickfixengine.org/quickfix/doc/html/index.html >QuickFIX Support: http://www.quickfixengine.org/services.html This e-mail and any files transmitted with it are for the sole use of the intended recipient(s) and may contain confidential and privileged information. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. Any unauthorised review, use, disclosure, dissemination, forwarding, printing or copying of this email or any action taken in reliance on this e-mail is strictly prohibited and may be unlawful. |
From: Quek T. W. <qt...@ya...> - 2008-03-06 01:46:21
|
I have a fix counterparty on Fix4.4 that uses field encryption (triple-des). Their requirements are : - All fix header fields which can be encrypted such as MsgSeqNum, SendingTime are always encrypted and placed in the SecureData field. (Note: these fields are not in the clear at all ) - All other fields in message body are to be encrypted and placed in SecureData field and do not appear in the clear. - As a result of this, fix message types such as NewOrderSingle, ExecutionReport does not have any message body at all ( just the message header and trailer ). Example fix messages (NewOrderSingle, ExectionReport ) are shown here : 8=FIX.4.4^9=0219^35=D^49=ECOS1^56=018001^90=184^91=[This contains encryptable fix fields from header/body]^10=063^ 8=FIX.4.4^9=0283^35=8^49=018001^56=ECOS1^90=248^91=^[This contains encryptable fix fields from header/body]^10=116^ I understand that QuickFix does not have any built-in support for encryption. That is ok as i am able to use OpenSSl tripledes in my fix application. Appreciate your advice if Quickfix can handle the above requirements that i have described. The questions that i have are : 1) can QuickFix do the following : a) Send outgoing messages without compulsory fields appearing in the clear ? example : Sending NewOrderSingle without the MsgSeqNum, ClOrdID fields in the clear b) Received incoming messages (ExecutionReport) with mandatory fields (MsgSeqNum, ClOrdID) not in the clear ? Will Quickfix messages reject messages without the MsgSeqNum in the clear ? thanks in advance, Tai Wee ____________________________________________________________________________________ Never miss a thing. Make Yahoo your home page. http://www.yahoo.com/r/hs |
From: azmat <mr...@gm...> - 2008-03-05 23:08:42
|
All- I need to setup 3 connections (one for market data, one for orders, and one for Drop Copies). Do I just need to setup the config file with three connections with the appropriate information? Also, how do I call Session.Logon() or Session.Logout()? I can't instantiate an instance of Session (it lacks a constructor) and the logon/logout methods are not static. Is this how I would logout/logon specific sessions, if I were able to use these functions? many thanks to all. thanks! azmat azmat wrote: > > All- > > I've setup two connections in my config file, but how do I start both > sessions? Would they both get called if their information is in the > "FixSettings.txt" file with the code below (when _initiator.start() is > called): > > > if (_initiator != null) > throw new Exception("Already Started"); > try > { > SessionSettings settings = new > SessionSettings("FixSettings.txt"); > QFWrapper application = new QFWrapper(this); > FileStoreFactory storeFactory = new > FileStoreFactory(settings); > FileLogFactory logFactory = new FileLogFactory(settings); > MessageFactory messageFactory = new > DefaultMessageFactory(); > _initiator = new ThreadedSocketInitiator(application, > storeFactory, settings, logFactory, messageFactory); > _initiator.start(); > } > catch (Exception e) > { > System.Diagnostics.Trace.WriteLine("FixServer.Start() > ERROR: " + e.Message); > } > > > Also, I need to setup another session for Drop Copies, and I imagine the > same rule applies to 3 sessions as it does with 2. Basically what I will > be doing is cracking any messages received, and if the messages contained > are MarketData Messages (specifically snapshot, incremental, or reject > messages), I will use the appropriate market-data logic in my application. > If it is an execution Report then the cracker will pick it up and we can > take care of it. Is this the correct approach? > > > thanks! > azmat > -- View this message in context: http://www.nabble.com/multiple-sessions-connections-tp15834166p15862725.html Sent from the QuickFIX - Dev mailing list archive at Nabble.com. |
From: Shane T. <str...@co...> - 2008-03-05 22:21:41
|
Also notice that you should be getting the number of groups in the same way: QuickFix.NoMDEntries noMDentries = new QuickFix.NoMDEntries(); message.get(noMDentries); // From message, get NoMDEntries. for (int i = 1; i < noMDentries.getValue(); i++) { message.getGroup(i, group); group.get(mdEntryPx); group.get(mdEntryType); // Handle mdEntryPx and mdEntryType here. } On 3/5/08, azmat <mr...@gm...> wrote: > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > > > thanks. But the confusing part of the code is that getGroup returns a Group > BUT I am not placing it in any object, but it still compiles. It looks like > a line of code that wouldn't do anything...like: > > "string".ToString(); > > > mdsfr.getGroup(i, mdGroup) //what does this line do?? > > > > Any suggestions? > It's really blowing my mind. > > thanks! > azmat > > > > Hozaifa Akber Ali wrote: > > > > > > Azmat, > > > > The line ur asking is getting the group of data number of times coming in > > a response. this group contains tag 269, 270 and some more. tag 268 > > (NoMDEntries) is the number of times. Code is correct just start the loop > > from 1 not zero. > > > > Regards > > Hozaifa Akber Ali > > > > > > > > > -- > View this message in context: http://www.nabble.com/weird-code-tp15836751p15861131.html > > Sent from the QuickFIX - Dev mailing list archive at Nabble.com. > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > -- Shane Trotter Connamara Systems, LLC |
From: Shane T. <str...@co...> - 2008-03-05 22:19:29
|
Azmat, According to the documentation on how to get groups that you posted in the first email: If you notice, you use message.getGroup(1, group) to insert the first group of "message" into the "group" object. Then you can utilize "group" to pull out the pieces of information. For example: // Create group holder object. QuickFix42.MarketDataSnapshotFullRefresh.NoMDEntries group = new QuickFix42.MarketDataSnapshotFullRefresh.NoMDEntries(); // From message, insert group data from the first group into "group" object. message.getGroup(1, group); // Create the objects we want to store the values in. QuickFix.MDEntryPx mdEntryPx = new QuickFix.MDEntryPx(); QuickFix.MDEntryType mdEntryType = new QuickFix.MDEntryType(); // Insert the group values into the holder objects. group.get(mdEntryType); group.get(mdEntryPx); Now mdEntryType will contain the type of the first group, and mdEntryPx will contain the price of the first group. Now you can test the types using standard QuickFIX types: switch (mdEntryType.getValue()) { case QuickFix.MDEntryType.BID: bidPrice = mdEntryPx.getValue(); break; case QuickFix.MDEntryType.OFFER: offerPrice = mdEntryPx.getValue(); break; } -- Shane Trotter Connamara Systems, LLC |
From: azmat <mr...@gm...> - 2008-03-05 22:07:13
|
thanks. But the confusing part of the code is that getGroup returns a Group BUT I am not placing it in any object, but it still compiles. It looks like a line of code that wouldn't do anything...like: "string".ToString(); mdsfr.getGroup(i, mdGroup) //what does this line do?? Any suggestions? It's really blowing my mind. thanks! azmat Hozaifa Akber Ali wrote: > > > Azmat, > > The line ur asking is getting the group of data number of times coming in > a response. this group contains tag 269, 270 and some more. tag 268 > (NoMDEntries) is the number of times. Code is correct just start the loop > from 1 not zero. > > Regards > Hozaifa Akber Ali > > > -- View this message in context: http://www.nabble.com/weird-code-tp15836751p15861131.html Sent from the QuickFIX - Dev mailing list archive at Nabble.com. |
From: Jeff <jhe...@gm...> - 2008-03-05 19:04:27
|
Anyone have any insight on this problem? Thanks, Jeff On Thu, Feb 28, 2008 at 11:00 AM, Jeff <jhe...@gm...> wrote: > > More information on this: > > This happens after calling SocketInitiator.Start() > > I do receive the onCreate() callback in my .NET class > > And I tried something else, because of this error (specifically the " > Log.onEvent"): > > ----snip---- > > at System.Runtime.InteropServices.GCHandle.InternalCheckDomain(Int32 > > handle) > > at System.Runtime.InteropServices.GCHandle.op_Explicit(IntPtr value) > > at Log.onEvent(Log*, > > basic_string<char,std::char_traits<char>,std::allocator<char> >* string) > > ----snip---- > > > I thought I'd try it creating the class without the LogFactory. That > resulted in a different error: > > ----snip---- > at System.Runtime.InteropServices.GCHandle.InternalCheckDomain(Int32 > handle) > at System.Runtime.InteropServices.GCHandle.op_Explicit(IntPtr value) > at gcroot<QuickFix::MessageStore __gc *>.->(gcroot<QuickFix::MessageStore > __gc *>* ) > at MessageStore.getCreationTime(MessageStore*, UtcTimeStamp* ) > ----snip---- > > So it appears to be a problem with the Store and Log factories. I don't > believe there is a way to create the Initiator without a Store Factory, but > if there is - please let me know and I'll try it without that and see if I > can get any further. > |
From: atularora78 <atu...@rb...> - 2008-03-05 13:48:41
|
Hi, I am newbie using fix for the first time from initiator's point of view. I am facing a problem of not getting a response to my ResendRequest. Can anybody help me out in figuring out what can be the possible problem. Details are as below: RequestResend [BeginSeqNo=1 & EndSeqNo=0]. Send on onLogon() & the message looks like: <message> <header> <field name="BeginString" number="8"><![CDATA[FIX.4.4]]></field> <field enum="ResendRequest" name="MsgType" number="35"><![CDATA[2]]></field> <field name="SenderCompID" number="49"><![CDATA[XXXX]></field> <field name="TargetCompID" number="56"><![CDATA[XXXX]]></field> </header> <body> <field name="BeginSeqNo" number="7"><![CDATA[1]]></field> <field name="EndSeqNo" number="16"><![CDATA[0]]></field> </body> <trailer/> </message> And my config looks like: <beginString>FIX.4.4</beginString> <senderCompId>XXXX</senderCompId> <targetCompId>XXX</targetCompId> <Username>XXXXX</Username> <Password>XXXX</Password> <enableFixLogging>true</enableFixLogging> <ConnectionType>initiator</ConnectionType> <ReconnectInterval>50</ReconnectInterval> <FileStorePath>${logdir}/fix/etc</FileStorePath> <FileLogPath>${logdir}/fix/log</FileLogPath> <StartTime>00:30:00</StartTime> <EndTime>22:00:00</EndTime> <LogonTimeout>30</LogonTimeout> <HeartBtInt>60</HeartBtInt> <SocketConnectPort>xxxxx</SocketConnectPort> <SocketConnectHost>xxx.xxx.xxx.xxx</SocketConnectHost> <CheckLatency>N</CheckLatency> <MaxLatency>40</MaxLatency> <DataDictionary>${configdir}/FIX44.xml</DataDictionary> All the help is appreciated. Thanks Atul -- View this message in context: http://www.nabble.com/RequestResend-with-no-response-from-Acceptor-tp15850234p15850234.html Sent from the QuickFIX - Dev mailing list archive at Nabble.com. |
From: <suc...@am...> - 2008-03-05 09:06:27
|
I will be out of the office starting 03/05/2008 and will not return until 03/10/2008. I will respond to your message when I return. This message and any attachments (the "message") is intended solely for the addressees and is confidential. If you receive this message in error, please delete it and immediately notify the sender. Any use not in accord with its purpose, any dissemination or disclosure, either whole or partial, is prohibited except formal approval. The internet can not guarantee the integrity of this message. BNP PARIBAS (and its subsidiaries) shall (will) not therefore be liable for the message if modified. Please note that certain functions and services for BNP Paribas may be performed by BNP Paribas RCC, Inc. |
From: Hozaifa A. A. <hoz...@ve...> - 2008-03-05 05:55:31
|
Add default case and in that print the message.tostring() to check what's the message and there u will also find some text error message. What's the meaning of application halts. Does it hangs or just move forward? Regards Hozaifa Akber Ali From: qui...@li... [mailto:qui...@li...] On Behalf Of Parjeet Singh Sent: Wednesday, March 05, 2008 10:30 AM To: qui...@li... Subject: [Quickfix-developers] QuickFix42.BusinessManagerReject I have implemented public void fromApp(QuickFix.Message message, SessionID sessionID) { switch (message.getHeader().getField(35)) { case "d": break; } } My defined dictionary is FIX42, when I pass the "message" in the fromApp, I can see the QuickFix42.BusinessMessageReject. I have checked the FIX42 xml as per required by the client and still I am getting the error. When I step into the code switch (message.getHeader().getField(35)), the application halts. I will appreciate your help. Thanks in advance. PS |
From: Parjeet S. <par...@oa...> - 2008-03-05 05:30:47
|
I have implemented public void fromApp(QuickFix.Message message, SessionID sessionID) { switch (message.getHeader().getField(35)) { case "d": break; } } My defined dictionary is FIX42, when I pass the "message" in the fromApp, I can see the QuickFix42.BusinessMessageReject. I have checked the FIX42 xml as per required by the client and still I am getting the error. When I step into the code switch (message.getHeader().getField(35)), the application halts. I will appreciate your help. Thanks in advance. PS |
From: Hozaifa A. A. <hoz...@ve...> - 2008-03-05 04:56:04
|
Azmat, The line ur asking is getting the group of data number of times coming in a response. this group contains tag 269, 270 and some more. tag 268 (NoMDEntries) is the number of times. Code is correct just start the loop from 1 not zero. Regards Hozaifa Akber Ali azmat wrote: > > All, > I am nicely moving along creating my first ever FIX app and would like to > thank everyone in helping me with this journey. I am now able to send > market data messages, however have problems with the Snapshot / Full > Refresh messages that are returned. > > This is what I wrote. I based it off of what was written in the > documentation > (http://quickfixengine.org/quickfix/doc/html/csharp/repeating_groups_2.html) > > int iGroup = Int32.Parse(mdsfr.get(new > NoMDEntries()).ToString()); > QuickFix42.MarketDataSnapshotFullRefresh.NoMDEntries mdGroup = > new QuickFix42.MarketDataSnapshotFullRefresh.NoMDEntries(); > MDEntryType entryType = new MDEntryType(); > MDEntryPx entryPrice = new MDEntryPx(); > MDEntrySize entrySize = new MDEntrySize(); > > for(uint i=0; i<iGroup; i++) > { > mdsfr.getGroup(i, mdGroup); // what does this line do?? > > if (mdGroup.get(new MDEntryType()).ToString() == "0") > //bid > { > MarketDepthData md = new > MarketDepthData(Int32.Parse(mdGroup.get(new MDEntrySize()).ToString()), > mdGroup.get(new MDEntryPx()).ToString()); > mdupdate.bidList.Add(md.Price, md); > > } > else if (mdGroup.get(new MDEntryType()).ToString() == "1") > //sell > { > MarketDepthData md = new > MarketDepthData(Int32.Parse(mdGroup.get(new MDEntrySize()).ToString()), > mdGroup.get(new MDEntryPx()).ToString()); > mdupdate.askList.Add(md.Price, md); > } > else //trade > { > mdupdate.LastPrice = mdGroup.get(new > MDEntryPx()).ToString(); > mdupdate.LastQty = Int32.Parse(mdGroup.get(new > MDEntrySize()).ToString()); > } > > The line I think is "weird" is this one: > > mdsfr.getGroup(i, mdGroup); // what does this line do?? > > The code compiles fine, but I have other issues in my app that don't let > me run it. By the way, mdsfr is a MarketDataSnapshotFullRefresh message. > Does anyone have any suggestions as to how I could improve this? > > thanks! > > -- View this message in context: http://www.nabble.com/weird-code-tp15836751p15843272.html Sent from the QuickFIX - Dev mailing list archive at Nabble.com. |
From: azmat <mr...@gm...> - 2008-03-04 20:50:00
|
All, I am nicely moving along creating my first ever FIX app and would like to thank everyone in helping me with this journey. I am now able to send market data messages, however have problems with the Snapshot / Full Refresh messages that are returned. This is what I wrote. I based it off of what was written in the documentation (http://quickfixengine.org/quickfix/doc/html/csharp/repeating_groups_2.html) int iGroup = Int32.Parse(mdsfr.get(new NoMDEntries()).ToString()); QuickFix42.MarketDataSnapshotFullRefresh.NoMDEntries mdGroup = new QuickFix42.MarketDataSnapshotFullRefresh.NoMDEntries(); MDEntryType entryType = new MDEntryType(); MDEntryPx entryPrice = new MDEntryPx(); MDEntrySize entrySize = new MDEntrySize(); for(uint i=0; i<iGroup; i++) { mdsfr.getGroup(i, mdGroup); // what does this line do?? if (mdGroup.get(new MDEntryType()).ToString() == "0") //bid { MarketDepthData md = new MarketDepthData(Int32.Parse(mdGroup.get(new MDEntrySize()).ToString()), mdGroup.get(new MDEntryPx()).ToString()); mdupdate.bidList.Add(md.Price, md); } else if (mdGroup.get(new MDEntryType()).ToString() == "1") //sell { MarketDepthData md = new MarketDepthData(Int32.Parse(mdGroup.get(new MDEntrySize()).ToString()), mdGroup.get(new MDEntryPx()).ToString()); mdupdate.askList.Add(md.Price, md); } else //trade { mdupdate.LastPrice = mdGroup.get(new MDEntryPx()).ToString(); mdupdate.LastQty = Int32.Parse(mdGroup.get(new MDEntrySize()).ToString()); } The line I think is "weird" is this one: mdsfr.getGroup(i, mdGroup); // what does this line do?? The code compiles fine, but I have other issues in my app that don't let me run it. By the way, mdsfr is a MarketDataSnapshotFullRefresh message. Does anyone have any suggestions as to how I could improve this? thanks! -- View this message in context: http://www.nabble.com/weird-code-tp15836751p15836751.html Sent from the QuickFIX - Dev mailing list archive at Nabble.com. |
From: azmat <mr...@gm...> - 2008-03-04 18:40:13
|
All- I've setup two connections in my config file, but how do I start both sessions? Would they both get called if their information is in the "FixSettings.txt" file with the code below (when _initiator.start() is called): if (_initiator != null) throw new Exception("Already Started"); try { SessionSettings settings = new SessionSettings("FixSettings.txt"); QFWrapper application = new QFWrapper(this); FileStoreFactory storeFactory = new FileStoreFactory(settings); FileLogFactory logFactory = new FileLogFactory(settings); MessageFactory messageFactory = new DefaultMessageFactory(); _initiator = new ThreadedSocketInitiator(application, storeFactory, settings, logFactory, messageFactory); _initiator.start(); } catch (Exception e) { System.Diagnostics.Trace.WriteLine("FixServer.Start() ERROR: " + e.Message); } Also, I need to setup another session for Drop Copies, and I imagine the same rule applies to 3 sessions as it does with 2. Basically what I will be doing is cracking any messages received, and if the messages contained are MarketData Messages (specifically snapshot, incremental, or reject messages), I will use the appropriate market-data logic in my application. If it is an execution Report then the cracker will pick it up and we can take care of it. Is this the correct approach? thanks! azmat -- View this message in context: http://www.nabble.com/multiple-sessions-connections-tp15834166p15834166.html Sent from the QuickFIX - Dev mailing list archive at Nabble.com. |