2017-02-13 9 views
0

Я использую QuickFIX и Python для инициирования подключения к процессу fixserver, который обрабатывает FIX5.0SP2. Когда я пытаюсь инициировать соединение, я получаю сообщение об отключении после получения следующего сообщения: (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) 

Update: Я попытался изменить это поле <field name='DefaultApplVerID' required='Y'/> к required='N' в моем словаре, но без каких-либо эффект. В других областях можно изменить их на необязательные, и они пропускаются, если они не установлены. Является ли это обязательным полем исправления 5.0SP2 жестко закодированным и не может быть необязательным?

ответ

0

Вы получили

UseDataDictionary=N 

и я предполагаю, что это проблема, пока словари данных Инициатор/акцепторные в синхронизации.

+0

Я изменил его на UseDataDictionary = Y, но проблема все та же. – e30

+0

Вы отметили, что для параметра «DefaultApplVerID» установлено значение N в сообщении «Вход в систему» ​​в словаре данных, а не какое-либо другое сообщение? – rupweb

 Смежные вопросы

  • Нет связанных вопросов^_^