Imported from previous forum
I was reading in the List Trading section (the first of the two we have) and ran across a comment someone made about FIX having a max size for messages of something less than 10000 characters. Is this actually true? I haven’t seen anything in the spec stating this. Does anyone know about this?
The FIX specification prior to FIX 4.2 (released March, 2000) specified in the "Field Reference" that the "BodyLength" field was an "int" with "Valid values" of "0-9999". In FIX 4.2 we removed all references to any sort of message length restriction.
Note that most messages in FIX 4.1 and below are less than a thousand bytes in practice anyway. The primary exceptions to that would be messages with a large number of repeating group entries.
Thus it’s not so much that the spec ever stated that there was a max size for messages, rather it stated a max value for the BodyLength field which is used to specify the size of the message.
If you are building an engine to support < FIX 4.2, I would encourage you to support > 9999 for the BodyLength field on messages you receive and bilaterally agree to use > 9999 on messages you send.
> I was reading in the List Trading section (the first of the two we have) and ran across a comment someone made about FIX having a max size for messages of something less than 10000 characters. Is this actually true? I haven’t seen anything in the spec stating this. Does anyone know about this?
>
[ original email was from John Prewett - jprewett@lavatrading.com ]
Ryan Pierce said in his recent posting:
"If you are building an engine to support < FIX 4.2, I would encourage you to support > 9999 for the BodyLength field on messages you receive and bilaterally agree to use > 9999 on messages you send."
While completely agreeing with Ryan (in this respect only, I’m not foolish
I would further suggest that “friendly” FIX engines should make use of the field MaxMessageSize which was added to the Logon message with FIX.4.2.
MaxMessageSize allows you to indicate the maximum size of a message that you are prepared to receive. If both sides exchange this field in their Logon messages, the bilateral agreement that Ryan referred to above can be achieved automatically.
Then again, as the MaxMessageSize field is currently optional, you would still need to bilaterally agree that you would both send the MaxMessageSize field in the Logon message 
Even if it isn’t backwards compatible, it would be a good thing if this field became mandatory in a future release of FIX protocol. I prefer dynamic bilateral agreement between computers to static configuration that results from bilateral agreement between humans.
Hi, this may be a obvious question but just wanted to clarify. When you say - removing all references to message restrictions can I assume that 4.2 doesn’t have any message restrictions or were you refering to references from documentation only?
Thanks.
Rich
The FIX specification prior to FIX 4.2 (released March, 2000) specified in the “Field Reference” that the “BodyLength” field was an “int” with “Valid values” of “0-9999”. In FIX 4.2 we removed all references to any sort of message length restriction.
Note that most messages in FIX 4.1 and below are less than a thousand bytes in practice anyway. The primary exceptions to that would be messages with a large number of repeating group entries.
Thus it’s not so much that the spec ever stated that there was a max size for messages, rather it stated a max value for the BodyLength field which is used to specify the size of the message.
If you are building an engine to support < FIX 4.2, I would encourage you to support > 9999 for the BodyLength field on messages you receive and bilaterally agree to use > 9999 on messages you send.
I was reading in the List Trading section (the first of the two we have) and ran across a comment someone made about FIX having a max size for messages of something less than 10000 characters. Is this actually true? I haven’t seen anything in the spec stating this. Does anyone know about this?