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

S# 4.2.1.5 Не отрабатывает ReConnect после ночи.
Atom
12/24/2013
alexan3010


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.


Tags:


Thanks:


Mikhail Sukhov

Avatar
Date: 12/25/2013
Reply


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

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

Thanks:

alexan3010

Avatar
Date: 12/26/2013
Reply


Ok, сегодня на ночь запущу, завтра постараюсь выдать.

Thanks:

alexan3010

Avatar
Date: 12/27/2013
Reply


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

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

Thanks:

shumilov

Avatar
Date: 10/19/2014
Reply


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

Thanks:

agat50

Avatar
Date: 6/2/2016
Reply


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

Thanks:


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

loading
clippy