MultiConnection независимая работа адаптеров
Atom Ответить
24.09.2018


Здравствуйте. Я добавляю в коннектор два адаптера:
Код

_connector.Adapter.InnerAdapters.AddRange(new MessageAdapter[]
{
new LuaFixMarketDataMessageAdapter(_connector.TransactionIdGenerator){/*Инициализация*/},
new TransaqMessageAdapter(_connector.TransactionIdGenerator){/*Инициализация*/}
});

Могу ли я сними работать не зависимо? То есть подключать и отключать их по отдельности, запрашивать свечи одного инструмента от обоих адаптеров либо только от одного т.д.



Спасибо:




10 Ответов
Support

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


Добрый день

Выключение адаптеров возможно через свойство Connector.Adapter.InnerAdapters передав в него значение -1.

Отправка сообщений в конкретный адаптер осуществляется через параметр adapter в методе LookupSecurities
Спасибо:

Константин

Фотография
Благотворитель
Дата: 27.09.2018
Ответить


Здравствуйте. Про значение -1 не понял. Можно поподробнее что значит передать значение -1?
Автор топика
Спасибо:

Support

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


Код ниже выключает адаптер из коннектора, не удаляя его физически

Код
Connector.Adapter.InnerAdapters[transaqAdapter] = -1;
Спасибо:

Константин

Фотография
Благотворитель
Дата: 28.09.2018
Ответить


То есть для того что бы мне проверить подключение одного конкретного адаптера (например LuaFixMarketDataMessageAdapter) нужно сделать так?
Код

//Выключаем которые проверять на подключение не нужно
Connector.Adapter.InnerAdapters[transaqAdapter] = -1;
Connector.Adapter.InnerAdapters[....] = -1;
Connector.Adapter.InnerAdapters[....] = -1;

Connector.ConnectedEx += ConnectAction; //Подписаться на успешное подключения адаптера
Connector.ConnectionErrorEx += ConnectErrorAction; //Подписаться на ошибки подключения адаптера
Connector.Connect();

void ConnectErrorAction(IMessageAdapter messageAdapter1, Exception exception)
{
//Ошибка подключения
}
void ConnectAction(IMessageAdapter adapter)
{
//подключение установлено;
Connector.Disconnect();

//Включаем все остальные адаптеры
Connector.Adapter.InnerAdapters[transaqAdapter] = 1;
Connector.Adapter.InnerAdapters[....] = 1;
Connector.Adapter.InnerAdapters[....] = 1;
}

Не ругайтесь сильно... Код набросал на коленке для общего представления алгоритма.
И еще вопрос. Событие Connector.Connected(); срабатывает при успешном подключении любого из адаптераов?
Автор топика
Спасибо:

Константин

Фотография
Благотворитель
Дата: 03.10.2018
Ответить


???
Автор топика
Спасибо:

Support

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


Добрый день

Событие Connected вызывается один или для каждого адаптера в зависимости от опции Connector.RaiseConnectedOnFirstAdapter Событие ConnectedEx вызывается для каждого адаптера всегда.
Спасибо:

Константин

Фотография
Благотворитель
Дата: 04.10.2018
Ответить


Здравствуйте!
Не могу разобраться с получением инструментов от разных адаптеров.
Использую LuaFixMarketDataMessageAdapter и TransaqMessageAdapter.
Сначала пытаюсь получить инструменты от TransaqMessageAdapter так:

Код
Connector.LookupSecuritiesResult += (exception, securities) => { };
Connector.Adapter.InnerAdapters[LuaFixMarketDataMessageAdapter ] = -1;
Connector.LookupSecurities(new Security(), TransaqMessageAdapter);

Инструменты от TransaqMessageAdapter приходят.
Но когда далее пытаюсь получить инструменты от LuaFixMarketDataMessageAdapter так:

Код
Connector.Adapter.InnerAdapters[TransaqMessageAdapter] = -1;
Connector.Adapter.InnerAdapters[LuaFixMarketDataMessageAdapter ] = 1;
Connector.LookupSecurities(new Security(), LuaFixMarketDataMessageAdapter );

то инструменты не приходят.
Connector содержит инструменты от TransaqMessageAdapter.
Как можно получать инструменты от разных адаптеров?
Автор топика
Спасибо:

Support

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


Добрый день

Пришлите пожалуйста лог Луа.
Спасибо:

Константин

Фотография
Благотворитель
Дата: 08.10.2018
Ответить


Вроде бы разобрался. Инструменты приходят от обоих адаптеров. Просто запутался в событиях LookupSecuritiesResult и NewSecurities. Инструменты приходят при подключении коннектора.
Мне не понятно почему при получении инструментов адаптера TransaqMessageAdapter срабатывает только событие NewSecurities, а при получении инструментов FixMarketDataMessageAdapter срабатывают и NewSecurities и LookupSecuritiesResult.
В чем разница этих событий?
Все инструменты приходят в одну коллекцию Connector.Securities. Есть ли способ отфильтровать инструменты по адаптеру?
Автор топика
Спасибо:

Support

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


Добрый день

NewSecurity вызывается постоянно как только появляется в системе новый инструмент. LookupSecuritiesResult вызывается только при запросе на поиск инструментов.

Инструменты одни единые на разные подключения. В случае множества подключений рекомендуем выключить Connector.UpdateSecuritiesByLevel1 с целью предотвращения перезаписи данных.
Спасибо:


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

loading
clippy