不知道为什么FIX服务器会抛出此错误。使用 Fix.4.4,我有一个客户端生成了市价单。它被服务器接收,但它返回错误。
客户端和服务器端登录成功。然后客户端发送市价单:
Header [8=FIX.4.4 | 9=130 | 35=D | 34=92 | 49=BROKER_CLIENT | 52=20121009-00:58:44.283 | 56=BROKER_SERVER | ] Body [11=0 | 21=1 | 38=100 | 40=1 | 54=1 | 55=JNJ | 59=0 | 60=20121009-00:58:44 | ] Trailer [10=035 | ]
这是从服务器的"fromApp"方法接收的。然后,服务器响应: (消息 92 被拒绝:缺少有条件的必填字段:35)
Field35 显然在那里,看不出服务器响应错误的原因。
这个问题也被发布到邮件列表中。 原来弗洛雷斯先生在打电话
std::string msgType = message.getField(FIX::FIELD::MsgType);
而不是
std::string msgType = message.getHeader().getField(FIX::FIELD::MsgType);
在他的FromApp()
电话中。