简体   繁体   English

QuickFIX/J 的消息传递协定是什么? 我能保证订单交付吗?

[英]What is the messaging contract of QuickFIX/J? Do I get guaranteed in order delivery?

I am just getting started with QuickFIX/J.我刚刚开始使用 QuickFIX/J。 One thing I am confused reading their documents is that what exactly is the messaging contract ensured by QuickFIX implementation of the FIX protocol?我在阅读他们的文档时感到困惑的一件事是,FIX 协议的 QuickFIX 实现所确保的消息传递合同到底是什么?

In particular, I know FIX has a built-in sequence number based mechanism which implementations can leverage to handle out of order, missing or duplicated messages.特别是,我知道 FIX 有一个内置的基于序列号的机制,实现可以利用它来处理乱序、丢失或重复的消息。 But does QuickFIX/J already has the capability built in?但是 QuickFIX/J 是否已经内置了该功能? As an application using QuickFIX/J to communicate with a fix engine, can I assume:作为使用 QuickFIX/J 与修复引擎通信的应用程序,我可以假设:

  1. Messages delivered to my app from QuickFIX/J are always in order.从 QuickFIX/J 传送到我的应用程序的消息总是有序的。

  2. There is no missing messages (QuickFIX/J will automatically handle the re-requesting)没有遗漏消息(QuickFIX/J 会自动处理重新请求)

  3. There is no duplicated messages (QuickFIX/J can look at the sequence number recieved so far and filter out possible duplication)没有重复的消息(QuickFIX/J 可以查看目前收到的序列号并过滤掉可能的重复)

  4. If the remote fix engine crashes, I will reconnect with the last known sequence number automatically when the engine comes back如果远程修复引擎崩溃,我将在引擎恢复时自动重新连接最后已知的序列号

  5. If my app crashes, when it restarts will it be able to automatically resume the session from the previous known sequence number?如果我的应用程序崩溃,当它重新启动时,它是否能够从之前已知的序列号自动恢复 session? (eg will there be any out of the box sequence number persistence mechanism?) (例如,是否会有开箱即用的序列号持久性机制?)

QuickFIX/J implements the FIX session protocol, so it handles all the session-level stuff (connecting, sequence numbers, ...) for you. QuickFIX/J 实现了 FIX session 协议,因此它会为您处理所有会话级别的内容(连接、序列号……)。

  1. Yes, but there may be duplicates, see 3.是的,但可能有重复项,请参见 3。
  2. Yes.是的。
  3. No, actually QFJ will still forward possible duplicates to your app because you still might want to handle those.不,实际上 QFJ 仍会将可能的重复项转发给您的应用程序,因为您可能仍想处理这些重复项。 You need to filter them by yourself if you want to, based on 43/PossDupFlag .如果你愿意,你需要自己过滤它们,基于43/PossDupFlag
  4. Yes.是的。
  5. Yes.是的。 QFJ has some out of the box persistence mechanisms like FileStore , JdbcStore , MemoryStore . QFJ 有一些开箱即用的持久性机制,如FileStoreJdbcStoreMemoryStore You could also implement your own Store if you need to.如果需要,您也可以实现自己的Store

Here is a link on how to create a QFJ application, in case you haven't already found it: https://github.com/quickfix-j/quickfixj#creating-a-quickfixj-application这是一个关于如何创建 QFJ 应用程序的链接,以防您还没有找到它: https://github.com/quickfix-j/quickfixj#creating-a-quickfixj-application

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM