Поломался запуск экспорта кастомных таблиц DDE в 4.3.13

Поломался запуск экспорта кастомных таблиц DDE в 4.3.13


Когда запускаем экспорт одиночной таблицы через quikTrader.StartExport(table), все нормально, экспорт стартует. Для всех последующих таблиц запуск экспорта не срабатывает.
В лог пишется:
Код
2015/10/05 16:09:54.210|Debug |QuikTrader|BP:MarketData,T(L)=2015.10.05 16:09:54.210,Sec=S#:@, Native:,Type:,Sec=S#:@, Native:,Type:,Types=Level1,IsSubscribe=True,TransId=0,OrigId=0
2015/10/05 16:09:54.538|Debug |QuikTrader|BP:MarketData,T(L)=2015.10.05 16:09:54.538,Sec=S#:@, Native:,Type:,Sec=S#:@, Native:,Type:,Types=Level1,IsSubscribe=True,TransId=0,OrigId=0
2015/10/05 16:09:54.538|Error |QuikTrader|System.InvalidOperationException: Subscribed
2015/10/05 16:09:55.023|Debug |QuikTrader|BP:MarketData,T(L)=2015.10.05 16:09:55.037,Sec=S#:@, Native:,Type:,Sec=S#:@, Native:,Type:,Types=Level1,IsSubscribe=True,TransId=0,OrigId=0
2015/10/05 16:09:55.037|Error |QuikTrader|System.InvalidOperationException: Subscribed

Заметил что в логе MarketData одинаковый, но таблицы я экспортирую разные.

Теги:


Спасибо:


Mikhail Sukhov

Фотография
Дата: 05.10.2015
Ответить


А что говорит ГитХаб?[wink]
Спасибо:

Валентин Лебедев

Фотография
Дата: 05.10.2015
Ответить


Как я понял полистав исходники, проблема возникает в BasketMessageAdapter.cs, exception выдает строка 310. Там перед тем как обработать входящее сообщение, из MarketDataMessage функцией CreateKey создается ключ к словарю _subscriptionStates, и если такой ключ уже есть, выдается ошибка. Проблема в том что в функции CreateKey не учитывается, что CustomExportMessage отличаются лишь своими внутренними свойствами.
Как один из вариантов решения, можно в конструкторе CustomExportMessage задавать SecurityId с SecurityCode = имени таблицы.
Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy