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

これは、グループの問題が繰り返されているように見えます。クライアントは、スナップショットメッセージをグループ化されていないフラットなメッセージとして扱い、タグが繰り返されているために拒否しています。(メッセージ構築コードは正しいように見えます。)

クライアントがグループを認識しない場合、それは通常、DataDictionaryが正しく構成されていないことを意味します。

構成に次のように設定されていることを確認してください。この特定の問題はなくなると思われます。

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

問題はデータ ディクショナリにあります。FIX42.xml ファイルには、MarketDataSnapshotFullRefresh の正しい定義があり、コンポーネント ブロックが MDEntries 繰り返しグループ用に定義されている必要があります。また、構成ファイルに「UseDataDictionary=Y」があり、カスタム FIX42.xml が定義されています。

また、.x​​ml ファイルで定義されているフィールドの順序が、相手方の仕様と同じでない可能性もあります。それらが同じ順序であることも確認してください。

于 2012-09-07T13:06:21.860 に答える