In addition to the recovery methods that are offered by CQG, there are additional mechanisms that client systems can utilize to enhance the recovery process.
Market Data Incremental Refresh messages (tag 35=X) contain instrument sequence numbers (tag 83-RptSeq), in addition to message sequence numbers (tag 34-MsgSeqNum). Every repeating group instance of a market data entry contains an incrementing sequence number (tag 83-RptSeq) that is associated with the instrument for which data is present in the block. Instrument level sequencing can be used to identify which instruments you have not missed messages for, and apply during the TCP Replay method.
Client systems can keep track of the instrument sequence number (tag 83-RptSeq) for every instrument by inspecting incoming data and determining whether there is a gap in the instrument sequence number (tag 83-RptSeq).
• If there is a gap in the instrument sequence number (tag 83-RptSeq), it indicates that data was missed for the instrument when message loss occurred.
• If there is no gap, the data can be used immediately, and it also indicates that the book for this instrument still has a correct, current state.
It is likely that if only a small number of messages have been missed, there will be data in subsequent messages which are not affected by the missing data. If there are 10 instruments in a channel, for example, and the missed messages contain data for 2 of these instruments, any subsequent messages containing data about the other instruments are still valid.