Imported from previous forum
Message Seqn num (34) should be made 6th field and Sending Time (52) should be made 7th field thereby pushing ApplVerID (1128) to 8th position. Message Seqn num and Sending Time will be present in all messages because Tags 8, 9, 35, 49, 56, 34 and 52 are the only Required Tags from Standard Header and Tags 8, 9, 35 have had positional requirements in the start of message from FIX.4.0 onwards, Tags 49 and 56 have Positional requirements in the start of message from FIX.5.0-SP1 onwards.
Parsing efficiency would improve by this ordering because all required Tags will always be present in the beginning of every message as the first seven fields in fixed order. Other Standard Header tags are optional and Body tags depend on Message Type.
An example of a minimum FIX message is a Heartbeat without TestRequestID (112)
^8=FIXT.1.1^9=77^35=0^49=MAHESH^56=FPL^34=1000^52=20081118-08:15:15^10=007^
Regards,
K. Mahesh
[ original email was from Clive Browning - clive.browning@rapidaddition.co.uk ]
Hi Mahesh,
You have valid points re position of mandatory header fields… i.e. those that will always be required on all messages.
Howevever, I am not sure why Message Seq Num should be 6th field in particular?
There are arguments that it should be 3rd… so that you can check session version, message body length and then seq num is correct… and therefore reject messages not conforming to those validations asap before further processing
Clive
Message Seqn num (34) should be made 6th field and Sending Time (52)
should be made 7th field thereby pushing ApplVerID (1128) to 8th
position. Message Seqn num and Sending Time will be present in all
messages because Tags 8, 9, 35, 49, 56, 34 and 52 are the only Required
Tags from Standard Header and Tags 8, 9, 35 have had positional
requirements in the start of message from FIX.4.0 onwards, Tags 49 and
56 have Positional requirements in the start of message from FIX.5.0-
SP1 onwards.Parsing efficiency would improve by this ordering because all required
Tags will always be present in the beginning of every message as the
first seven fields in fixed order. Other Standard Header tags are
optional and Body tags depend on Message Type.An example of a minimum FIX message is a Heartbeat without
TestRequestID (112)^8=FIXT.1.1^9=77^35=0^49=MAHESH^56=FPL^34=1000^52=20081118-
08:15:15^10=007^Regards,
K. Mahesh
Hi Clive,
I selected 6th position for Mesg Seq num because positions 1 to 5 are already fixed. Since scope of seqn num is within a SenderCompID + TargetCompID, I think these two fields should precede Seqn num
Regards,
K. Mahesh
Hi Mahesh,
You have valid points re position of mandatory header fields… i.e.
those that will always be required on all messages.Howevever, I am not sure why Message Seq Num should be 6th field in
particular?There are arguments that it should be 3rd… so that you can check
session version, message body length and then seq num is correct… and
therefore reject messages not conforming to those validations asap
before further processingClive
Message Seqn num (34) should be made 6th field and Sending Time (52)
should be made 7th field thereby pushing ApplVerID (1128) to 8th
position. Message Seqn num and Sending Time will be present in all
messages because Tags 8, 9, 35, 49, 56, 34 and 52 are the only
Required Tags from Standard Header and Tags 8, 9, 35 have had
positional requirements in the start of message from FIX.4.0 onwards,
Tags 49 and 56 have Positional requirements in the start of message
from FIX.5.0- SP1 onwards.Parsing efficiency would improve by this ordering because all required
Tags will always be present in the beginning of every message as the
first seven fields in fixed order. Other Standard Header tags are
optional and Body tags depend on Message Type.An example of a minimum FIX message is a Heartbeat without
TestRequestID (112)^8=FIXT.1.1^9=77^35=0^49=MAHESH^56=FPL^34=1000^52=20081118-
08:15:15^10=007^Regards,
K. Mahesh
[ original email was from Clive Browning - clive.browning@rapidaddition.co.uk ]
From the FIX_Transport_1.1.PDF file:
1128
ApplVerID
APPL
N
6
If provided - the ApplVerID must be the 6th field in the message
Clive
Hi Clive,
I selected 6th position for Mesg Seq num because positions 1 to 5 are
already fixed. Since scope of seqn num is within a SenderCompID +
TargetCompID, I think these two fields should precede Seqn numRegards,
K. MaheshHi Mahesh,
You have valid points re position of mandatory header fields… i.e.
those that will always be required on all messages.Howevever, I am not sure why Message Seq Num should be 6th field in
particular?There are arguments that it should be 3rd… so that you can check
session version, message body length and then seq num is correct…
and therefore reject messages not conforming to those validations asap
before further processingClive
Message Seqn num (34) should be made 6th field and Sending Time (52)
should be made 7th field thereby pushing ApplVerID (1128) to 8th
position. Message Seqn num and Sending Time will be present in all
messages because Tags 8, 9, 35, 49, 56, 34 and 52 are the only
Required Tags from Standard Header and Tags 8, 9, 35 have had
positional requirements in the start of message from FIX.4.0
onwards, Tags 49 and 56 have Positional requirements in the start of
message from FIX.5.0- SP1 onwards.Parsing efficiency would improve by this ordering because all
required Tags will always be present in the beginning of every
message as the first seven fields in fixed order. Other Standard
Header tags are optional and Body tags depend on Message Type.An example of a minimum FIX message is a Heartbeat without
TestRequestID (112)^8=FIXT.1.1^9=77^35=0^49=MAHESH^56=FPL^34=1000^52=20081118-
08:15:15^10=007^Regards,
K. Mahesh
Since ApplVerID (1128) is an optional field, I suggest that it be moved to 8th position.
From the FIX_Transport_1.1.PDF file:
1128 ApplVerID APPL N 6 If provided - the ApplVerID must be the 6th
field in the messageClive
Hi Clive,
I selected 6th position for Mesg Seq num because positions 1 to 5 are
already fixed. Since scope of seqn num is within a SenderCompID +
TargetCompID, I think these two fields should precede Seqn numRegards,
K. MaheshHi Mahesh,
You have valid points re position of mandatory header fields… i.e.
those that will always be required on all messages.Howevever, I am not sure why Message Seq Num should be 6th field in
particular?There are arguments that it should be 3rd… so that you can check
session version, message body length and then seq num is correct…
and therefore reject messages not conforming to those validations
asap before further processingClive
Message Seqn num (34) should be made 6th field and Sending Time
(52) should be made 7th field thereby pushing ApplVerID (1128) to
8th position. Message Seqn num and Sending Time will be present in
all messages because Tags 8, 9, 35, 49, 56, 34 and 52 are the only
Required Tags from Standard Header and Tags 8, 9, 35 have had
positional requirements in the start of message from FIX.4.0
onwards, Tags 49 and 56 have Positional requirements in the start
of message from FIX.5.0- SP1 onwards.Parsing efficiency would improve by this ordering because all
required Tags will always be present in the beginning of every
message as the first seven fields in fixed order. Other Standard
Header tags are optional and Body tags depend on Message Type.An example of a minimum FIX message is a Heartbeat without
TestRequestID (112)^8=FIXT.1.1^9=77^35=0^49=MAHESH^56=FPL^34=1000^52=20081118-
08:15:15^10=007^Regards,
K. Mahesh