session.cpp:375 Error Missing Mandatory Field: ExecType (150) - message rejected

107 views
Skip to first unread message

Cinar Eren

unread,
May 17, 2016, 4:45:00 PM5/17/16
to fix8 developer
Hello,

I implemented a FIX client with fix8. Although in the tcpdump output, i can see that ExecType(150) field is sent by the fix server, my client throws an exception. I attach the fix xml, and logs.

Here is the TCP response seen in tcpdump :

8=FIXT.1.1.9=270.35=8.34=7.49=IYMFOM.52=20160517-11:38:35.046.56=FOMCLIENT.1=53023.6=0.11=70122.14=0.31=0.32=0.37=10000037.38=1.39=A.40=2.44=94.5.54=1.55=F_XU0300616S0.59=4.60=20160517-14:38:35.046.75=20160517.99=0.150=A.151=1.167=FUT.207=XIST.483=20160517-14:38:35.046.583=+53023.636=Y.10=035.


by the way, initially ExecType was a mandatory field in the xml; although the field exists in the response, i edited the xml and made it nonmandatory and reused f8c to build the fix8 classes. Error didnt disappear.

What should i check? Do you need any other files?

thanks in advance.
Best regards.
myfix_client_protocol.log.FOMCLIENT.IYMFOM
myfix_client_session.log.FOMCLIENT.IYMFOM
fix50sp2.xml

Raul Gherman

unread,
May 18, 2016, 4:01:18 AM5/18/16
to fix8 developer
Hi

i faced something similar a few weeks ago

how i solved it:

- i checked and ARRANGED fields in my .xml schema in the order they are sent by the FIX server
- i made the field mandatory again

this solved it for me

hth

Raul

Cinar Eren

unread,
May 18, 2016, 9:40:41 AM5/18/16
to fix8 developer
Thanks Raul.
I will give it a try.

best regards.

Mazz Barker

unread,
May 19, 2016, 4:42:14 AM5/19/16
to fix8 developer
You have worked around the problem. But the issue is that there was probably an unrecognised field in your inbound message. An problem with the fix8 decoder is that it is optimistic. If it finds a field that it doesn't know, it stops decoding that message segment (i.e. header, body or trailer). So in this case, there was a field in the body that wasn't defined in the schema for this message. The decoder dropped out of the body decode. However, at the end of the decode, fix8 checks to see what fields are missing and hey presto, ExecType is missing (or whatever). It isn't missing it's only that the decode didn't properly finish the job. Hunt down the missing field and add it and the problem is resolved. There was something about unknown field support but I could never get it working. I believe this issue is fixed in Fix8Pro (I don't have it but was told).

Mazz
Reply all
Reply to author
Forward
0 new messages