Quickfixn Fix 4.2 Как отправлять и получать сообщения на другой TargetCompID в одном сеансе - PullRequest
0 голосов
/ 18 сентября 2018

Как отправлять и получать сообщения Fix на разные 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.29 = 26135 = D34 = 6349 = 55550 = BBBBBB52 = 20180918-06: 56: 3856 = 0128 = 1129 = AAAAAA1 = 555 ----- 12611 = 121 = 122 = 438 = 250040 = 244 = 0,0347 = С48 = JO310921101654 = 255 = JO310921101658 = тестирование исправлять Connec59 = 160 = 20180918-09: 56: 38,579109 = 126110 = 50111 = 1009596 = 29947 = 5550035010 = 140 9:56:38 Обмен: 8 = FIX.4.29 = 11535 = 334 = 7349 = 050 = AAAAAA52 = 20180918-09: 56: 3856 = 55545 = 6358 = не может технологический заказ: TargetCompID недопустим 372 ​​= D 10 = 067

1 Ответ

0 голосов
/ 08 февраля 2019

TargetCompID является частью идентификатора сеанса, см. http://quickfixn.org/tutorial/configuration.html:

Сеанс FIX определяется в QuickFix / N как уникальная комбинация BeginString (номер версии FIX), SenderCompID (ваш идентификатор) и TargetCompID (идентификатор вашего контрагента).

Так что некорректно пытаться отправлять сообщения разным TargetCompID в одном сеансе; вам нужно создать отдельный сеанс для каждого TargetCompID.

Самое простое - определение сессий в файле конфигурации (см. Ссылку выше); в качестве альтернативы вы можете создавать их динамически - см. http://lists.quickfixn.com/pipermail/quickfixn-quickfixn.com/2016q1/000277.html

...