简体   繁体   English

QuickFixN:如何设置DeliverToCompID(标签128)

[英]QuickFixN : How to set DeliverToCompID (Tag 128)

I have a C# QuickFix application which require to set (Tag 128)DeliverToCompID, but the class QuickFix.SessionSettings does not contain this field, this means I cannot load DeliverToCompID from the header...I understand DeliverToCompID should be set before message send. 我有一个C#QuickFix应用程序,需要设置(Tag 128)DeliverToCompID,但是类QuickFix.SessionSettings不包含此字段,这意味着我无法从标头加载DeliverToCompID ...我知道应该在消息发送之前设置DeliverToCompID。

Below 3 lines are incorrect because DeliverToCompID should be set in header. 以下三行是错误的,因为应该在标头中设置DeliverToCompID。

if (message.IsSetField(Tags.DeliverToCompID)) 
   message.SetField(new DeliverToCompID("COMP_C"));
Session.Send(message);

Do I need to recompile the library? 我需要重新编译库吗? or Anyone know how to set DeliverToCompID? 还是有人知道如何设置DeliverToCompID?

QuickFix version: 1.7.0.0 QuickFix版本:1.7.0.0

Error message: 错误信息:

Initiated logon request
Message 1 Rejected: Required tag missing (Field=128)
Session FIX.4.2:COMP_A->COMP_B disconnecting: QuickFix.QuickFIXException:

Part of the FIX xml: FIX xml的一部分:

<header>
<field name="DeliverToCompID" required="Y"/>

Part of the config file: 配置文件的一部分:

[DEFAULT]
UseDataDictionary=Y
[SESSION]
BeginString=FIX.4.2
SenderCompID=COMP_A
TargetCompID=COMP_B
DeliverToCompID=COMP_C

The session header Tag 128 is talking about the session configuration. 会话头标记128正在谈论会话配置。

<header>
<field name="DeliverToCompID" required="N"/>

Since I have only one session logon but multiple execution Brokers, I need to set Tag 128 per message as shown below: 由于我只有一个会话登录,但是有多个执行代理,因此我需要为每条消息设置Tag 128,如下所示:

message.Header.SetField(new DeliverToCompID("COMP_C"));

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM