QuickFix/J: 登出时发送消息

QuickFix/J: Sending message when logged out

QuickFix/J 文档中的

This page 提出以下声明:

Sessions exist whether or not a counter party is connected to it. As soon as a session is created, you can begin sending messages to it. If no one is logged on, the messages will be sent at the time a connection is established with the counterparty.

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

  1. 初始化一个新的 QuickFix 会话正常连接
  2. 中断与远程服务器的连接,使会话注销。
  3. 通过Session.sendToTarget()
  4. 发送消息
  5. 允许 QuickFix 恢复连接(因此会话发生登录)

据我所知,邮件从未发送过。

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

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

  1. 这个解释正确吗?
  2. 如果是这样,这是在哪里以及如何实施的?

这里是我的连接参数供参考:

[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

非常感谢

好的,消息队列逻辑现在可以正常工作了。问题是 ResetOnLogon=Y 可能会弄乱序列号增量。