QuickFix / J:注销时发送消息

时间:2016-12-12 16:09:50

标签: quickfix quickfixj

QuickFix / J文档中的

This page提出以下声明:

  

无论对方是否与其连接,都存在会话。创建会话后,您就可以开始向其发送消息。如果没有人登录,则在与对方建立连接时将发送消息。

我一直在通过以下步骤测试此行为:

  1. 初始化正常连接的新QuickFix会话
  2. 中断与远程服务器的连接,以便会话注销。
  3. 通过Session.sendToTarget()
  4. 发送消息
  5. 允许QuickFix恢复连接(以便会话登录)
  6. 据我所见,邮件永远不会发送。

    通过代码调试,我在收到toApp()回调后不久就点击了this line。据我所知,该消息仅在isLoggedOn()为真时发送。如果不是真的(如此处),则不采取任何替代措施。

    我对上面引用的文档的期望是,QuickFix / J应该以某种方式在内部排队消息,以便在会话恢复时,它将被发送。两个问题:

    1. 这种解释是否正确?
    2. 若然,实施地点及方式如何?
    3. 以下是我的连接参数供参考:

      [DEFAULT]
      ConnectionType=initiator
      LogonTimeout=60
      ReconnectInterval=30
      FileStorePath= ...
      HeartBtInt=30
      StartTime=22:15:00
      EndTime=21:55:00
      UseDataDictionary=Y
      
      
      [SESSION]
      BeginString=FIX.4.4
      SenderCompID= ...
      TargetCompID= ...
      PersistMessages=Y
      ResetOnLogon=Y
      SessionQualifier= ...
      SocketConnectHost= ...
      SocketConnectPort= ...
      Username= ...
      Password= ...
      DataDictionary=config/dict/fix44.xml
      

      非常感谢提前

1 个答案:

答案 0 :(得分:1)

好的,所以我有消息排队逻辑工作。问题是ResetOnLogon=Y,大概搞乱了序列号的增量。