C# 标记多次出现QuickFix

C# 标记多次出现QuickFix,c#,quickfix,C#,Quickfix,我正在向客户端应用程序发送消息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.MarketDataSna

我正在向客户端应用程序发送消息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);

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


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

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


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

这看起来像是重复的集团问题。您的客户端将快照消息视为无组消息,然后由于重复标记而拒绝它。您的邮件构造代码似乎正确

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

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

UseDataDictionary=Y
DataDictionary=path/to/your/DD.xml

这看起来像是一个重复的群体问题。您的客户端将快照消息视为无组消息,然后由于重复标记而拒绝它。您的邮件构造代码似乎正确

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

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

UseDataDictionary=Y
DataDictionary=path/to/your/DD.xml

我认为你的问题有一些错误。当您说在toAdmin期间引发此错误时,您一定错了,因为MDSnapshot不是管理消息。你是说多普吗?但实际上,它也不可能是toApp,因为QF不会验证传出的消息。我认为您的场景实际上是这样的:服务器正在构造这个MDSnapshot消息并发送到客户端。客户端尝试解析,并在fromApp期间抛出,而不是toAdmin或toApp。我认为您的问题有一些错误。当您说在toAdmin期间引发此错误时,您一定错了,因为MDSnapshot不是管理消息。你是说多普吗?但实际上,它也不可能是toApp,因为QF不会验证传出的消息。我认为您的场景实际上是这样的:服务器正在构造这个MDSnapshot消息并发送到客户端。客户端尝试解析,并在fromApp期间抛出,而不是toAdmin或toApp。