Quickfixn Fix 4.2 如何在同一会话中向不同的 TargetCompID 发送和接收消息



如何在同一会话中向不同的 TargetCompID 发送和接收修复消息

public void ToAdmin(Message message, SessionID sessionID)
{
if ( (message.ToString().IndexOf("35=D") > 0) || (message.ToString().IndexOf("35=G") > 0) || (message.ToString().IndexOf("35=F") > 0))
{            message.Header.SetField(new TargetCompID("1"));
}
}

9:56:38 ToApp: 8=FIX.4.2 9=261 35=D 34=63 49=555 50=BBBBBB 52=20180918-06:56:38 56=0 128=1 129=AAAAAA 1=555-----126 11=1 21=1 22=4 38=2500 40=2 44=0.03 47=C 48=JO3109211016 54=2 55=JO3109211016 58=测试 修复 Connec 59=1 60=20180918-09:56:38.579 109=126 110=50 111=100 9596=2 9947=55500350 10=140 9:56:38 交换: 8=FIX.4.2 9=115 35=3 34=73 49=0 50=AAAAAA 52=20180918-09:56:38 56=555 45=63 58=不能 进程顺序:目标 CompID 无效 372=D 10=067

TargetCompID 是 Session 标识符的一部分,请参见 http://quickfixn.org/tutorial/configuration.html:

FIX

会话在 QuickFix/N 中定义为 BeginString(FIX 版本号(、SenderCompID(您的 ID(和 TargetCompID(您的交易对手的 ID(的唯一组合。

因此,尝试在同一会话中将消息发送到不同的TargetCompID似乎是不正确的;您需要为每个TargetCompID创建一个单独的会话。

最简单的方法是在配置文件中定义会话(请参阅上面的链接(;或者,您可以动态创建它们 - 请参阅 http://lists.quickfixn.com/pipermail/quickfixn-quickfixn.com/2016q1/000277.html

最新更新