RE: [Quickfix-developers] QuickFixJ: Problem with message length calculation when the recei ved mess
Brought to you by:
orenmnero
|
From: Steve B. <sb...@sm...> - 2006-04-04 09:44:13
|
Oren and Faraz, =20 I'm having some trouble reproducing this problem. AFAICT, the data fields work correctly. I've used raw data fields for supplying passwords to FIX hubs although the passwords didn't have SOHs in them. I've created a unit test using a Logon message with Faraz's content in the raw data field and the message formatting and parsing appears to work correctly. =20 Faraz, I assume you are using a custom data dictionary. Can you send me that dictionary XML? I can then modify my unit test to use your exact message and dictionary. Send it to me directly rather than sending it as an attachment to the list. =20 Oren, if you'll tell me where the related changes were made in the C++ code I'll verify whether or not they are in QFJ as well. =20 Thanks, =20 Steve ________________________________ From: qui...@li... [mailto:qui...@li...] On Behalf Of Oren Miller Sent: Monday, April 03, 2006 11:38 PM To: Parhami, Faraz; qui...@li...; qui...@li... Subject: Re: [Quickfix-developers] QuickFixJ: Problem with message length calculation when the recei ved message contains a set of field/values pairs in the raw data field wh ich is tag '96' =09 =09 Faraz, =20 I assume you are trying to connect to the NYSE Hybrid system. We had to make some modifications to QuickFIX in order to work with this system. Most of these changes have been checked in to the C++ source tree, but I'm not sure they all made it into QuickFIX/J. So just a warning you may run into a couple issues besides this, but we are aware of what they are and can work to move the updates into QuickFIX/J. If you have any specific questions about getting QuickFIX to work with cannonical messages, feel free to ask as we have worked with it extensively. =20 This looks like it may be a bug in how QuickFIX/J is handling data fields. It is supposed to look at field 95 and put all the data into a single field while ignoring any special characters. Steve, are data fields currently supported by QuickFIX/J? =20 --oren ----- Original Message -----=20 From: Parhami, Faraz <mailto:Far...@gs...> =20 To: qui...@li... ; 'qui...@li...'=20 Sent: Monday, April 03, 2006 3:58 PM Subject: [Quickfix-developers] QuickFixJ: Problem with message length calculation when the recei ved message contains a set of field/values pairs in the raw data field wh ich is tag '96' =09 =09 Using QuickFixJ engine, in the following example, the engine does not know that field '96' contains a set of name value pairs (in this case starting with '10001' and ending with '11277'.=20 I looked at the code and 'calculateLength' method of the 'FieldMap.java' class thinks that '96=3D10001=3DCanonical.1.00^A' is one field. So it does not count the terminating SOH at close to the end of message (colored in bold red). Is this a bug? Right now, the engine thinks the length size is one less than expected: =20 =09 8=3DFIX.4.2^A9=3D01158^A35=3DU6^A34=3D4^A49=3DSAGW^A56=3DN03L43^A52=3D200= 60403-20:25:1 1.630^A95=3D1092^A =09 96=3D10001=3DCanonical.1.00^A10002=3D001058^A25001=3D01^A10003=3DSAPI_ADM= RESP^A100 04=3DSUBSCRIBE_RESP^A10009=3D705^A10012=3D01^A =09 10005=3DSPGW^A10006=3DSAPI^A10007=3D0^A10010=3D16:25:11.537^A10045=3DSDQA= DL:01:/SD B/ENT/@/@/STKSDLL:7^A10955=3DY^A10963=3D043^A =09 10961=3D03^A11285=3DN^A11339=3D823,980^A10919=3DN^A11111=3D86795696^A1089= 8=3D043^A10 920=3D~^A10938=3DN^A11340=3D5- 9.99^A11343=3D0.20^A 11344=3D~^A11341=3D~^A11342=3D0.15^A11345=3D10- 14.99^A11348=3D0.25^A11349=3D~^A11346=3D~^A11347=3D0.15^A11350=3D15- = 19.99^A =09 11353=3D0.30^A11354=3D~^A11351=3D~^A11352=3D0.20^A11338=3D23SEP05^A10981=3D= 0^A10485=3D N^A10761=3D0^A11220=3D~^A11224=3DN^A =09 10808=3DN^A10921=3D~^A10960=3DN^A10957=3DN^A11329=3DN^A11286=3D0^A11214=3D= USA^A10917=3DY ^A11288=3D0^A10906=3DN^A10737=3D0.01^A10956=3D~^A =09 10967=3D~^A10965=3D~^A10809=3D0^A10762=3DN^A10763=3DN^A10712=3D1^A10905=3D= 09:30:00^A10 918=3DYA0101^A10951=3DY^A10469=3D1^A10949=3D1^A =09 10487=3DQ^A10950=3DY^A10899=3DN^A10380=3DN^A10696=3D03^A11082=3D18.41^A10= 217=3D12^A109 54=3DN^A10708=3DE^A10958=3DN^A11213=3DUS ^A =09 11334=3DN^A11332=3DN^A11331=3DN^A11330=3DN^A11335=3DN^A11333=3DN^A10767=3D= 3^A10974=3D~^A 10980=3DAIRTRAN HOLDINGS ^A =09 11289=3DN^A10912=3D4^A10915=3D0501^A10914=3D0501^A10975=3DN^A10913=3DSLK^= A10698=3D055^ A10666=3DAAI^A10903=3DS^A11328=3DN^A10624=3DL^A =09 11287=3D0^A10699=3D0^A10962=3DL^A11227=3DSUB1^A11229=3D5^A11228=3D1^A1123= 6=3D16:24:41. 521^A11277=3D16:25:11.630^A^A10=3D141^A =20 30226 [SocketIoProcessor] ERROR quickfix.mina.initiator.InitiatorProtocolHandler - Invalid message: Actual body length=3D1157, Expected body length=3D1158 |