Imported from previous forum
I am developing a client using quickfix / j generally works well, but I found a problem with the resend when there is a communication error with the Acceptor.
When sending a message like the following:
FIX.4.4 8 = 9 = 228 35 = D 34 = 463 52 = 49 = INITIATOR 20160405-16: 11: 34,226 ACCEPTOR 56 = 11 = 8746340000000002 21 = 3 22 = 4 38 = 2498 40 = 1 44 = 0 48 = ME050007 54 = 2 59 = 0 60 = 20160315-17: 41: 06,000 432 = 20160315 20001 = 0 453 = 2 448 = 3 447 = D 452 = 24 448 = 0000 447 = D 452 = 12 10 = 255
Where the tag 453 has a value of 2 and their associated tags are:
First group:
448 = 3
447 = D
452 = 24
Second group:
448 = 0000 (eg)
447 = D
452 = 12
When communication is restored, the Acceptor ask for resend the request by , however the resend message looks like this:
FIX.4.4 8 = 9 = 231 35 = D 34 = 428 43 = Y 49 = 52 = INITIATOR 20160328-23: 16: 02,215 ACCEPTOR 56 = 122 = 20160328-23: 15: 30 11 = 8746340000000002 21 = 3 22 = 4 38 = 2498 40 = 1 44 = 0 48 = ME050007 54 = 2 59 = 0 60 = 20160315-17: 41: 06,000 432 = 20160315 20001 = 0 453 = 2 448 = 0000 447 = D 452 = 12 10 = 052
The tag 453 still has a value of 2 and the tag 43 appears with “Y” because it is a resend, but only taken considered the second group in the message body, ie 448 = 0000, 447 = D 452 = 12 which invalidates it for processing as the first group is not in the message.
Have any idea what happens in the re-transmission of the message, I appreciate very much your help.
as per sample pasted, looks like client side (your end) logic for generating duplicate message is not correct.
Need to debug your code.
Generally, when responding the resend request need, need to check below point
- sequence number should same with PossDupFlag=Y
- should use original persisted message to generate response for resend with changing the OrigSendingTime, SendingTime, BodyLength, PossDupFlag=Y and CheckSum.
Question has been posted in FIX Semantics (here) and FIX Technology (http://www.fixtradingcommunity.org/pg/discussions/topicpost/3208406/). I would say this is about technology (syntactical correctness of a message) and should be discussed there rather than here. However, both works 