消息日志中的 quickfixn executionreport 35=8 但未命中 fromapp 或 crack

quickfixn executionreport 35=8 in message log but didn't hit fromapp or crack

所以我们发送了一条没有一方的 FIX 交易消息,银行拒绝了 35=8 执行报告和 150=8 拒绝,文本 FIX Tag 54 (Side) has invalid value (0). Reason (should be either 1 or 2) 然后是 35=3 拒绝消息 Value is incorrect (out of range) for this tag。 35=3 消息被破解,但 35=8 消息从未到达 fromapp。

我是否缺少设置?

35=3 表示 transport-level(又名 admin-level)拒绝。该消息在较低的解析层被拒绝,这意味着它的格式非常错误,甚至没有传递给您的应用程序。

通常这种拒绝意味着消息被弄乱了,以至于引擎甚至无法正确解析它,或者 header 字段无法解析为已知的 session。我有点惊讶你的特殊情况触发了 35=3 而不是 35=j.

我想您可以查看 FIX 规范,了解当 enum-type 标记具有未知值时它的要求。在这种情况下,引擎 是否 符合规范?

我猜带有 incorrect 54=0 标签的 35=8 消息没有到达 FromApp 或 FromAdmin 的原因是数据字典约束,但是这个给了我一个实现 public void FromEarlyIntercept(Message msg, SessionID s) 接口的机会,这已经解决了 bad 35=8 报告现在被报告给用户的问题......但是引入了一个良好报告现在被报告两次的新问题。

所以我将 <value enum="0" description="ERROR"/> 添加到 <field number="54" name="Side" type="CHAR"> 的枚举中,现在 35=8 消息不会被 35=3 消息拒绝。