|
4.0 Session
< Previous Next >
Re: Rejection Loop
Greg Orsini / Cameron Systems <> 4 Sep 2007 10:17AM ETEva,
You should increment the next expected sequence number when rejecting an incoming message. You should not be sending the resend request in your scenario.
From the FIX 4.0 & 4.2 specs:
The reject message should be issued when a message is received which cannot be passed through to the application level. An example of when a reject may be appropriate would be the receipt of a message with invalid basic data (e.g. MsgType=&) which successfully passes de-encryption, CheckSum and BodyLength checks. (As a rule, messages should be forwarded to the trading application for business level rejections whenever possible.)
Rejected messages should be logged and the incoming sequence number incremented.
Regards, Greg.
> Hello,
>
> I had the following problem and don't really know how it should
> be handled:
>
> First I send an order which is rejected for any reason, for example
> "Unknown instrument". My counterparty sends me an ExecutionReport with
> this information, but due to the unknown instrument the value in tag
> "Symbol" (55) is empty. On my side this leads to a Reject Message.
>
> So far so good. But: The ExecutionReport has been received, but not
> really handled, so I don't increment the incoming SequenceNumber. Due to
> this, my application sends a ResendRequest and the whole game starts
> again... The result is a never-ending loop with ResendRequest -
> ExecutionReport - Reject - SequenceReset ...
>
> In my opinion, the counterparty should react somehow to my Reject
> Message. Or at least doesn't resend the faulty ExecutionReport.
>
> Does anybody had the same problem before or any ideas how I should
> solve this?
>
> The FIX 4.2 Specification tells only that "there should be some
> logic..." ;-) :
>
> "Note: The receiving application should disregard any message that is
> garbled, cannot be parsed or fails a data integrity check. Processing of
> the next valid FIX message will cause detection of a sequence gap and a
> Resend Request will be generated. Logic should be included in the FIX
> engine to recognize the possible infinite resend loop, which may be
> encountered in this situation."
>
> Thanks for any help or ideas! Eva
Re: Rejection Loop Greg Orsini / Cameron Systems 4 Sep 2007 10:17AM ET
|