Python 将接受者序列号重置为启动器,但不能使用onLogon

Python 将接受者序列号重置为启动器,但不能使用onLogon,python,python-3.x,quickfix,Python,Python 3.x,Quickfix,你好,我遇到了一个问题,这通常是一个常见的修复,但我的有一个扭曲。我将在这里引用通常的答案: 客户端和服务器之间的序列号必须同步。在您的情况下,即使您重置了序列号,您也会收到相同的错误,因为客户端将发送一个比您更大的序列号。通常情况下,客户端和服务器都会根据协议重置序列号(登录时,每天或发送141=Y等)。” 问题是此标志“ResetMsgSeqNum”只能在Quickfix中的onLogon方法中使用 我无法登录,因为序列号不同步,所以我没有机会告诉接受者重置序列号 也有人建议增加到下一个序列

你好,我遇到了一个问题,这通常是一个常见的修复,但我的有一个扭曲。我将在这里引用通常的答案:

客户端和服务器之间的序列号必须同步。在您的情况下,即使您重置了序列号,您也会收到相同的错误,因为客户端将发送一个比您更大的序列号。通常情况下,客户端和服务器都会根据协议重置序列号(登录时,每天或发送141=Y等)。”

问题是此标志“ResetMsgSeqNum”只能在Quickfix中的onLogon方法中使用

我无法登录,因为序列号不同步,所以我没有机会告诉接受者重置序列号

也有人建议增加到下一个序列号,但这些都是针对Java Quickfix的,我不知道如何在python版本中做到这一点。我将在下面发布一个日志示例,说明发生了什么

注意:我只从偶数日志中删除了标识信息,因此下面的标记实际上不是空的。诸如“onCreate”之类的消息是调试语句,用于指示方法是否已成功执行

我感谢所有的帮助

onCreate
<20180618-22:50:15.000000000, FIX.4.4:, event>
  (Created session)
<20180618-22:50:15.000000000, FIX.4.4:, event>
  (Connecting to on port 8101 (Source :0))
toAdmin
<20180618-22:50:15.000000000, FIX.4.4:, outgoing>
  (8=FIX.4.4 9=112 35=A 34=13 49= 52=20180618-22:50:15.000 56= 554=PASSWORD
<20180618-22:50:15.000000000, FIX.4.4:, event>
  (Initiated logon request)
<20180618-22:50:16.000000000, FIX.4.4:, incoming>
  (8=FIX.4.4 9=76 35=5 34=6 49= 52=20180618-22:50:16.227 56= 10=171 )
fromAdmin
<20180618-22:50:16.000000000, FIX.4.4:, event>
  (Received logout request)
toAdmin
<20180618-22:50:16.000000000, FIX.4.4:, outgoing>
  (8=FIX.4.4 9=77 35=5 34=14 49= 52=20180618-22:50:16.000 56= 10=208 )
<20180618-22:50:16.000000000, FIX.4.4:, event>
  (Sending logout response)
<20180618-22:50:16.000000000, FIX.4.4:, event>
  (Disconnecting)
onLogout
toAdmin
<20180618-22:50:16.000000000, FIX.4.4:, event>
  (Initiated logon request)
onLogout
onCreate
(已创建会话)
(在端口8101上连接到(源:0))
托阿明
(8=FIX.4.4 9=11235=A 34=13 49=52=20180618-22:50:15.000 56=554=密码
(已启动登录请求)
(8=FIX.4.49=7635=534=649=52=20180618-22:50:16.22756=10=171)
fromAdmin
(收到注销请求)
托阿明
(8=FIX.4.49=7735=534=1449=52=20180618-22:50:16.00056=10=208)
(发送注销响应)
(断开连接)
旁观者
托阿明
(已启动登录请求)
旁观者

设置ResetSeqNumFlag=Y应该可以解决您的问题。它所做的是将ResetSeqNumFlag(141)标记设置为Y。然后该标记将包含在登录请求中,因此即使您不同步,接受者也会重置序列号