1

我正在向客户端应用程序发送消息 MarketDataSnapshotFullRefresh,但我在 toAdmin 方法中收到“标签出现多次”。我得到的原始消息字符串是

8=FIX.4.2|9=111|35=3|34=222|49=CLIENT1|52=20120217-18:57:44.233|56
=FixServer|45=189|58=Tag appears more than once|371=37|372=W|10=234|

有人有想法吗?

  QuickFix42.MarketDataSnapshotFullRefresh message =
       new QuickFix42.MarketDataSnapshotFullRefresh(new Symbol("QF"));

  QuickFix42.MarketDataSnapshotFullRefresh.NoMDEntries group =
          new QuickFix42.MarketDataSnapshotFullRefresh.NoMDEntries();

        group.set(new MDEntryType('0'));
        group.set(new MDEntryPx(12.32));
        group.set(new MDEntrySize(100));
        group.set(new OrderID("ORDERID"));
        message.addGroup(group);

        group.set(new MDEntryType('1'));
        group.set(new MDEntryPx(12.32));
        group.set(new MDEntrySize(100));
        group.set(new OrderID("ORDERID"));
        message.addGroup(group);

        Session.sendToTarget(message, session);
4

2 回答 2

3

这看起来像是一个重复的组问题。您的客户将 Snapshot 消息视为无组消息,然后因为重复的标签而拒绝它。(您的消息构造代码显示正确。)

当客户端无法识别组时,通常意味着 DataDictionary 配置错误。

确保在您的配置中设置了以下内容,我怀疑这个特定问题会消失:

UseDataDictionary=Y
DataDictionary=path/to/your/DD.xml
于 2012-10-10T19:47:21.293 回答
2

您的问题在于您的数据字典 - 您的 FIX42.xml 文件应该具有正确的 MarketDataSnapshotFullRefresh 定义,以及为 MDEntries 重复组定义的组件块。还要确保您的配置文件具有“UseDataDictionary=Y”并且您的路径定义了自定义 FIX42.xml。

您的 .xml 文件中定义的字段顺序也可能与交易对手的规范不同。确保它们的顺序也相同。

于 2012-09-07T13:06:21.860 回答