RE: [Quickfix-developers] NoRelatedSym Class
Brought to you by:
orenmnero
|
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...
|