2009-03-20 6 views
3

Ich habe derzeit ein seltsames Problem mit der quelloffenen QuickFix-Engine. Unser Broker sendet einige Test-Trades mit MsgType = 8 (Ausführungsbericht) und unsere QuickFix-Engine antwortet sofort mit der Ausnahme "Nicht unterstützter Nachrichtentyp". Alle Tags in der Nachricht des Brokers scheinen legitim zu sein.Seltsame Reaktion der QuickFix-Engine auf Ausführungsmeldung

Warum passiert das und wie kann ich das Problem lösen?

Antwort

9

Ich kann Gedanken nicht lesen, aber es klingt wie Sie möglicherweise Ihre Anwendung als MessageCracker implementiert haben, aber vergessen, die entsprechende onMessage Funktion außer Kraft zu setzen. Es ist zu beachten, dass für jede FIX-Version eines Nachrichtentyps, z. gibt es:

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&) 

Die Default-Implementierung all dieser Methoden löst eine UnsupportedMessageType Ausnahme, die klingt wie, was Sie sehen.

+0

Der Code wurde von zwei Diensten gemeinsam genutzt, die unterschiedliche Versionen des Fixprotokolls verwendeten. Der Code fehlte die onMessage für das tatsächliche Protokoll, das von einem Dienst verwandt wird. – macleojw