2009-03-20 7 views
3

Je rencontre actuellement un problème étrange avec le moteur QuickFix open-source. Notre courtier envoie des transactions de test avec MsgType = 8 (Rapport d'exécution), et notre moteur QuickFix répond immédiatement avec une exception disant "Type de message non supporté". Toutes les balises dans le message du courtier semblent être légitimes.Réponse du moteur Strange QuickFix au message de rapport d'exécution

Pourquoi cela se produit-il et comment puis-je résoudre le problème?

Répondre

9

Je n'arrive pas à lire dans les pensées, mais il semblerait que vous ayez implémenté votre application en tant que MessageCracker mais que vous ayez oublié de remplacer la fonction onMessage appropriée. Notez qu'il existe une surcharge onMessage distincte pour chaque version FIX d'un type de message, par ex. il y a:

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

L'implémentation par défaut de toutes ces méthodes jette une exception UnsupportedMessageType, qui ressemble à ce que vous voyez.

+0

Le code était partagé par deux services qui utilisaient des versions différentes du protocole de correction. Il manquait le onMessage pour le protocole utilisé par un service. – macleojw

Questions connexes