Quel est le contrat de messagerie de QuickFIX / J? Suis-je garanti lors de la livraison de la commande?
Je ne fais que commencer avec QuickFIX / J. Une chose que je suis confus en lisant leurs documents est que quel est exactement le contrat de messagerie assuré par l'implémentation QuickFIX du protocole FIX?
En particulier, je sais que FIX a un mécanisme intégré basé sur le numéro de séquence que les implémentations peuvent exploiter pour gérer les messages dans le désordre, manquants ou dupliqués. Mais QuickFIX / J a-t-il déjà la capacité intégrée? En tant qu'application utilisant QuickFIX / J pour communiquer avec un moteur de correction, puis-je supposer:
Les messages envoyés à mon application depuis QuickFIX / J sont toujours dans l'ordre.
Il n'y a aucun message manquant (QuickFIX / J gérera automatiquement la nouvelle demande)
Il n'y a pas de messages dupliqués (QuickFIX / J peut regarder le numéro de séquence reçu jusqu'à présent et filtrer les duplications possibles)
Si le moteur de correction à distance tombe en panne, je me reconnecterai automatiquement au dernier numéro de séquence connu lorsque le moteur reviendra
Si mon application plante, au redémarrage, pourra-t-elle reprendre automatiquement la session à partir du numéro de séquence connu précédent? (par exemple, y aura-t-il un mécanisme de persistance des numéros de séquence prêt à l'emploi?)
Réponses
QuickFIX / J implémente le protocole de session FIX, il gère donc pour vous tous les éléments au niveau de la session (connexion, numéros de séquence, ...).
- Oui, mais il peut y avoir des doublons, voir 3.
- Oui.
- Non, en fait, QFJ transmettra toujours les doublons possibles à votre application, car vous voudrez peut-être toujours les gérer. Vous devez les filtrer vous-même si vous le souhaitez, en fonction de
43/PossDupFlag
. - Oui.
- Oui. QFJ a une certaine hors de la boîte persistance des mécanismes tels que
FileStore
,JdbcStore
,MemoryStore
. Vous pouvez également implémenter le vôtreStore
si vous en avez besoin.
Voici un lien sur la façon de créer une application QFJ, au cas où vous ne l'auriez pas déjà trouvée: https://github.com/quickfix-j/quickfixj#creating-a-quickfixj-application