field for message correlation/tracing

Is there a FIX tag which can be used for message correlation or tracing?

Background: we want to add some kind of a correlation ID to FIX messages that we receive on our hub. That ID should be passed on to downstream systems (which might map to other data formats than FIX) so that we can trace the path of the message through the system.
I thought that this should be a pretty common use case but I couldn’t find a matching FIX tag that I could use…

Thanks in advance and best regards,
Chris.

Hi Chris,

FIX tags in the body of the message are intended to cover business requirements. Message tracing sounds more like a technical requirement, i.e. the FIX standard header would be the place to look for. The body of any FIX message has a unique message identifier but it is a different field for each message and probably not what you are looking for.

There is no single field for this in the standard header, i.e. it would need to be a concatenation of multiple fields.

For a single session this would be MsgSeqNum(34) together with SenderCompID(49) and possibly SenderSubID(50) to make it unique in both directions. If the scope of uniqueness needs to be across multiple days, one would also need the date portion of SendingTime(52). If there are multiple sessions in a single day, one would need to add the session ID from the session configuration (could be an Orchestra interfaces XML schema file, see https://www.fixtrading.org/standards/fix-orchestra-online#interfaces-xml-schema).

A workaround may be to (mis-?)use the XmlData(213) and XmlDataLen(212) fields for this purpose, even though the intention of these fields is quite different. Are you only looking at tagvalue encoded messages?

1 Like

Hi Hanno,

thanks for your answer.
Yes, it is only for tagvalue encoded messages. I was also thinking about some field in the header and initially wanted to (mis-)use one of the LocationID tags for that. But I was not feeling comfortable with it since these tags might be used somewhere.
Filling XmlData with our generated ID seems to be a good idea since it is also supported on older FIX versions and I am sure that neither we nor one of our counterparties uses it.

Best regards,
Chris.

XmlData allows you to convey more than one piece of information. It should contain an XML syntax.