Imported from previous forum
[ original email was from Ryuji Okada - okada@quick.co.jp ]
My question is how to use LastMsgSeqNumProcessed.
I think this as follows.
LastMsgSeqNumProcessedTag is used for Gapfill handling with SessionMsg.
also, it is used for Acknowledgment of BusinessMsg in application layer, and I hope so.
If it is used for Acknowledgment of BusinessMsg then I suggest OnBehalfOfMsgSeqNum and OnBehalfOfLastMsgSeqNumProcessed such as OnBehalfOfsendingTime.
(and RefOnBehalfOfMsgSeqNum@RejectMsg)
LastMsgSeqNumProcessed is not used for Gapfill handling and it is not an explicit acknowledgement for business messages.
The idea is that one is both receiving and sending messages asynchronously. I may be sending you messages at a faster rate than you can process them. This field gives your counterparty a feel for whether or not you are behind and if so, to what extent. As an example, a broker/dealer has 500 IOIs queued or ready to send at one point in time and starts to send them as fast as they can send them. If the messages the broker/dealer sees from their counterpary (e.g. heartbeat or orders) during this period indicate that the counterparty has processed 15 out of 100 sent, then the broker/dealer may want to adjust their sending rate and/or alert other monitoring systems or alert systems or personnel.
Given the requirement to process messages in sequence order, it could be used as an implicit acknowledgment for the receipt of business messages up to LastMsgSeqNumProcessed.
Note this field is not required, but I would recommend populating it even if you do not have immediate plans to "use" it on inbound messages.
> My question is how to use LastMsgSeqNumProcessed.
> I think this as follows.
> LastMsgSeqNumProcessedTag is used for Gapfill handling with SessionMsg.
> also, it is used for Acknowledgment of BusinessMsg in application layer, and I hope so.
> If it is used for Acknowledgment of BusinessMsg then I suggest OnBehalfOfMsgSeqNum and OnBehalfOfLastMsgSeqNumProcessed such as OnBehalfOfsendingTime.
> (and RefOnBehalfOfMsgSeqNum@RejectMsg)
>
>
I feel that, until previous release, only the fix engine will have the count of lastmsgseqnum processed. But, this was not visible to the applications which uses the fix engine because, the lastmessageseqnum was not a part of fix message, but it was a logic to be implemented in the fix engine s/w. But from fix 4.2, the application itslef can know the lastmsgseqnum processed, so that backlogs can be controlled/avoided.
Am i right?!!!
Comments/Suggestions welcome!!!
Sathya
> LastMsgSeqNumProcessed is not used for Gapfill handling and it is not an explicit acknowledgement for business messages.
>
> The idea is that one is both receiving and sending messages asynchronously. I may be sending you messages at a faster rate than you can process them. This field gives your counterparty a feel for whether or not you are behind and if so, to what extent. As an example, a broker/dealer has 500 IOIs queued or ready to send at one point in time and starts to send them as fast as they can send them. If the messages the broker/dealer sees from their counterpary (e.g. heartbeat or orders) during this period indicate that the counterparty has processed 15 out of 100 sent, then the broker/dealer may want to adjust their sending rate and/or alert other monitoring systems or alert systems or personnel.
>
> Given the requirement to process messages in sequence order, it could be used as an implicit acknowledgment for the receipt of business messages up to LastMsgSeqNumProcessed.
>
> Note this field is not required, but I would recommend populating it even if you do not have immediate plans to "use" it on inbound messages.
>
>
> > My question is how to use LastMsgSeqNumProcessed.
> > I think this as follows.
> > LastMsgSeqNumProcessedTag is used for Gapfill handling with SessionMsg.
> > also, it is used for Acknowledgment of BusinessMsg in application layer, and I hope so.
> > If it is used for Acknowledgment of BusinessMsg then I suggest OnBehalfOfMsgSeqNum and OnBehalfOfLastMsgSeqNumProcessed such as OnBehalfOfsendingTime.
> > (and RefOnBehalfOfMsgSeqNum@RejectMsg)
> >
> >
>
Sathya, note that LastMsgSeqNumProcessed is a field in the StandardHeader vs. body. It would be up to the FIX Engine’s implementation to expose/provide that to the application, though.
> I feel that, until previous release, only the fix engine will have the count of lastmsgseqnum processed. But, this was not visible to the applications which uses the fix engine because, the lastmessageseqnum was not a part of fix message, but it was a logic to be implemented in the fix engine s/w. But from fix 4.2, the application itslef can know the lastmsgseqnum processed, so that backlogs can be controlled/avoided.
> Am i right?!!!
> Comments/Suggestions welcome!!!
>
> Sathya
>
> > LastMsgSeqNumProcessed is not used for Gapfill handling and it is not an explicit acknowledgement for business messages.
> >
> > The idea is that one is both receiving and sending messages asynchronously. I may be sending you messages at a faster rate than you can process them. This field gives your counterparty a feel for whether or not you are behind and if so, to what extent. As an example, a broker/dealer has 500 IOIs queued or ready to send at one point in time and starts to send them as fast as they can send them. If the messages the broker/dealer sees from their counterpary (e.g. heartbeat or orders) during this period indicate that the counterparty has processed 15 out of 100 sent, then the broker/dealer may want to adjust their sending rate and/or alert other monitoring systems or alert systems or personnel.
> >
> > Given the requirement to process messages in sequence order, it could be used as an implicit acknowledgment for the receipt of business messages up to LastMsgSeqNumProcessed.
> >
> > Note this field is not required, but I would recommend populating it even if you do not have immediate plans to "use" it on inbound messages.
> >
> >
> > > My question is how to use LastMsgSeqNumProcessed.
> > > I think this as follows.
> > > LastMsgSeqNumProcessedTag is used for Gapfill handling with SessionMsg.
> > > also, it is used for Acknowledgment of BusinessMsg in application layer, and I hope so.
> > > If it is used for Acknowledgment of BusinessMsg then I suggest OnBehalfOfMsgSeqNum and OnBehalfOfLastMsgSeqNumProcessed such as OnBehalfOfsendingTime.
> > > (and RefOnBehalfOfMsgSeqNum@RejectMsg)
> > >
> > >
> >
>