2017-02-13 3 views
0

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 필드가 하드 코딩되어 있고 필수가 아니어야합니까?

답변

0

당신은

UseDataDictionary=N 

있어 내가 추측에는 요 그 한 기자/수용체 데이터 사전이 동기화되어 같은 문제입니다.

+0

UseDataDictionary = Y로 변경했지만 여전히 문제는 동일합니다. – e30

+0

'DefaultApplVerID'의 필수 값이 다른 사전 메시지가 아닌 데이터 사전의 로그온 메시지에서 N으로 설정되었는지 확인 했습니까? – rupweb