QuickFIX 및 Python을 사용하여 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)
업데이트 : 은 내 사전에 있지만없이 required='N'
에 해당 필드 <field name='DefaultApplVerID' required='Y'/>
을 변경하려 효과. 다른 필드는 비 필수 필드로 변경할 수 있으며 설정하지 않으면 건너 뜁니다. 이 필수 수정 사항 5.0SP2 필드가 하드 코딩되어 있고 필수가 아니어야합니까?
UseDataDictionary = Y로 변경했지만 여전히 문제는 동일합니다. – e30
'DefaultApplVerID'의 필수 값이 다른 사전 메시지가 아닌 데이터 사전의 로그온 메시지에서 N으로 설정되었는지 확인 했습니까? – rupweb