如果ResendRequest丢失或发起方无法应答,该怎么办?

问题描述

请考虑以下顺序图,该顺序图描述了FIX启动器和接受器之间的通信。请注意,我在这里指的是 FIX.4.4

enter image description here

如您所见,序列号为2的消息在传输中丢失了。发起方发送另一条消息(序列号为3),接受方检测到该间隙并发出重新发送请求,再次请求序列号为3的消息。数字2及其之后可能出现的所有内容7=2|16=0)。

我无法通过浏览规范来回答几个问题:

  • 如果“重新发送请求”在运输中丢失怎么办?
  • 如果发起方无法重新发送所请求的消息会怎样?

解决方法

如果“重新发送请求”在传输中丢失怎么办?

排队时,将在后续消息中检测到差距。

但是,ResendRequest实际上不会被重发,因为唯一必须重发的会话级消息是Reject消息。 相反,将发送带有SequenceReset (description)123/GapFillFlag=Y或通过将SequenceReset设置为更高序号的36/NewSeqNo消息跳过该消息,有效地跳过了不会重新发送的消息。

这在FIX规范的“消息恢复”一章(link)

中进行了说明。

如果发起方无法重新发送所请求的内容会发生什么 消息吗?

如上所述,它应该发送GapFill或跳到更高的序列号。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...