2017-02-13 44 views
0

私はQuickFIXとPythonを使用して、FIX5.0SP2を処理するfixserverプロセスへの接続を開始しています。接続を開始しようとすると、次のメッセージが表示された後に切断されます。(Message 1 Rejected: Required tag missing:1137) このタグは、私のfixserverプロセスで必須ではなく、ログオンプロセスから削除しようとしています。私はFIXT11.xmlからそれを削除し、これに対してカスタムxmlを作成しましたが、成功しませんでした。私は何かが恋しいですか?私はあなたがこのファイルの必須から必須でないものに簡単に切り替えることができると思いましたか?ここで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) 

を更新:ここで

[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出力され 私は私の辞書にrequired='N'にそのフィールド<field name='DefaultApplVerID' required='Y'/>を変更しようとしましたが、どのなし効果。他のフィールドは非必須フィールドに変更することができ、設定されていない場合はスキップされます。この特定の必須の修正済みの5.0SP2フィールドはハードコードされていますか、必須ではありませんか?

答えて

0

あなたは

UseDataDictionary=N 

を持っていると私はそれがある限り、イニシエータ/アクセプターのデータ・ディクショナリが同期しているような問題だと思うだろう。

+0

UseDataDictionary = Yに変更しましたが、それでも問題は同じです。 – e30

+0

'DefaultApplVerID'に必要な値が他のメッセージではなく、データ辞書のログオンメッセージでNに設定されていることを確認しましたか? – rupweb

関連する問題