S# 4.2.1.5 Не отрабатывает ReConnect после ночи.
Atom Ответить
24.12.2013


API: 4.2.1.5
Connector: SmartCom 3.0 ver. 3.0.79
Сервер: основной
Пример: SampleSmart
Запуск: exe из папки с примерами.


Ночью, когда биржа не работает вылазит exception, приведенный ниже, который обрабатывается и перехватывается
программой, поэтому программа не вываливается и это хорошо.


Ошибка обработки данных

System.InvalidOperationException: Подключение в состоянии Connected получило неожиданное сообщение типа 'DisconnectMessage'. ---> System.InvalidOperationException: connection closed by server (82.204.220.34:8090)

--- Конец трассировки внутреннего стека исключений ---

ОК


Но если все оставлять как есть, то в 10 утра, когда биржа начнет работать - новые данные приходить не будут, нужно перезапускать программу.
Повторить ошибку можно следующим образом: запустить в вечернюю сессию SampleSmart, выбрать стакан по какому-нибудь фьючерсу, оставить все на ночь. Ошибка вылезет в MessageBox.

Теги:


Спасибо:




5 Ответов
Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 25.12.2013
Ответить


alexan3010 Перейти

Но если все оставлять как есть, то в 10 утра, когда биржа начнет работать - новые данные приходить не будут, нужно перезапускать программу.


Нужны логи. Конкретно, строчки, начинающиеся со фразы RCM:
Спасибо:

alexan3010

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


Ok, сегодня на ночь запущу, завтра постараюсь выдать.
Автор топика
Спасибо:

alexan3010

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


В мой лог свалилась только одна запись
System.InvalidOperationException: Подключение в состоянии Connected получило неожиданное сообщение типа 'DisconnectMessage'. ---> System.InvalidOperationException: connection closed by server (82.204.220.34:8090)

никаких других нет. Вы можете повторить эту ошибку на своей системе, я описал как.
Автор топика
Спасибо:

shumilov

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


https://cloud.mail.ru/public/429...dbc9/Animation%20(1).gif
Коллеги! Прошу ответить, кто ещё сталкивался с подобной проблемой и есть ли решение? Повторить подобную ситуацию просто, достаточно запустить свою программу, соединиться с сервером брокера и разорвать интернет соединение.
Спасибо:

agat50

Фотография
Программист
Дата: 02.06.2016
Ответить


4.3.13 x86 Ловлю похожую ошибку просто при отключении кабеля у виртуалки:

Код

2016/06/02 17:09:28.055|Error |BasketMessageAdapter|Error disconnecting for ChannelMessageAdapter: System.InvalidOperationException: an existing connection was forcibly closed by the remote host.
(213.247.232.236:8090)
2016/06/02 17:09:28.055|Error |SmartTrader|System.InvalidOperationException: Connection in state Connected received an unexpected message of type 'DisconnectMessage'. ---> System.InvalidOperationException: an existing connection was forcibly closed by the remote host.
(213.247.232.236:8090)
--- End of inner exception stack trace ---
2016/06/02 17:09:28.061|Error |VisualMacd|_smartTrader.Error : at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo)
at System.Environment.get_StackTrace()
at VisualMacd.MainWindow.<ConnectBtn_Click>b__11_7(Exception error) in E:\Projects\Exchange\StockSharpProjects\VisualMacd\VisualMacd\MainWindow.xaml.cs:line 199
at Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg)
at StockSharp.Algo.Connector.RaiseError(Exception exception)
at StockSharp.Algo.Connector.ProcessConnectMessage(BaseConnectionMessage message)
at StockSharp.Algo.Connector.OnProcessMessage(Message message)
at StockSharp.SmartCom.SmartTrader.OnProcessMessage(Message message)
at StockSharp.Algo.Connector.OutMessageChannelOnNewOutMessage(Message message)
at Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg)
at StockSharp.Messages.InMemoryMessageChannel.<Open>b__1()
at Ecng.Common.Converter.<>c__DisplayClassf.<DoInCulture>b__e()
at Ecng.Common.Converter.DoInCulture[T](CultureInfo cultureInfo, Func`1 func)
at Ecng.Common.Converter.DoInCulture(CultureInfo cultureInfo, Action action)
at StockSharp.Messages.InMemoryMessageChannel.<Open>b__0()
at Ecng.Common.ThreadingHelper.<>c__DisplayClass10.<Thread>b__f()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()


Настройки переподключения такие:

Код

_SmartTrader.ReConnectionSettings.Interval = TimeSpan.FromSeconds(10);
_SmartTrader.ReConnectionSettings.ReAttemptCount = -1;
_SmartTrader.ReConnectionSettings.TimeOutInterval = TimeSpan.FromSeconds(15);
_SmartTrader.ReConnectionSettings.WorkingTime = ExchangeBoard.Forts.WorkingTime;


_SmartTrader остаётся в состоянии Connected, после восстановления связи сообщение Restored не появляется (подписка на event есть), свечки не идут. SmartCOM 3.0
Спасибо:


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

loading
clippy