quickfixn executionreport 35 = 8在消息日志中但没有点击fromapp或破解

时间:2017-10-05 16:59:02

标签: quickfix quickfixn

所以我们发送一个没有一方的FIX交易消息,银行拒绝了35 = 8执行报告,150 = 8拒绝,文本FIX Tag 54 (Side) has invalid value (0). Reason (should be either 1 or 2)然后35 = 3拒绝消息{{1 }}。 35 = 3消息被破解,但35 = 8消息永远不会到达fromapp。

我错过了一个设置吗?

enter image description here

2 个答案:

答案 0 :(得分:1)

35 = 3表示传输级别(也称为管理级别)拒绝。该消息在较低的解析层被拒绝,这意味着它的格式错误甚至无法传递给您的应用程序。

通常这种拒绝意味着消息以某种方式混乱,使得引擎甚至无法正确解析它,或者标题字段无法解析为已知会话。我有点惊讶你的特殊情况触发了35 = 3而不是35 = j。

我想你可以检查FIX规范,看看当enum-type标签有未知值时它的强制要求。在这种情况下,引擎可能遵循规范吗?

答案 1 :(得分:1)

我想35 = 8消息与不正确的 54 = 0标签的原因没有到达FromApp或FromAdmin是因为数据字典约束,但这给了我一个机会实现public void FromEarlyIntercept(Message msg, SessionID s)接口,这解决了现在向用户报告 35 = 8报告的问题...但是引入了一个新问题 good现在报告报告两次。

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