[QFJ-654] Rejecting due to OrigSendingTime not being in Tag without Data Dictionary Created: 24/Nov/11  Updated: 15/Nov/12  Resolved: 12/Dec/11

Status: Closed
Project: QuickFIX/J
Component/s: Engine
Affects Version/s: 1.5.1
Fix Version/s: 1.5.2

Type: Improvement Priority: Default
Reporter: Christophe Domas Assignee: Christoph John
Resolution: Fixed Votes: 0
Labels: session

Issue Links:
Duplicate
is duplicated by QFJ-403 Rejecting due to OrigSendingTime not ... Closed
Relates
is related to QFJ-703 Do not reject PossDup message which d... Resolved

 Description   

Hi,

I'm using quickfix/J and for some reason I keep rejecting messages with reject:

20090210-16:13:01: Message 641 Rejected: Required tag missing:122

I have the following configuration options set in configuration:

UseDataDictionary=N
ValidateFieldsOutOfOrder=N
ValidateFieldsHaveValues=N
VaidateUserDefinedFields=N
CheckLatency=N

And I have also attempted to rip out OrigSendingTime from my Data Dictionary as a precautionary measure. I don't ever explicitly call this tag in code. Any help on this issue would be appreciated.

Regards,
Herman



 Comments   
Comment by Christophe Domas [ 24/Nov/11 ]

Hi,

I've cloned the issue QFJ-403 cause I'm in the same case. My counterpart does not set the OrigSendingTime for dup message.
I don't see any solution, except they correct their soft or hacking quickfix/j.

Comment by Grant Birchmeier [ 24/Nov/11 ]

QFJ-403 was marked fixed, so presumably this shouldn't be happening. Are you using an old version of QF/J?

Comment by Christophe Domas [ 24/Nov/11 ]

Yes, the problem is marked fixed and I use the last 1.5.1 version (that include the patch).
But as I say, my counterpart does not set the OrigSendingTime for dup message (FIX 4.2) and I'm looking for a workaround (correct answer should be "they have to respect the protocol" but it seems to be difficult - big company, lots of customers).

Comment by Christophe Domas [ 28/Nov/11 ]

The only way I found to intercept the message to add missing tag 122 is to set an IoFilterChainBuilder on SocketInitiator.
But the problem is the message received in interceptor method messageReceived() is a String, so I have to parse it.

Is there a better way to intercept FIX message before session handles it?

Comment by Christophe Domas [ 28/Nov/11 ]

Maybe I should create a new ticket: "How can I intercept quickfix message before session handles it", no?

Comment by Christoph John [ 29/Nov/11 ]

Hi guys,

indeed, QFJ-403 is marked as fixed. But the proposed solution was not incorporated into QF/J. At least the code in validatePossDup(Message) still looks like this (on 1.5.1 and on trunk):

if (!header.isSetField(OrigSendingTime.FIELD)) {
    generateReject(msg, SessionRejectReason.REQUIRED_TAG_MISSING, OrigSendingTime.FIELD);
    return false;
}
Comment by Christoph John [ 30/Nov/11 ]

Hi Christophe,
I will take care of this. It seems the fix was not applied or got reverted.
Cheers,
Chris.

Comment by Krzysztof Szalast [ 06/Sep/12 ]

Hi,
Setting "RejectInvalidMessage" flag to "Y" is too risky when I want ignore ONLY 122 field but I want to validate rest of fields. I propose reopen this bug.

Maybe should be added property something like:
IgnoredFieldsDueValitation=<field1>,<field2>...
and errors in field1, field2 will be ignored, but not in the other fields?

P.S. Sorry for my english

Comment by Christoph John [ 10/Sep/12 ]

Cześć Krzysztof,
I think we should just check if tag 122/OrigSendingTime is present and if it isn't we shouldn't do the SendingTime vs. OrigSendingTime check. In my opinion QF/J should rather try to synchronize correctly instead of throwing validation errors. -> QFJ-703

Comment by Krzysztof Szalast [ 14/Sep/12 ]

I agree. So I am waiting for new version. Thanks

Generated at Sat Nov 23 07:16:53 UTC 2024 using JIRA 7.5.2#75007-sha1:9f5725bb824792b3230a5d8716f0c13e296a3cae.