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

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


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


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

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




Thanks:


Support

Avatar
Date: 9/25/2018
Reply


Добрый день

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

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

Thanks:

Константин

Avatar
Date: 9/27/2018
Reply


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

Thanks:

Support

Avatar
Date: 9/27/2018
Reply


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

Connector.Adapter.InnerAdapters[transaqAdapter] = -1;
Thanks:

Константин

Avatar
Date: 9/28/2018
Reply


То есть для того что бы мне проверить подключение одного конкретного адаптера (например 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(); срабатывает при успешном подключении любого из адаптераов?

Thanks:

Константин

Avatar
Date: 10/3/2018
Reply


???

Thanks:

Support

Avatar
Date: 10/4/2018
Reply


Добрый день

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

Thanks:

Константин

Avatar
Date: 10/5/2018
Reply


Здравствуйте! Не могу разобраться с получением инструментов от разных адаптеров. Использую 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. Как можно получать инструменты от разных адаптеров?

Thanks:

Support

Avatar
Date: 10/5/2018
Reply


Добрый день

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

Thanks:

Константин

Avatar
Date: 10/8/2018
Reply


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

Thanks:

Support

Avatar
Date: 10/9/2018
Reply


Добрый день

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

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

Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy