Thread: [Quickfix-users] QuickFixJ: Problem with message length calculation when the recei ved message cont
Brought to you by:
orenmnero
From: Parhami, F. <Far...@gs...> - 2006-04-03 20:59:10
|
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'. I looked at the code and 'calculateLength' method of the 'FieldMap.java' class thinks that '96=10001=Canonical.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: 8=FIX.4.2^A9=01158^A35=U6^A34=4^A49=SAGW^A56=N03L43^A52=20060403-20:25:11.63 0^A95=1092^A 96=10001=Canonical.1.00^A10002=001058^A25001=01^A10003=SAPI_ADMRESP^A10004=S UBSCRIBE_RESP^A10009=705^A10012=01^A 10005=SPGW^A10006=SAPI^A10007=0^A10010=16:25:11.537^A10045=SDQADL:01:/SDB/EN T/@/@/STKSDLL:7^A10955=Y^A10963=043^A 10961=03^A11285=N^A11339=823,980^A10919=N^A11111=86795696^A10898=043^A10920= ~^A10938=N^A11340=5- 9.99^A11343=0.20^A 11344=~^A11341=~^A11342=0.15^A11345=10- 14.99^A11348=0.25^A11349=~^A11346=~^A11347=0.15^A11350=15- 19.99^A 11353=0.30^A11354=~^A11351=~^A11352=0.20^A11338=23SEP05^A10981=0^A10485=N^A1 0761=0^A11220=~^A11224=N^A 10808=N^A10921=~^A10960=N^A10957=N^A11329=N^A11286=0^A11214=USA^A10917=Y^A11 288=0^A10906=N^A10737=0.01^A10956=~^A 10967=~^A10965=~^A10809=0^A10762=N^A10763=N^A10712=1^A10905=09:30:00^A10918= YA0101^A10951=Y^A10469=1^A10949=1^A 10487=Q^A10950=Y^A10899=N^A10380=N^A10696=03^A11082=18.41^A10217=12^A10954=N ^A10708=E^A10958=N^A11213=US ^A 11334=N^A11332=N^A11331=N^A11330=N^A11335=N^A11333=N^A10767=3^A10974=~^A1098 0=AIRTRAN HOLDINGS ^A 11289=N^A10912=4^A10915=0501^A10914=0501^A10975=N^A10913=SLK^A10698=055^A106 66=AAI^A10903=S^A11328=N^A10624=L^A 11287=0^A10699=0^A10962=L^A11227=SUB1^A11229=5^A11228=1^A11236=16:24:41.521^ A11277=16:25:11.630^A^A10=141^A 30226 [SocketIoProcessor] ERROR quickfix.mina.initiator.InitiatorProtocolHandler - Invalid message: Actual body length=1157, Expected body length=1158 |
From: Oren M. <or...@qu...> - 2006-04-03 21:38:02
|
Faraz, 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. 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? --oren ----- Original Message -----=20 From: Parhami, Faraz=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' 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: = 8=3DFIX.4.2^A9=3D01158^A35=3DU6^A34=3D4^A49=3DSAGW^A56=3DN03L43^A52=3D200= 60403-20:25:11.630^A95=3D1092^A = 96=3D10001=3DCanonical.1.00^A10002=3D001058^A25001=3D01^A10003=3DSAPI_ADM= RESP^A10004=3DSUBSCRIBE_RESP^A10009=3D705^A10012=3D01^A = 10005=3DSPGW^A10006=3DSAPI^A10007=3D0^A10010=3D16:25:11.537^A10045=3DSDQA= DL:01:/SDB/ENT/@/@/STKSDLL:7^A10955=3DY^A10963=3D043^A = 10961=3D03^A11285=3DN^A11339=3D823,980^A10919=3DN^A11111=3D86795696^A1089= 8=3D043^A10920=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 = 11353=3D0.30^A11354=3D~^A11351=3D~^A11352=3D0.20^A11338=3D23SEP05^A10981=3D= 0^A10485=3DN^A10761=3D0^A11220=3D~^A11224=3DN^A = 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 = 10967=3D~^A10965=3D~^A10809=3D0^A10762=3DN^A10763=3DN^A10712=3D1^A10905=3D= 09:30:00^A10918=3DYA0101^A10951=3DY^A10469=3D1^A10949=3D1^A = 10487=3DQ^A10950=3DY^A10899=3DN^A10380=3DN^A10696=3D03^A11082=3D18.41^A10= 217=3D12^A10954=3DN^A10708=3DE^A10958=3DN^A11213=3DUS ^A = 11334=3DN^A11332=3DN^A11331=3DN^A11330=3DN^A11335=3DN^A11333=3DN^A10767=3D= 3^A10974=3D~^A10980=3DAIRTRAN HOLDINGS ^A = 11289=3DN^A10912=3D4^A10915=3D0501^A10914=3D0501^A10975=3DN^A10913=3DSLK^= A10698=3D055^A10666=3DAAI^A10903=3DS^A11328=3DN^A10624=3DL^A = 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 30226 [SocketIoProcessor] ERROR = quickfix.mina.initiator.InitiatorProtocolHandler - Invalid message: = Actual body length=3D1157, Expected body length=3D1158 |