如果服务器(接受者)在上午9点创建了快速修复会话,但StartTime是在上午11点。这意味着会话存在但不活动。
如果服务器收到来自其需要在此会话上发送的交换的未经请求的消息,如果我有配置PersistMessages = Y并且在11AM之后连接时将其发送到客户端(发起者),它是否会持续存在?
答案 0 :(得分:2)
不,它不会保留在开始时间之前收到的消息,并会向您发送拒绝消息。该消息将在接口本身被拒绝,消息不会被处理。您必须重新发送它才能得到回复。
答案 1 :(得分:1)
QuickFIX会在连接会话之前保留(但不发送)消息。序列号被更新,当会话连接并发送第一条消息时,交易对手FIX引擎将看到序列号中的间隙并请求重新发送。然后,QuickFIX将重新发送持久消息。但是,根据您的QuickFIX配置,传出消息可能被认为太旧并且在本地被拒绝。
答案 2 :(得分:0)
据我了解,这些都是为了考虑相应的交易所接受订单的时间。 应用程序或其子模块不需要维护计时并在关闭修复会话时采取某些操作。相反,QuickFix将自动停用会话。 当会话变为活动状态时,消息的持久性或重新发送对我来说并不合适。
您可以保留某种队列来在发送应用程序时缓冲此类消息,并仅在时间与活动会话时间匹配时发送它们。
这是我的想法,希望有所帮助。