Quel est le contrat de messagerie de QuickFIX / J? Suis-je garanti lors de la livraison de la commande?

Aug 18 2020

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:

  1. Les messages envoyés à mon application depuis QuickFIX / J sont toujours dans l'ordre.

  2. Il n'y a aucun message manquant (QuickFIX / J gérera automatiquement la nouvelle demande)

  3. 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)

  4. 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

  5. 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

1 ChristophJohn Aug 18 2020 at 18:15

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, ...).

  1. Oui, mais il peut y avoir des doublons, voir 3.
  2. Oui.
  3. 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.
  4. Oui.
  5. 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ôtre Storesi 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