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

时间:2017-02-18 09:29:04

标签: c# quickfixn

我有一个C#QuickFix应用程序需要设置(标签128)DeliverToCompID,但是类 QuickFix.SessionSettings 不包含此字段,这意味着我无法从标头加载DeliverToCompID ...我知道应该在发送消息之前设置DeliverToCompID。

以下3行不正确,因为应在标题中设置DeliverToCompID。

UICollectionViewFlowLayout

我需要重新编译库吗?或者任何人都知道如何设置DeliverToCompID?

QuickFix版本:1.7.0.0

错误讯息:

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

FIX xml的一部分:

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

配置文件的一部分:

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

1 个答案:

答案 0 :(得分:1)

会话标头Tag 128正在讨论会话配置。

;WITH tree AS
(
    SELECT c1.id, c1.name, c1.sub_of, [id_level] = c1.id, [level] = 1
    FROM dbo.[btree2] c1
    WHERE c1.sub_of = 0
    UNION ALL
    SELECT c2.id, c2.name, c2.sub_of, [id_level] = tree.[id_level], [level] = tree.[level] + 1
    FROM dbo.[btree2] c2 INNER JOIN tree ON c2.sub_of = tree.id
)
SELECT t1.id, t1.sub_of, t1.name, t1.id_level, t1.level
FROM tree t1
     INNER JOIN (SELECT id_level, MAX(level) AS level FROM tree GROUP BY id_level) t2
     ON t1.id_level = t2.id_level AND t1.level = t2.level
ORDER BY id_level, level
OPTION (MAXRECURSION 0)
;

由于我只有一个会话登录但是有多个执行代理,我需要为每个消息设置Tag 128,如下所示:

+----+--------+----------+----------+-------+
| id | sub_of | name     | id_level | level |
+----+--------+----------+----------+-------+
| 5  |    1   | Level 2A |     1    |   2   |
| 11 |    6   | Level 3B |     2    |   3   |
| 10 |    9   | Level 5C |     3    |   5   |
| 4  |    0   | Level 1D |     4    |   1   |
+----+--------+----------+----------+-------+