0
我正在使用QuickFIX和Python启动到处理FIX5.0SP2的fixserver进程的连接。当我尝试启动连接时,收到以下消息后收到断开连接:(Message 1 Rejected: Required tag missing:1137)
。 此标记不是我的fixserver进程强制执行的,我试图将它从登录过程中删除。我从FIXT11.xml中删除它,并为此创建了一个自定义xml,但没有取得任何成功。我想念什么?我以为你可以在这个文件中轻松地将它们从强制转换为非强制?QuickFIX从登录过程中删除标签
这里是我的配置:
[DEFAULT]
ConnectionType=initiator
ReconnectInterval=60
DefaultApplVerID=FIX.5.0SP2
UseDataDictionary=N
ResetOnLogout=Y
ResetOnLogon=Y
AppDataDictionary=/home/foo/Documents/QuickFix/fix_specs/FIX50SP2CustomTags.xml
TransportDataDictionary=/home/foo/Documents/QuickFix/fix_specs/FIXT11CustomTags.xml
[SESSION]
BeginString=FIXT.1.1
ConnectionType=initiator
SenderCompID=FIXSRV
TargetCompID=RTD
ReconnectInterval=30
HeartBtInt=30
StartTime=00:30:00
EndTime=23:30:00
SocketConnectProtocol=TCP
SocketConnectPort=1284
SocketConnectHost=X.X.X.X
FileStorePath=/home/foo/Documents/QuickFix/data
FileLogPath=/home/foo/Documents/QuickFix/logs
ValidateFieldsOutOfOrder=N
ValidateFieldsHaveValues=N
#ValidateUserDefinedFields=N`
这里是和quickfix输出与修复消息:
<20170213-12:52:41.812, FIXT.1.1:FIXSRV->RTD, event>
(Created session)
<20170213-12:52:41.813, FIXT.1.1:FIXSRV->RTD, event>
(Connecting to X.X.X.X on port 1284)
Sent the Admin following message: 8=FIXT.1.1|9=77|35=A|34=1|49=FIXSRV|52=20170213-12:52:41.816|56=RTD|98=0|108=30|141=Y|1137=9|10=140|
<20170213-12:52:41.817, FIXT.1.1:FIXSRV->RTD, outgoing>
(8=FIXT.1.1|9=106|35=A|34=1|49=FIXSRV|52=20170213-12:52:41.816|56=RTD|50=FIX50|98=0|108=30|141=Y|553=FIX50|554=fix50|1137=9|10=083|)
<20170213-12:52:41.817, FIXT.1.1:FIXSRV->RTD, event>
(Initiated logon request)
<20170213-12:52:41.820, FIXT.1.1:FIXSRV->RTD, incoming>
(8=FIXT.1.1|9=000106|35=A|1128=7|49=RTD|56=FIXSRV|34=1|50=FIX50|52=20170213-12:52:41.639|98=0|108=30|141=Y|553=FIX50|554=fix50|10=228|)
<20170213-12:52:41.820, FIXT.1.1:FIXSRV->RTD, event>
(Message 1 Rejected: Required tag missing:1137)
<20170213-12:52:41.820, FIXT.1.1:FIXSRV->RTD, event>
(Tried to send a reject while not logged on)
<20170213-12:52:41.820, FIXT.1.1:FIXSRV->RTD, event>
(Required field missing from logon)
<20170213-12:52:41.820, FIXT.1.1:FIXSRV->RTD, event>
(Disconnecting)
更新: 我想那场<field name='DefaultApplVerID' required='Y'/>
更改为required='N'
在我的字典里,但没有任何影响。其他字段可能会将其更改为非必需字段,并且在未设置时会跳过。这是特定的强制修复5.0SP2字段硬编码,不能是非强制性的?
我将其更改为UseDataDictionary = Y,但问题仍然如此。 – e30
您是否检查过在数据字典的登录消息中将DefaultApplVerID的所需值设置为N,而不是其他消息? – rupweb