FIX Trading Community

 

 Remember me

Register  |   Lost password?

General Q/A

Discussions > General Q/A > PossDupFlag and PossResend

PossDupFlag and PossResend

Complete message thread from old site

David Jennings
4694 days ago,(2001/06/11)

From my reading of the FIX protocol I'm under the impression that PossDupFlag is used as a session-level message resend mechanism and PossResend is used at the application level.

In other words, the PossDupFlag mechanism is only between FIX engines and the FIX engine should determine whether the message is truly a duplicate before sending it up to the application (such that the application will only ever see a message with a given MsgSeqNum once).

Is this the common understanding?

David.

Scott Atwell
4694 days ago,(2001/06/11)

Yes. Note the duplicate determination for PossDupFlag is whether or not this same MsgSeqNum has been received. PossResend indicates a new MsgSeqNum and potentially duplicate business data (e.g. same ClOrdID).

> From my reading of the FIX protocol I'm under the impression that PossDupFlag is used as a session-level message resend mechanism and PossResend is used at the application level.
>
> In other words, the PossDupFlag mechanism is only between FIX engines and the FIX engine should determine whether the message is truly a duplicate before sending it up to the application (such that the application will only ever see a message with a given MsgSeqNum once).
>
> Is this the common understanding?
>
> David.
>
>

Paul Van Diepen
4687 days ago,(2001/06/18)

> In other words, the PossDupFlag mechanism is >only between FIX engines and the FIX engine >should determine whether the message is truly a >duplicate before sending it up to the >application (such that the application will only >ever see a message with a given MsgSeqNum once).
>
> Is this the common understanding?

That's the way I understand it. When a fix engine receives a message with PossDupFlag=Y, it has to check if a message with that sequence number was already received. If this is the case, the message is discarded. If not, it is treated like a new message.

If PossResend=Y, provided that the sequence numbering and so on is okay, the message is accepted without further checks, but the *application layer* has to verify whether it already treated the message before (usually a new order or cancel request).

Paul van Diepen