Thread: Re: [Quickfix-developers] NoRelatedSym Class
Brought to you by:
orenmnero
From: <OM...@th...> - 2003-04-25 15:14:37
|
What is the nature of your problem? Are you getting compilation errors? Runtime errors? Any errors? Which API are you using? Adding fields to a group should be just like adding them to a message, using the set or setField methods. --oren |---------+-----------------------------------------------> | | "Jon Dahl" | | | <jd...@Li...> | | | Sent by: | | | qui...@li...ur| | | ceforge.net | | | | | | | | | 04/25/2003 09:58 AM | | | | |---------+-----------------------------------------------> >----------------------------------------------------------------------------------------------| | | | To: <qui...@li...> | | cc: | | Subject: [Quickfix-developers] NoRelatedSym Class | >----------------------------------------------------------------------------------------------| Hello All, I have been try to code a QuoteRequest message and have run into a snag with the NoRelatedSym class. What is the best way to set the fields in this class? For example I want to set the Symbol, StrikePrice and some other fields in that class. Anyone give me a pointer on how to set those fields? Thanks, JD |
From: Jon D. <jd...@Li...> - 2003-04-25 15:26:57
|
Here is the QuoteRequest Function FIX43::QuoteRequest Application::queryQuoteRequest43() { FIX43::QuoteRequest quoteRequest(FIX::QuoteReqID( = genQuoteRequestID())); quoteRequest.set( queryStrikePrice() ); quoteRequest.set( queryTimeInForce() ); quoteRequest.set( queryMaturityMonthYear() ); quoteRequest.set( querySide() ); quoteRequest.set( queryQuoteType() ); quoteRequest.set( queryNoRelatedSym() ); quoteRequest.set( queryCFICode() ); =09 queryHeader(quoteRequest.getHeader()); return quoteRequest; } And here is the compile error(s) abbreviated for other fields because = results are the same Compiling... Application.cpp E:\quickfix\examples\tradeclient\Application.cpp(207) : error C2664: = 'void __thiscall FIX43::QuoteRequest::set(const class FIX::QuoteReqID = &)' : cannot convert parameter 1 from 'class FIX::StrikePrice' to 'const = class FIX::QuoteReqID &' Reason: cannot convert from 'class FIX::StrikePrice' to 'const = class FIX::QuoteReqID' No constructor could take the source type, or constructor = overload resolution was ambiguous ... Obviously I am doing something wrong by not fully understanding the lib = -- "Tarter Sauce" -----Original Message----- From: OM...@th... [mailto:OM...@th...] Sent: Friday, April 25, 2003 10:14 AM To: Jon Dahl Cc: qui...@li...; qui...@li... Subject: Re: [Quickfix-developers] NoRelatedSym Class What is the nature of your problem? Are you getting compilation errors? Runtime errors? Any errors? Which API are you using? Adding fields to = a group should be just like adding them to a message, using the set or setField methods. --oren |---------+-----------------------------------------------> | | "Jon Dahl" | | | <jd...@Li...> | | | Sent by: | | | qui...@li...ur| | | ceforge.net | | | | | | | | | 04/25/2003 09:58 AM | | | | |---------+-----------------------------------------------> = >------------------------------------------------------------------------= ----------------------| | = | | To: <qui...@li...> = | | cc: = | | Subject: [Quickfix-developers] NoRelatedSym Class = | = >------------------------------------------------------------------------= ----------------------| Hello All, I have been try to code a QuoteRequest message and have run into a = snag with the NoRelatedSym class. What is the best way to set the fields in = this class? For example I want to set the Symbol, StrikePrice and some other = fields in that class. Anyone give me a pointer on how to set those fields? Thanks, JD |
From: Oren M. <ore...@ya...> - 2003-04-25 15:54:59
|
You need to set those fields into the group, not the main message body. Your method should look more like this. FIX43::QuoteRequest Application::queryQuoteRequest43() { FIX43::QuoteRequest quoteRequest(FIX::QuoteReqID( genQuoteRequestID())); FIX43::QuoteRequest::NoRelatedSym relatedSym; relatedSym.set( queryStrikePrice() ); relatedSym.set( queryMaturityMonthYear() ); relatedSym.set( querySide() ); relatedSym.set( queryQuoteType() ); relatedSym.set( queryCFICode() ); quoteRequest.addGroup( relatedSym ); queryHeader(quoteRequest.getHeader()); return quoteRequest; } I don't believe that TimeInForce is a member of that message, but if you need to you can use setField to force it into the group. You don't need to explicitly set the NoRelatedSym as this will be done for you with the correct value. --- Jon Dahl <jd...@Li...> wrote: > Here is the QuoteRequest Function > FIX43::QuoteRequest > Application::queryQuoteRequest43() > { > FIX43::QuoteRequest quoteRequest(FIX::QuoteReqID( > genQuoteRequestID())); > > quoteRequest.set( queryStrikePrice() ); > quoteRequest.set( queryTimeInForce() ); > quoteRequest.set( queryMaturityMonthYear() ); > quoteRequest.set( querySide() ); > quoteRequest.set( queryQuoteType() ); > quoteRequest.set( queryNoRelatedSym() ); > quoteRequest.set( queryCFICode() ); > > queryHeader(quoteRequest.getHeader()); > > return quoteRequest; > > } > > And here is the compile error(s) abbreviated for > other fields because results are the same > Compiling... > Application.cpp > E:\quickfix\examples\tradeclient\Application.cpp(207) > : error C2664: 'void __thiscall > FIX43::QuoteRequest::set(const class FIX::QuoteReqID > &)' : cannot convert parameter 1 from 'class > FIX::StrikePrice' to 'const class FIX::QuoteReqID &' > Reason: cannot convert from 'class > FIX::StrikePrice' to 'const class FIX::QuoteReqID' > No constructor could take the source type, > or constructor overload resolution was ambiguous > > ... > > Obviously I am doing something wrong by not fully > understanding the lib -- "Tarter Sauce" > > -----Original Message----- > From: OM...@th... > [mailto:OM...@th...] > Sent: Friday, April 25, 2003 10:14 AM > To: Jon Dahl > Cc: qui...@li...; > qui...@li... > Subject: Re: [Quickfix-developers] NoRelatedSym > Class > > > > What is the nature of your problem? Are you getting > compilation errors? > Runtime errors? Any errors? Which API are you > using? Adding fields to a > group should be just like adding them to a message, > using the set or > setField methods. > > --oren > > > > |---------+-----------------------------------------------> > | | "Jon Dahl" > | > | | <jd...@Li...> > | > | | Sent by: > | > | | > qui...@li...ur| > | | ceforge.net > | > | | > | > | | > | > | | 04/25/2003 09:58 AM > | > | | > | > |---------+-----------------------------------------------> > > >----------------------------------------------------------------------------------------------| > | > | > | To: > <qui...@li...> > | > | cc: > | > | Subject: [Quickfix-developers] > NoRelatedSym Class > | > > >----------------------------------------------------------------------------------------------| > > > > > Hello All, > > I have been try to code a QuoteRequest message > and have run into a snag > with the NoRelatedSym class. What is the best way to > set the fields in this > class? > > For example I want to set the Symbol, > StrikePrice and some other fields > in that class. Anyone give me a pointer on how to > set those fields? > > Thanks, > > JD > > > > > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers __________________________________________________ Do you Yahoo!? The New Yahoo! Search - Faster. Easier. Bingo http://search.yahoo.com |
From: Bishop, B. <Bar...@gs...> - 2003-04-25 15:29:59
|
Hi, This is the way I've done this in my java application. Put the values in the group and then add the group to the message. org.quickfix.fix42.QuoteRequest message = new org.quickfix.fix42.QuoteRequest(); message.set( new org.quickfix.field.QuoteReqID( requestId ) ); message.set( new org.quickfix.field.NoRelatedSym( 1 ) ); org.quickfix.fix42.QuoteRequest.NoRelatedSym groupNoRelatedSym = new org.quickfix.fix42.QuoteRequest.NoRelatedSym(); groupNoRelatedSym.set( new org.quickfix.field.IDSource( request.idSource ) ); groupNoRelatedSym.set( new org.quickfix.field.SecurityType( request.securityType ) ); groupNoRelatedSym.set( new org.quickfix.field.SecurityExchange( request.exchange ) ); groupNoRelatedSym.set( new org.quickfix.field.Currency( request.currency ) ); groupNoRelatedSym.set( new org.quickfix.field.Symbol( request.symbol ) ); groupNoRelatedSym.set( new org.quickfix.field.SecurityID( request.securityId ) ); groupNoRelatedSym.set( new org.quickfix.field.Side( chSide.charValue() ) ); groupNoRelatedSym.set( new org.quickfix.field.OrderQty( request.orderQuantity.doubleValue() ) ); groupNoRelatedSym.set( new org.quickfix.field.FutSettDate( request.futureSettlementDate ) ); groupNoRelatedSym.set( new org.quickfix.field.TransactTime( request.transactTime ) ); message.addGroup( groupNoRelatedSym ); All the best, barry -----Original Message----- From: Jon Dahl [mailto:jd...@Li...] Sent: 25 April 2003 15:58 To: qui...@li... Subject: [Quickfix-developers] NoRelatedSym Class Hello All, I have been try to code a QuoteRequest message and have run into a snag with the NoRelatedSym class. What is the best way to set the fields in this class? For example I want to set the Symbol, StrikePrice and some other fields in that class. Anyone give me a pointer on how to set those fields? Thanks, JD |
From: Mike H. <mi...@an...> - 2003-04-28 09:47:15
|
Hi All, i also seem to have problems using the group NoRelatedSym in a MarketDataRequest message. i have followed the previous threads on this but to no avail. Basically i always get a 'Tag not defined for this message type' for Symbol (55). my setup (Fix4.3, java1.4, QF 1.4.1, linux build gcc3.2) i've applied the following DataDictionary patches from Oren's previous mail (and i have the latest DataDictionary from cvs): =20 http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/quickfix/quickfix/src/C%2b%2= b/DataDictionary.h.diff?r1=3D1.10&r2=3D1.11 http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/quickfix/quickfix/src/C%2b%2= b/DataDictionary.cpp.diff?r1=3D1.14&r2=3D1.15 here's my message creation code: org.quickfix.fix43.MarketDataRequest.NoMDEntryTypes marketDataEntryGroup =3D new org.quickfix.fix43.MarketDataRequest.NoMDEntryTypes(); MDEntryType mdType =3D new MDEntryType(); mdType.setValue(MDEntryType.BID); marketDataEntryGroup.set(mdType); org.quickfix.fix43.MarketDataRequest.NoRelatedSym symbolGroup =3D new org.quickfix.fix43.MarketDataRequest.NoRelatedSym(); =20 symbolGroup.set(new Symbol(md.getSymbol())); =20 SubscriptionRequestType subType =3D new SubscriptionRequestType(); subType.setValue(SubscriptionRequestType.SNAPSHOT); org.quickfix.fix43.MarketDataRequest message =3D new org.quickfix.fix43.MarketDataRequest(); message.set(new MDReqID( md.getID())); message.set(subType); message.set(new MarketDepth(((Integer)md.getMarketDepth()).intValue())); message.addGroup(marketDataEntryGroup); message.addGroup(symbolGroup); send(message, md.getSessionID()); And this is what it looks like prior to being sent: <message> <header> <field number=3D"8" value=3D"FIX.4.3"/> <field number=3D"35" value=3D"V"/> </header> <body> <field number=3D"146" value=3D"1"/> <field number=3D"262" value=3D"1"/> <field number=3D"263" value=3D"0"/> <field number=3D"264" value=3D"0"/> <field number=3D"267" value=3D"1"/> <group> <field number=3D"55" value=3D"tsco.l"/> </group> <group> <field number=3D"269" value=3D"0"/> </group> </body> <trailer> </trailer> </message> Any ideas what could be wrong, Am i doing something stupid ?? Cheers, Mike |
From: Oren M. <ore...@ya...> - 2003-04-28 17:31:24
|
Did you link the patched version to the receiving application as well? Mike Hepburn <mi...@an...> wrote:Hi All, i also seem to have problems using the group NoRelatedSym in a MarketDataRequest message. i have followed the previous threads on this but to no avail. Basically i always get a 'Tag not defined for this message type' for Symbol (55). my setup (Fix4.3, java1.4, QF 1.4.1, linux build gcc3.2) i've applied the following DataDictionary patches from Oren's previous mail (and i have the latest DataDictionary from cvs): http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/quickfix/quickfix/src/C%2b%2b/DataDictionary.h.diff?r1=1.10&r2=1.11 http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/quickfix/quickfix/src/C%2b%2b/DataDictionary.cpp.diff?r1=1.14&r2=1.15 here's my message creation code: org.quickfix.fix43.MarketDataRequest.NoMDEntryTypes marketDataEntryGroup = new org.quickfix.fix43.MarketDataRequest.NoMDEntryTypes(); MDEntryType mdType = new MDEntryType(); mdType.setValue(MDEntryType.BID); marketDataEntryGroup.set(mdType); org.quickfix.fix43.MarketDataRequest.NoRelatedSym symbolGroup = new org.quickfix.fix43.MarketDataRequest.NoRelatedSym(); symbolGroup.set(new Symbol(md.getSymbol())); SubscriptionRequestType subType = new SubscriptionRequestType(); subType.setValue(SubscriptionRequestType.SNAPSHOT); org.quickfix.fix43.MarketDataRequest message = new org.quickfix.fix43.MarketDataRequest(); message.set(new MDReqID( md.getID())); message.set(subType); message.set(new MarketDepth(((Integer)md.getMarketDepth()).intValue())); message.addGroup(marketDataEntryGroup); message.addGroup(symbolGroup); send(message, md.getSessionID()); And this is what it looks like prior to being sent: Any ideas what could be wrong, Am i doing something stupid ?? Cheers, Mike > ATTACHMENT part 2 application/pgp-signature name=signature.asc --------------------------------- Do you Yahoo!? The New Yahoo! Search - Faster. Easier. Bingo. |
From: Mike H. <mi...@an...> - 2003-04-30 09:52:31
|
Hi Oren, i have narrowed this down to being a java problem. I added a validation test in C++ for the MarketDataRequest message and it passed OK. the XML data structure (from toXML()) produced by C++ and java is identical. Unfortunately there are no java bindings for the DataDictionary class - so i couldn't repeat the test in java. i considered implementing DataDictionary::validate via jni but thought something more basic must be going on. in java the data dictionary (FIX43.xml) appears to load OK and validate other message types (e.g NewOrderSingle's) OK - my next step is to strip the DataDictionary XML file down to only have the MarketDataRequest to see if i get further. Cheers Mike On Mon, 2003-04-28 at 20:13, Oren Miller wrote: > Yeah. DataDictionary is a good place to start. I would take a look at t= he DataDictionaryTestCase. If there is a problem, it will probably be one = of two things. 1) the XML file is not being loaded correctly2) there is a p= roblem with the validation itself You can verify #2 by adding some asserts = to the readFromFile test. If you do not detect a problem there, then you c= an add tests to checkIsInMessage (test for the code that determines a field= belongs to a message), and checkValidFormat (test for full validation of a= message). You may want to synch up with CVS so that you have the latest co= de and tests. If you want to debug or use trace statements instead. I would= recommend creating a DD XML file that only contains the message you are co= ncerned with. You can then look for problems reading from the file or vali= dating. I prefer, however, to have a failing test that exposes the problem= before I venture into the code. Let use know if you find anything or if yo= u need any other! > pointers. If you are able to provide a small project that can demonstra= te the error, that would allow myself and others to be more active in helpi= ng you. Good luck. mike <mi...@an...> wrote:HI Oren, yes, both the acce= ptor and receiver use the same quickfix library & share the same DataDictio= nary (my app is written uses the java bindings to QF and both statically lo= ad the quickfix library via jni). is there a good place for me to put some = debug in the source to get to the bottom of this ? is DataDistionary.cpp a = good place to start ? CheersMike-----Original Message----- > From: Oren Miller [mailto:ore...@ya...]=20 > Sent: Monday, April 28, 2003 6:31 PM > To: Mike Hepburn; quickfix > Subject: RE: [Quickfix-developers] NoRelatedSym Class >=20 > Did you link the patched version to the receiving application as well? >=20 > Mike Hepburn <mi...@an...> wrote: Hi All, >=20 > i also seem to have problems using the group NoRelatedSym in a > MarketDataRequest message. i have followed the previous threads on this > but to no avail. >=20 > Basically i always get a 'Tag not defined for this message type' for > Symbol (55). >=20 > my setup (Fix4.3, java1.4, QF 1.4.1, linux build gcc3.2) >=20 > i've applied the following DataDictionary patches from Oren's previous > mail (and i have the latest DataDictionary from cvs): >=20 > http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/quickfix/quickfix/src/C%2b= %2b/DataDictionary.h.diff?r1=3D1.10&r2=3D1.11 > http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/quickfix/quickfix/src/C%2b= %2b/DataDictionary.cpp.diff?r1=3D1.14&r2=3D1.15 >=20 >=20 > here's my message creation code: >=20 >=20 > org.quickfix.fix43.MarketDataRequest.NoMDEntryTypes marketDataEntryGroup > =3D new org.quickfix.fix43.MarketDataRequest.NoMDEntryType! s(); >=20 > MDEntryType mdType =3D new MDEntryType(); > mdType.setValue(MDEntryType.BID); >=20 > marketDataEntryGroup.set(mdType); >=20 > org.quickfix.fix43.MarketDataRequest.NoRelatedSym symbolGroup =3D > new org.quickfix.fix43.MarketDataRequest.NoRelatedSym(); >=20 > symbolGroup.set(new Symbol(md.getSymbol())); >=20 > SubscriptionRequestType subType =3D new SubscriptionRequestType(); > subType.setValue(SubscriptionRequestType.SNAPSHOT); >=20 > org.quickfix.fix43.MarketDataRequest message =3D > new org.quickfix.fix43.MarketDataRequest(); >=20 > message.set(new MDReqID( md.getID())); > message.set(subType); > message.set(new MarketDepth(((Integer)md.getMarketDepth()).intValue())); > message.addGroup(marketDataEntryGroup); > message.addGroup(symbolGroup); >=20 > send(message, md.getSessionID()); >=20 >=20 > And this is what it looks like prior to being sent: >=20 >=20 >=20 >=20 >=20 >=20 > !=20 >=20 >=20 >=20 >=20 >=20 >=20 >=20 >=20 >=20 >=20 >=20 >=20 >=20 >=20 >=20 >=20 >=20 > Any ideas what could be wrong, Am i doing something stupid ?? >=20 > Cheers, > Mike >=20 >=20 > > ATTACHMENT part 2 application/pgp-signature name=3Dsignature.asc=20 >=20 > --------------------------------- > Do you Yahoo!? > The New Yahoo! Search - Faster. Easier. Bingo. >=20 > --------------------------------- > Do you Yahoo!? > The New Yahoo! Search - Faster. Easier. Bingo. --=20 ___________________________________________________________________ Mike Hepburn Phone: +44 (0)207 749 7900 Anvil Software Limited Fax: +44 (0)207 749 7916 51-53 Rivington Street E-mail: mi...@an... London EC2A 3SE ef...@ho... |
From: Mike H. <mi...@an...> - 2003-04-30 11:32:03
|
All, Some further testing reveals that without validation (i.e no DataDictionary defined) the acceptor dump of the incoming message appears wrong: sent: <message> <header> <field number=3D"8" value=3D"FIX.4.3"/> <field number=3D"35" value=3D"V"/> </header> <body> <field number=3D"146" value=3D"1"/> <field number=3D"262" value=3D"1"/> <field number=3D"263" value=3D"0"/> <field number=3D"264" value=3D"0"/> <field number=3D"267" value=3D"1"/> <group> <field number=3D"55" value=3D"tsco.l"/> </group> <group> <field number=3D"269" value=3D"0"/> </group> </body> <trailer> </trailer> </message> received(no validation): <message> <header> <field number=3D"8" value=3D"FIX.4.3"/> <field number=3D"9" value=3D"94"/> <field number=3D"35" value=3D"V"/> <field number=3D"34" value=3D"3"/> <field number=3D"49" value=3D"CLIENT1"/> <field number=3D"52" value=3D"20030430-11:21:01"/> <field number=3D"56" value=3D"AM"/> </header> <body> <field number=3D"55" value=3D"tsco.l"/> <field number=3D"146" value=3D"1"/> <field number=3D"262" value=3D"1"/> <field number=3D"263" value=3D"0"/> <field number=3D"264" value=3D"0"/> <field number=3D"267" value=3D"1"/> <field number=3D"269" value=3D"0"/> </body> <trailer> <field number=3D"10" value=3D"224"/> </trailer> </message> It looks like message XML encoding still has bugs for repeating groups ? i ran ethereal over the connection to see if it was the encoding or decoding - looks like it is the encoding: Transmission Control Protocol, Src Port: 46450 (46450), Dst Port: 5001 (5001), Seq: 1717567461, Ack: 1741597886, Len: 116 Source port: 46450 (46450) Destination port: 5001 (5001) Sequence number: 1717567461 Next sequence number: 1717567577 Acknowledgement number: 1741597886 Header length: 32 bytes Flags: 0x0018 (PSH, ACK) 0... .... =3D Congestion Window Reduced (CWR): Not set .0.. .... =3D ECN-Echo: Not set ..0. .... =3D Urgent: Not set ...1 .... =3D Acknowledgment: Set .... 1... =3D Push: Set .... .0.. =3D Reset: Not set .... ..0. =3D Syn: Not set .... ...0 =3D Fin: Not set Window size: 6432 Checksum: 0x9704 (correct) Options: (12 bytes) NOP NOP Time stamp: tsval 250859949, tsecr 245892923 Financial Information eXchange Protocol BeginString (8): FIX.4.3 BodyLength (9): 94 MsgType (35): V MsgSeqNum (34): 3 SenderCompID (49): CLIENT1 SendingTime (52): 20030430-11:21:01 TargetCompID (56): AM NoRelatedSym (146): 1 Symbol (55): tsco.l MDReqID (262): 1 SubscriptionRequestType (263): 0 MarketDepth (264): 0 NoMDEntryTypes (267): 1 MDEntryType (269): 0 CheckSum (10): 224 Frame 2 (66 bytes on wire, 66 bytes captured) The 'on the wire' message doesn't have the group's defined either. Does anyone else see this using the java bindings, FIX43.xml and repeating groups ? =20 Cheers Mike=20 On Wed, 2003-04-30 at 10:52, Mike Hepburn wrote: > Hi Oren, >=20 > i have narrowed this down to being a java problem. I added a validation > test in C++ for the MarketDataRequest message and it passed OK. the XML > data structure (from toXML()) produced by C++ and java is identical. >=20 > Unfortunately there are no java bindings for the DataDictionary class - > so i couldn't repeat the test in java. i considered implementing > DataDictionary::validate via jni but thought something more basic must > be going on. >=20 > in java the data dictionary (FIX43.xml) appears to load OK and validate > other message types (e.g NewOrderSingle's) OK - my next step is to strip > the DataDictionary XML file down to only have the MarketDataRequest to > see if i get further. >=20 >=20 > Cheers > Mike >=20 >=20 > On Mon, 2003-04-28 at 20:13, Oren Miller wrote: > > Yeah. DataDictionary is a good place to start. I would take a look at= the DataDictionaryTestCase. If there is a problem, it will probably be on= e of two things. 1) the XML file is not being loaded correctly2) there is a= problem with the validation itself You can verify #2 by adding some assert= s to the readFromFile test. If you do not detect a problem there, then you= can add tests to checkIsInMessage (test for the code that determines a fie= ld belongs to a message), and checkValidFormat (test for full validation of= a message). You may want to synch up with CVS so that you have the latest = code and tests. If you want to debug or use trace statements instead. I wou= ld recommend creating a DD XML file that only contains the message you are = concerned with. You can then look for problems reading from the file or va= lidating. I prefer, however, to have a failing test that exposes the probl= em before I venture into the code. Let use know if you find anything or if = you need any other! > > pointers. If you are able to provide a small project that can demonst= rate the error, that would allow myself and others to be more active in hel= ping you. Good luck. mike <mi...@an...> wrote:HI Oren, yes, both the ac= ceptor and receiver use the same quickfix library & share the same DataDict= ionary (my app is written uses the java bindings to QF and both statically = load the quickfix library via jni). is there a good place for me to put som= e debug in the source to get to the bottom of this ? is DataDistionary.cpp = a good place to start ? CheersMike-----Original Message----- > > From: Oren Miller [mailto:ore...@ya...]=20 > > Sent: Monday, April 28, 2003 6:31 PM > > To: Mike Hepburn; quickfix > > Subject: RE: [Quickfix-developers] NoRelatedSym Class > >=20 > > Did you link the patched version to the receiving application as well? > >=20 > > Mike Hepburn <mi...@an...> wrote: Hi All, > >=20 > > i also seem to have problems using the group NoRelatedSym in a > > MarketDataRequest message. i have followed the previous threads on this > > but to no avail. > >=20 > > Basically i always get a 'Tag not defined for this message type' for > > Symbol (55). > >=20 > > my setup (Fix4.3, java1.4, QF 1.4.1, linux build gcc3.2) > >=20 > > i've applied the following DataDictionary patches from Oren's previous > > mail (and i have the latest DataDictionary from cvs): > >=20 > > http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/quickfix/quickfix/src/C%= 2b%2b/DataDictionary.h.diff?r1=3D1.10&r2=3D1.11 > > http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/quickfix/quickfix/src/C%= 2b%2b/DataDictionary.cpp.diff?r1=3D1.14&r2=3D1.15 > >=20 > >=20 > > here's my message creation code: > >=20 > >=20 > > org.quickfix.fix43.MarketDataRequest.NoMDEntryTypes marketDataEntryGrou= p > > =3D new org.quickfix.fix43.MarketDataRequest.NoMDEntryType! s(); > >=20 > > MDEntryType mdType =3D new MDEntryType(); > > mdType.setValue(MDEntryType.BID); > >=20 > > marketDataEntryGroup.set(mdType); > >=20 > > org.quickfix.fix43.MarketDataRequest.NoRelatedSym symbolGroup =3D > > new org.quickfix.fix43.MarketDataRequest.NoRelatedSym(); > >=20 > > symbolGroup.set(new Symbol(md.getSymbol())); > >=20 > > SubscriptionRequestType subType =3D new SubscriptionRequestType(); > > subType.setValue(SubscriptionRequestType.SNAPSHOT); > >=20 > > org.quickfix.fix43.MarketDataRequest message =3D > > new org.quickfix.fix43.MarketDataRequest(); > >=20 > > message.set(new MDReqID( md.getID())); > > message.set(subType); > > message.set(new MarketDepth(((Integer)md.getMarketDepth()).intValue()))= ; > > message.addGroup(marketDataEntryGroup); > > message.addGroup(symbolGroup); > >=20 > > send(message, md.getSessionID()); > >=20 > >=20 > > And this is what it looks like prior to being sent: > >=20 > >=20 > >=20 > >=20 > >=20 > >=20 > > !=20 > >=20 > >=20 > >=20 > >=20 > >=20 > >=20 > >=20 > >=20 > >=20 > >=20 > >=20 > >=20 > >=20 > >=20 > >=20 > >=20 > >=20 > > Any ideas what could be wrong, Am i doing something stupid ?? > >=20 > > Cheers, > > Mike > >=20 > >=20 > > > ATTACHMENT part 2 application/pgp-signature name=3Dsignature.asc=20 > >=20 > > --------------------------------- > > Do you Yahoo!? > > The New Yahoo! Search - Faster. Easier. Bingo. > >=20 > > --------------------------------- > > Do you Yahoo!? > > The New Yahoo! Search - Faster. Easier. Bingo. > --=20 > ___________________________________________________________________ >=20 > Mike Hepburn Phone: +44 (0)207 749 7900 > Anvil Software Limited Fax: +44 (0)207 749 7916 > 51-53 Rivington Street E-mail: mi...@an... > London EC2A 3SE ef...@ho... >=20 --=20 ___________________________________________________________________ Mike Hepburn Phone: +44 (0)207 749 7900 Anvil Software Limited Fax: +44 (0)207 749 7916 51-53 Rivington Street E-mail: mi...@an... London EC2A 3SE ef...@ho... |
From: Gene G. <mus...@ya...> - 2003-04-30 13:26:22
|
Yes, without validation (DataDict defined in settings) group receiving is broken. This should be highlighted in documentation because almost everyone has run into it. Gene --- Mike Hepburn <mi...@an...> wrote: > All, > > Some further testing reveals that without validation > (i.e no > DataDictionary defined) the acceptor dump of the > incoming message > appears wrong: > > sent: > <message> > <header> > <field number="8" value="FIX.4.3"/> > <field number="35" value="V"/> > </header> > <body> > <field number="146" value="1"/> > <field number="262" value="1"/> > <field number="263" value="0"/> > <field number="264" value="0"/> > <field number="267" value="1"/> > <group> > <field number="55" value="tsco.l"/> > </group> > <group> > <field number="269" value="0"/> > </group> > </body> > <trailer> > </trailer> > </message> > > > received(no validation): > <message> > <header> > <field number="8" value="FIX.4.3"/> > <field number="9" value="94"/> > <field number="35" value="V"/> > <field number="34" value="3"/> > <field number="49" value="CLIENT1"/> > <field number="52" value="20030430-11:21:01"/> > <field number="56" value="AM"/> > </header> > <body> > <field number="55" value="tsco.l"/> > <field number="146" value="1"/> > <field number="262" value="1"/> > <field number="263" value="0"/> > <field number="264" value="0"/> > <field number="267" value="1"/> > <field number="269" value="0"/> > </body> > <trailer> > <field number="10" value="224"/> > </trailer> > </message> > > It looks like message XML encoding still has bugs > for repeating groups ? > i ran ethereal over the connection to see if it was > the encoding or > decoding - looks like it is the encoding: > > Transmission Control Protocol, Src Port: 46450 > (46450), Dst Port: 5001 > (5001), Seq: 1717567461, Ack: 1741597886, Len: 116 > Source port: 46450 (46450) > Destination port: 5001 (5001) > Sequence number: 1717567461 > Next sequence number: 1717567577 > Acknowledgement number: 1741597886 > Header length: 32 bytes > Flags: 0x0018 (PSH, ACK) > 0... .... = Congestion Window Reduced (CWR): > Not set > .0.. .... = ECN-Echo: Not set > ..0. .... = Urgent: Not set > ...1 .... = Acknowledgment: Set > .... 1... = Push: Set > .... .0.. = Reset: Not set > .... ..0. = Syn: Not set > .... ...0 = Fin: Not set > Window size: 6432 > Checksum: 0x9704 (correct) > Options: (12 bytes) > NOP > NOP > Time stamp: tsval 250859949, tsecr 245892923 > Financial Information eXchange Protocol > BeginString (8): FIX.4.3 > BodyLength (9): 94 > MsgType (35): V > MsgSeqNum (34): 3 > SenderCompID (49): CLIENT1 > SendingTime (52): 20030430-11:21:01 > TargetCompID (56): AM > NoRelatedSym (146): 1 > Symbol (55): tsco.l > MDReqID (262): 1 > SubscriptionRequestType (263): 0 > MarketDepth (264): 0 > NoMDEntryTypes (267): 1 > MDEntryType (269): 0 > CheckSum (10): 224 > > Frame 2 (66 bytes on wire, 66 bytes captured) > > The 'on the wire' message doesn't have the group's > defined either. > > Does anyone else see this using the java bindings, > FIX43.xml and > repeating groups ? > > Cheers > Mike > > > > > On Wed, 2003-04-30 at 10:52, Mike Hepburn wrote: > > Hi Oren, > > > > i have narrowed this down to being a java problem. > I added a validation > > test in C++ for the MarketDataRequest message and > it passed OK. the XML > > data structure (from toXML()) produced by C++ and > java is identical. > > > > Unfortunately there are no java bindings for the > DataDictionary class - > > so i couldn't repeat the test in java. i > considered implementing > > DataDictionary::validate via jni but thought > something more basic must > > be going on. > > > > in java the data dictionary (FIX43.xml) appears to > load OK and validate > > other message types (e.g NewOrderSingle's) OK - my > next step is to strip > > the DataDictionary XML file down to only have the > MarketDataRequest to > > see if i get further. > > > > > > Cheers > > Mike > > > > > > On Mon, 2003-04-28 at 20:13, Oren Miller wrote: > > > Yeah. DataDictionary is a good place to start. > I would take a look at the DataDictionaryTestCase. > If there is a problem, it will probably be one of > two things. 1) the XML file is not being loaded > correctly2) there is a problem with the validation > itself You can verify #2 by adding some asserts to > the readFromFile test. If you do not detect a > problem there, then you can add tests to > checkIsInMessage (test for the code that determines > a field belongs to a message), and checkValidFormat > (test for full validation of a message). You may > want to synch up with CVS so that you have the > latest code and tests. If you want to debug or use > trace statements instead. I would recommend creating > a DD XML file that only contains the message you are > concerned with. You can then look for problems > reading from the file or validating. I prefer, > however, to have a failing test that exposes the > problem before I venture into the code. Let use know > if you find anything or if you need any other! > > > pointers. If you are able to provide a small > project that can demonstrate the error, that would > allow myself and others to be more active in helping > you. Good luck. mike <mi...@an...> wrote:HI > Oren, yes, both the acceptor and receiver use the > same quickfix library & share the same > DataDictionary (my app is written uses the java > bindings to QF and both statically load the quickfix > library via jni). is there a good place for me to > put some debug in the source to get to the bottom of > this ? is DataDistionary.cpp a good place to start ? > CheersMike-----Original Message----- > > > From: Oren Miller [mailto:ore...@ya...] > > > Sent: Monday, April 28, 2003 6:31 PM > > > To: Mike Hepburn; quickfix > > > Subject: RE: [Quickfix-developers] NoRelatedSym > Class > > > > > > Did you link the patched version to the > receiving application as well? > > > > > > Mike Hepburn <mi...@an...> wrote: Hi All, > > > > > > i also seem to have problems using the group > NoRelatedSym in a > > > MarketDataRequest message. i have followed the > previous threads on this > > > but to no avail. > > > > === message truncated === > ATTACHMENT part 2 application/pgp-signature name=signature.asc __________________________________ Do you Yahoo!? The New Yahoo! Search - Faster. Easier. Bingo. http://search.yahoo.com |
From: Oren M. <ore...@ya...> - 2003-04-30 16:51:03
|
Yeah, I'm thinking of making the DataDictionary required, unless you explicitly disable it. Maybe a UseDataDictionary setting that defaults to 'Y'. That way a config error will be thrown if they do not specify a DD and they don't explicitly disable it. --- Gene Gorokhovsky <mus...@ya...> wrote: > Yes, without validation (DataDict defined in > settings) > group receiving is broken. This should be > highlighted > in documentation because almost everyone has run > into > it. > > Gene > --- Mike Hepburn <mi...@an...> wrote: > > All, > > > > Some further testing reveals that without > validation > > (i.e no > > DataDictionary defined) the acceptor dump of the > > incoming message > > appears wrong: > > > > sent: > > <message> > > <header> > > <field number="8" value="FIX.4.3"/> > > <field number="35" value="V"/> > > </header> > > <body> > > <field number="146" value="1"/> > > <field number="262" value="1"/> > > <field number="263" value="0"/> > > <field number="264" value="0"/> > > <field number="267" value="1"/> > > <group> > > <field number="55" value="tsco.l"/> > > </group> > > <group> > > <field number="269" value="0"/> > > </group> > > </body> > > <trailer> > > </trailer> > > </message> > > > > > > received(no validation): > > <message> > > <header> > > <field number="8" value="FIX.4.3"/> > > <field number="9" value="94"/> > > <field number="35" value="V"/> > > <field number="34" value="3"/> > > <field number="49" value="CLIENT1"/> > > <field number="52" value="20030430-11:21:01"/> > > <field number="56" value="AM"/> > > </header> > > <body> > > <field number="55" value="tsco.l"/> > > <field number="146" value="1"/> > > <field number="262" value="1"/> > > <field number="263" value="0"/> > > <field number="264" value="0"/> > > <field number="267" value="1"/> > > <field number="269" value="0"/> > > </body> > > <trailer> > > <field number="10" value="224"/> > > </trailer> > > </message> > > > > It looks like message XML encoding still has bugs > > for repeating groups ? > > i ran ethereal over the connection to see if it > was > > the encoding or > > decoding - looks like it is the encoding: > > > > Transmission Control Protocol, Src Port: 46450 > > (46450), Dst Port: 5001 > > (5001), Seq: 1717567461, Ack: 1741597886, Len: 116 > > Source port: 46450 (46450) > > Destination port: 5001 (5001) > > Sequence number: 1717567461 > > Next sequence number: 1717567577 > > Acknowledgement number: 1741597886 > > Header length: 32 bytes > > Flags: 0x0018 (PSH, ACK) > > 0... .... = Congestion Window Reduced > (CWR): > > Not set > > .0.. .... = ECN-Echo: Not set > > ..0. .... = Urgent: Not set > > ...1 .... = Acknowledgment: Set > > .... 1... = Push: Set > > .... .0.. = Reset: Not set > > .... ..0. = Syn: Not set > > .... ...0 = Fin: Not set > > Window size: 6432 > > Checksum: 0x9704 (correct) > > Options: (12 bytes) > > NOP > > NOP > > Time stamp: tsval 250859949, tsecr > 245892923 > > Financial Information eXchange Protocol > > BeginString (8): FIX.4.3 > > BodyLength (9): 94 > > MsgType (35): V > > MsgSeqNum (34): 3 > > SenderCompID (49): CLIENT1 > > SendingTime (52): 20030430-11:21:01 > > TargetCompID (56): AM > > NoRelatedSym (146): 1 > > Symbol (55): tsco.l > > MDReqID (262): 1 > > SubscriptionRequestType (263): 0 > > MarketDepth (264): 0 > > NoMDEntryTypes (267): 1 > > MDEntryType (269): 0 > > CheckSum (10): 224 > > > > Frame 2 (66 bytes on wire, 66 bytes captured) > > > > The 'on the wire' message doesn't have the group's > > defined either. > > > > Does anyone else see this using the java bindings, > > FIX43.xml and > > repeating groups ? > > > > Cheers > > Mike > > > > > > > > > > On Wed, 2003-04-30 at 10:52, Mike Hepburn wrote: > > > Hi Oren, > > > > > > i have narrowed this down to being a java > problem. > > I added a validation > > > test in C++ for the MarketDataRequest message > and > > it passed OK. the XML > > > data structure (from toXML()) produced by C++ > and > > java is identical. > > > > > > Unfortunately there are no java bindings for the > > DataDictionary class - > > > so i couldn't repeat the test in java. i > > considered implementing > > > DataDictionary::validate via jni but thought > > something more basic must > > > be going on. > > > > > > in java the data dictionary (FIX43.xml) appears > to > > load OK and validate > > > other message types (e.g NewOrderSingle's) OK - > my > > next step is to strip > > > the DataDictionary XML file down to only have > the > > MarketDataRequest to > > > see if i get further. > > > > > > > > > Cheers > > > Mike > > > > > > > > > On Mon, 2003-04-28 at 20:13, Oren Miller wrote: > > > > Yeah. DataDictionary is a good place to > start. > > I would take a look at the DataDictionaryTestCase. > > > If there is a problem, it will probably be one of > > two things. 1) the XML file is not being loaded > > correctly2) there is a problem with the validation > > itself You can verify #2 by adding some asserts to > > the readFromFile test. If you do not detect a > > problem there, then you can add tests to > > checkIsInMessage (test for the code that > determines > > a field belongs to a message), and > checkValidFormat > > (test for full validation of a message). You may > > want to synch up with CVS so that you have the > > latest code and tests. If you want to debug or use > > trace statements instead. I would recommend > creating > > a DD XML file that only contains the message you > are > > concerned with. You can then look for problems > > reading from the file or validating. I prefer, > > however, to have a failing test that exposes the > > problem before I venture into the code. Let use > know > > if you find anything or if you need any other! > > > > pointers. If you are able to provide a small > > project that can demonstrate the error, that would > === message truncated === __________________________________ Do you Yahoo!? The New Yahoo! Search - Faster. Easier. Bingo. http://search.yahoo.com |
From: Gene G. <mus...@ya...> - 2003-04-30 13:26:23
|
Yes, without validation (DataDict defined in settings) group receiving is broken. This should be highlighted in documentation because almost everyone has run into it. Gene --- Mike Hepburn <mi...@an...> wrote: > All, > > Some further testing reveals that without validation > (i.e no > DataDictionary defined) the acceptor dump of the > incoming message > appears wrong: > > sent: > <message> > <header> > <field number="8" value="FIX.4.3"/> > <field number="35" value="V"/> > </header> > <body> > <field number="146" value="1"/> > <field number="262" value="1"/> > <field number="263" value="0"/> > <field number="264" value="0"/> > <field number="267" value="1"/> > <group> > <field number="55" value="tsco.l"/> > </group> > <group> > <field number="269" value="0"/> > </group> > </body> > <trailer> > </trailer> > </message> > > > received(no validation): > <message> > <header> > <field number="8" value="FIX.4.3"/> > <field number="9" value="94"/> > <field number="35" value="V"/> > <field number="34" value="3"/> > <field number="49" value="CLIENT1"/> > <field number="52" value="20030430-11:21:01"/> > <field number="56" value="AM"/> > </header> > <body> > <field number="55" value="tsco.l"/> > <field number="146" value="1"/> > <field number="262" value="1"/> > <field number="263" value="0"/> > <field number="264" value="0"/> > <field number="267" value="1"/> > <field number="269" value="0"/> > </body> > <trailer> > <field number="10" value="224"/> > </trailer> > </message> > > It looks like message XML encoding still has bugs > for repeating groups ? > i ran ethereal over the connection to see if it was > the encoding or > decoding - looks like it is the encoding: > > Transmission Control Protocol, Src Port: 46450 > (46450), Dst Port: 5001 > (5001), Seq: 1717567461, Ack: 1741597886, Len: 116 > Source port: 46450 (46450) > Destination port: 5001 (5001) > Sequence number: 1717567461 > Next sequence number: 1717567577 > Acknowledgement number: 1741597886 > Header length: 32 bytes > Flags: 0x0018 (PSH, ACK) > 0... .... = Congestion Window Reduced (CWR): > Not set > .0.. .... = ECN-Echo: Not set > ..0. .... = Urgent: Not set > ...1 .... = Acknowledgment: Set > .... 1... = Push: Set > .... .0.. = Reset: Not set > .... ..0. = Syn: Not set > .... ...0 = Fin: Not set > Window size: 6432 > Checksum: 0x9704 (correct) > Options: (12 bytes) > NOP > NOP > Time stamp: tsval 250859949, tsecr 245892923 > Financial Information eXchange Protocol > BeginString (8): FIX.4.3 > BodyLength (9): 94 > MsgType (35): V > MsgSeqNum (34): 3 > SenderCompID (49): CLIENT1 > SendingTime (52): 20030430-11:21:01 > TargetCompID (56): AM > NoRelatedSym (146): 1 > Symbol (55): tsco.l > MDReqID (262): 1 > SubscriptionRequestType (263): 0 > MarketDepth (264): 0 > NoMDEntryTypes (267): 1 > MDEntryType (269): 0 > CheckSum (10): 224 > > Frame 2 (66 bytes on wire, 66 bytes captured) > > The 'on the wire' message doesn't have the group's > defined either. > > Does anyone else see this using the java bindings, > FIX43.xml and > repeating groups ? > > Cheers > Mike > > > > > On Wed, 2003-04-30 at 10:52, Mike Hepburn wrote: > > Hi Oren, > > > > i have narrowed this down to being a java problem. > I added a validation > > test in C++ for the MarketDataRequest message and > it passed OK. the XML > > data structure (from toXML()) produced by C++ and > java is identical. > > > > Unfortunately there are no java bindings for the > DataDictionary class - > > so i couldn't repeat the test in java. i > considered implementing > > DataDictionary::validate via jni but thought > something more basic must > > be going on. > > > > in java the data dictionary (FIX43.xml) appears to > load OK and validate > > other message types (e.g NewOrderSingle's) OK - my > next step is to strip > > the DataDictionary XML file down to only have the > MarketDataRequest to > > see if i get further. > > > > > > Cheers > > Mike > > > > > > On Mon, 2003-04-28 at 20:13, Oren Miller wrote: > > > Yeah. DataDictionary is a good place to start. > I would take a look at the DataDictionaryTestCase. > If there is a problem, it will probably be one of > two things. 1) the XML file is not being loaded > correctly2) there is a problem with the validation > itself You can verify #2 by adding some asserts to > the readFromFile test. If you do not detect a > problem there, then you can add tests to > checkIsInMessage (test for the code that determines > a field belongs to a message), and checkValidFormat > (test for full validation of a message). You may > want to synch up with CVS so that you have the > latest code and tests. If you want to debug or use > trace statements instead. I would recommend creating > a DD XML file that only contains the message you are > concerned with. You can then look for problems > reading from the file or validating. I prefer, > however, to have a failing test that exposes the > problem before I venture into the code. Let use know > if you find anything or if you need any other! > > > pointers. If you are able to provide a small > project that can demonstrate the error, that would > allow myself and others to be more active in helping > you. Good luck. mike <mi...@an...> wrote:HI > Oren, yes, both the acceptor and receiver use the > same quickfix library & share the same > DataDictionary (my app is written uses the java > bindings to QF and both statically load the quickfix > library via jni). is there a good place for me to > put some debug in the source to get to the bottom of > this ? is DataDistionary.cpp a good place to start ? > CheersMike-----Original Message----- > > > From: Oren Miller [mailto:ore...@ya...] > > > Sent: Monday, April 28, 2003 6:31 PM > > > To: Mike Hepburn; quickfix > > > Subject: RE: [Quickfix-developers] NoRelatedSym > Class > > > > > > Did you link the patched version to the > receiving application as well? > > > > > > Mike Hepburn <mi...@an...> wrote: Hi All, > > > > > > i also seem to have problems using the group > NoRelatedSym in a > > > MarketDataRequest message. i have followed the > previous threads on this > > > but to no avail. > > > > === message truncated === > ATTACHMENT part 2 application/pgp-signature name=signature.asc __________________________________ Do you Yahoo!? The New Yahoo! Search - Faster. Easier. Bingo. http://search.yahoo.com |
From: Mike H. <mi...@an...> - 2003-04-30 14:06:12
|
Thanks Gene. i didn't realise this, sorry. i'll carry on with validation enabled. Cheers Mike On Wed, 2003-04-30 at 14:26, Gene Gorokhovsky wrote: > Yes, without validation (DataDict defined in settings) > group receiving is broken. This should be highlighted > in documentation because almost everyone has run into > it. >=20 > Gene > --- Mike Hepburn <mi...@an...> wrote: > > All, > >=20 > > Some further testing reveals that without validation > > (i.e no > > DataDictionary defined) the acceptor dump of the > > incoming message > > appears wrong: > >=20 > > sent: > > <message> > > <header> > > <field number=3D"8" value=3D"FIX.4.3"/> > > <field number=3D"35" value=3D"V"/> > > </header> > > <body> > > <field number=3D"146" value=3D"1"/> > > <field number=3D"262" value=3D"1"/> > > <field number=3D"263" value=3D"0"/> > > <field number=3D"264" value=3D"0"/> > > <field number=3D"267" value=3D"1"/> > > <group> > > <field number=3D"55" value=3D"tsco.l"/> > > </group> > > <group> > > <field number=3D"269" value=3D"0"/> > > </group> > > </body> > > <trailer> > > </trailer> > > </message> > >=20 > >=20 > > received(no validation): > > <message> > > <header> > > <field number=3D"8" value=3D"FIX.4.3"/> > > <field number=3D"9" value=3D"94"/> > > <field number=3D"35" value=3D"V"/> > > <field number=3D"34" value=3D"3"/> > > <field number=3D"49" value=3D"CLIENT1"/> > > <field number=3D"52" value=3D"20030430-11:21:01"/> > > <field number=3D"56" value=3D"AM"/> > > </header> > > <body> > > <field number=3D"55" value=3D"tsco.l"/> > > <field number=3D"146" value=3D"1"/> > > <field number=3D"262" value=3D"1"/> > > <field number=3D"263" value=3D"0"/> > > <field number=3D"264" value=3D"0"/> > > <field number=3D"267" value=3D"1"/> > > <field number=3D"269" value=3D"0"/> > > </body> > > <trailer> > > <field number=3D"10" value=3D"224"/> > > </trailer> > > </message> > >=20 > > It looks like message XML encoding still has bugs > > for repeating groups ? > > i ran ethereal over the connection to see if it was > > the encoding or > > decoding - looks like it is the encoding: > >=20 > > Transmission Control Protocol, Src Port: 46450 > > (46450), Dst Port: 5001 > > (5001), Seq: 1717567461, Ack: 1741597886, Len: 116 > > Source port: 46450 (46450) > > Destination port: 5001 (5001) > > Sequence number: 1717567461 > > Next sequence number: 1717567577 > > Acknowledgement number: 1741597886 > > Header length: 32 bytes > > Flags: 0x0018 (PSH, ACK) > > 0... .... =3D Congestion Window Reduced (CWR): > > Not set > > .0.. .... =3D ECN-Echo: Not set > > ..0. .... =3D Urgent: Not set > > ...1 .... =3D Acknowledgment: Set > > .... 1... =3D Push: Set > > .... .0.. =3D Reset: Not set > > .... ..0. =3D Syn: Not set > > .... ...0 =3D Fin: Not set > > Window size: 6432 > > Checksum: 0x9704 (correct) > > Options: (12 bytes) > > NOP > > NOP > > Time stamp: tsval 250859949, tsecr 245892923 > > Financial Information eXchange Protocol > > BeginString (8): FIX.4.3 > > BodyLength (9): 94 > > MsgType (35): V > > MsgSeqNum (34): 3 > > SenderCompID (49): CLIENT1 > > SendingTime (52): 20030430-11:21:01 > > TargetCompID (56): AM > > NoRelatedSym (146): 1 > > Symbol (55): tsco.l > > MDReqID (262): 1 > > SubscriptionRequestType (263): 0 > > MarketDepth (264): 0 > > NoMDEntryTypes (267): 1 > > MDEntryType (269): 0 > > CheckSum (10): 224 > >=20 > > Frame 2 (66 bytes on wire, 66 bytes captured) > >=20 > > The 'on the wire' message doesn't have the group's > > defined either. > >=20 > > Does anyone else see this using the java bindings, > > FIX43.xml and > > repeating groups ? > > =20 > > Cheers > > Mike=20 > >=20 > >=20 > >=20 > >=20 > > On Wed, 2003-04-30 at 10:52, Mike Hepburn wrote: > > > Hi Oren, > > >=20 > > > i have narrowed this down to being a java problem. > > I added a validation > > > test in C++ for the MarketDataRequest message and > > it passed OK. the XML > > > data structure (from toXML()) produced by C++ and > > java is identical. > > >=20 > > > Unfortunately there are no java bindings for the > > DataDictionary class - > > > so i couldn't repeat the test in java. i > > considered implementing > > > DataDictionary::validate via jni but thought > > something more basic must > > > be going on. > > >=20 > > > in java the data dictionary (FIX43.xml) appears to > > load OK and validate > > > other message types (e.g NewOrderSingle's) OK - my > > next step is to strip > > > the DataDictionary XML file down to only have the > > MarketDataRequest to > > > see if i get further. > > >=20 > > >=20 > > > Cheers > > > Mike > > >=20 > > >=20 > > > On Mon, 2003-04-28 at 20:13, Oren Miller wrote: > > > > Yeah. DataDictionary is a good place to start.=20 > > I would take a look at the DataDictionaryTestCase.=20 > > If there is a problem, it will probably be one of > > two things. 1) the XML file is not being loaded > > correctly2) there is a problem with the validation > > itself You can verify #2 by adding some asserts to > > the readFromFile test. If you do not detect a > > problem there, then you can add tests to > > checkIsInMessage (test for the code that determines > > a field belongs to a message), and checkValidFormat > > (test for full validation of a message). You may > > want to synch up with CVS so that you have the > > latest code and tests. If you want to debug or use > > trace statements instead. I would recommend creating > > a DD XML file that only contains the message you are > > concerned with. You can then look for problems > > reading from the file or validating. I prefer, > > however, to have a failing test that exposes the > > problem before I venture into the code. Let use know > > if you find anything or if you need any other! > > > > pointers. If you are able to provide a small > > project that can demonstrate the error, that would > > allow myself and others to be more active in helping > > you. Good luck. mike <mi...@an...> wrote:HI > > Oren, yes, both the acceptor and receiver use the > > same quickfix library & share the same > > DataDictionary (my app is written uses the java > > bindings to QF and both statically load the quickfix > > library via jni). is there a good place for me to > > put some debug in the source to get to the bottom of > > this ? is DataDistionary.cpp a good place to start ? > > CheersMike-----Original Message----- > > > > From: Oren Miller [mailto:ore...@ya...]=20 > > > > Sent: Monday, April 28, 2003 6:31 PM > > > > To: Mike Hepburn; quickfix > > > > Subject: RE: [Quickfix-developers] NoRelatedSym > > Class > > > >=20 > > > > Did you link the patched version to the > > receiving application as well? > > > >=20 > > > > Mike Hepburn <mi...@an...> wrote: Hi All, > > > >=20 > > > > i also seem to have problems using the group > > NoRelatedSym in a > > > > MarketDataRequest message. i have followed the > > previous threads on this > > > > but to no avail. > > > >=20 > >=20 > =3D=3D=3D message truncated =3D=3D=3D >=20 > > ATTACHMENT part 2 application/pgp-signature > name=3Dsignature.asc >=20 >=20 >=20 > __________________________________ > Do you Yahoo!? > The New Yahoo! Search - Faster. Easier. Bingo. > http://search.yahoo.com --=20 ___________________________________________________________________ Mike Hepburn Phone: +44 (0)207 749 7900 Anvil Software Limited Fax: +44 (0)207 749 7916 51-53 Rivington Street E-mail: mi...@an... London EC2A 3SE ef...@ho... |