← Назад

ConnectionError не срабатывает

Здравствуйте! Пытаюсь отловить событие прерывания подключения. Когда закрываю терминал quik при подключенном алгоритме то ни ConnectionErrorEx, ни ConnectionError, ни Disconnected не срабатывает, хотя в лог начинают сыпаться ошибки подключения.

Комментарии (5)

Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий

Константин
Константин Автор

Вопрос актуален.

Support
Support

Добрый день

Приведите пожалуйста код инициализации коннектора.

Константин
Константин Автор

Все настройки по умолчанию.

_connector= new Connector();
_connector.Adapter.InnerAdapters.Add(new LuaFixTransactionMessageAdapter(_connector.TransactionIdGenerator));
_connector.Adapter.InnerAdapters.Add(new LuaFixMarketDataMessageAdapter(_connector.TransactionIdGenerator));

Support
Support

Добрый день

По умолчанию, ошибки разрыва связи не транслируются, так как один коннектор может содержать несколько адаптеров внутри себя (у вас их два), и каждый адаптер делает независимое переподключение, не приводя весь коннектор в состояние потери связи. Вы можете отключить это поведение:

Connector.Adapter.SuppressReconnectingErrors = false;
Константин Дмитрий_
Alexander
Alexander

Имейте также в виду, что StockSharp не транслирует ошибки при работе с Quik еще как минимум в следующих случаях:

  1. При попытке выставить или снять заявку, если соединение между квиком и сервером прервалось.
  2. При ответе с сервера квика "Количество транзакций превышает максимально разрешённое N в секунду".

В обоих этих случаях реально заявка не устанавливается (или не снимается, в зависимости от того, что пытались сделать), но события OrderRegisterFailed и OrderCancelFailed не приходят. Поэтому код, который рассчитывает на получение фидбека по своему действию, будет просто бесконечно его ждать, а код, который фидбека не ждет, будет ошибочно рассчитывать, что, например, заявка была снята, чего на самом деле не произойдет.

Это очень неприятный баг, который не дает возможности надежно снимать и ставить заявки вообще в принципе.