将接受器序列号重置为启动器而无法使用onLogon

时间:2018-06-18 23:17:49

标签: python python-3.x quickfix

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

  

"客户端和服务器之间的序列号必须是同步的。在您的情况下,即使您重置序列号,您也会收到相同的错误,因为客户端将发送一个更大的序列号。通常的做法是客户端和服务器重置协议上的序列号(登录,每天或发送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

1 个答案:

答案 0 :(得分:1)

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