捕获未通过 QuickFix 验证的传入 FIX 消息

Jon*_*han 8 quickfix fix-protocol

Quickfix客户端使用XML 规范文件验证传入消息。如果消息验证失败,quickfix 会自动发送拒绝响应。AFAIK 在这种情况下,quickfix 不会调用传入消息的标准回调fromApp(),因此到目前为止,我无法以编程方式捕获这些错误的传入消息并处理它们。

有没有办法捕获未通过快速修复验证的传入 FIX 消息?

当然,它们可能会出现在默认的快速修复日志文件中,但我宁愿在我的代码中实时捕获它们。

Gra*_*ier 5

那没有。

QuickFIX 根本不认为这是一个有用的功能。如果消息无效,QF 会执行协议指定的行为,并且应用程序无法或不应该执行任何操作来恢复。任何修复都需要开发人员分析以及 xml 和/或代码修复,因此日志文件足以记录问题。

如果您希望在发生此类错误时收到自动警报,我建议您使用某种外部日志监控应用程序,该应用程序可以监视日志中是否出现 35=3 或 35=j。(从便宜的方面来说, cron/grep 操作的组合可以很容易地做到这一点。)


cen*_*bck 1

通过 XML 规范文件进行的验证是在会话级别处理中。因此,没有合适的钩子。

另一方面,还有一些配置参数;

  • UseDataDictionary :消除验证
  • ValidateUserDefinedFields :消除用户定义字段的验证

寻找详细的描述

编辑:如果您的真正问题是监视拒绝,则在 toAdmin() 挂钩捕获 Reject(3) 和 BusinessReject(j) 消息就足够了。

  • 这种配置调整只会隐藏问题。不建议。 (2认同)