tags:

views:

406

answers:

1

I am currently experiencing a strange problem with the open-source QuickFix engine. Our broker is sending some test trades with MsgType = 8 (Execution Report), and our QuickFix engine immediately replies with an exception saying "Unsupported Message Type". All of the tags in the broker's message appear to be legitimate.

Why is this happening and how can I resolve the issue?

+3  A: 

I can't read minds, but it sounds like you may have implemented your application as a MessageCracker but forgotten to override the appropriate onMessage function. Note there is a separate onMessage overload for each FIX version of a message type, e.g. there are:

onMessage (const FIX40::ExecutionReport&, const FIX::SessionID&) 
onMessage (const FIX41::ExecutionReport&, const FIX::SessionID&) 
onMessage (const FIX42::ExecutionReport&, const FIX::SessionID&) 
onMessage (const FIX43::ExecutionReport&, const FIX::SessionID&) 
onMessage (const FIX44::ExecutionReport&, const FIX::SessionID&)

The default implementation of all of these methods throws an UnsupportedMessageType exception, which sounds like what you are seeing.

Bklyn
The code was being shared by two services which used different versions of the fix protocol. The code was missing the onMessage for the actual protocol being used by one service.
macleojw