Mikhail Sukhov
|
Date: 11/28/2013
MenDel:
StockSharp 4.2
Обновитесь.
|
|
|
|
Thanks:
|
|
|
|
|
|
MenDel
|
Date: 11/29/2013
Михаил Сухов:
MenDel:
StockSharp 4.2
Обновитесь.
Обновился. Проблема осталась.
Изменилось описание ошибки: "Подключение к системе изменило свое состояние. Текущее состояние клиента Connecting. Сообщение типа 'DisconnectMessage'."
Добавлю
Терминал SmartTrade выдает ошибку Ваш терминал блокирован.
Программа этого не понимает и происходит вечный коннект, ошибки нет.
|
|
|
|
Thanks:
|
|
|
|
|
|
Mikhail Sukhov
|
Date: 11/29/2013
|
|
|
|
Thanks:
|
|
|
|
|
|
MenDel
|
Date: 11/29/2013
Михаил Сухов:
MenDel:
Изменилось описание ошибки: "Подключение к системе изменило свое состояние. Текущее состояние клиента Connecting. Сообщение типа 'DisconnectMessage'."
http://stocksharp.com/posts/m/28490/
А как тогда вручную можно отменить Connecting?
Потому что робот зависает и ничто не помогает.
|
|
|
|
Thanks:
|
|
|
|
|
|
Mikhail Sukhov
|
Date: 11/29/2013
MenDel:
А как тогда вручную можно отменить Connecting?
Потому что робот зависает и ничто не помогает.
Если это из-за робота, то нужно изменить робота. Если это из-за ReConnection настроек (вообще то там интервал 1 минута по умолчанию), то изменить их.
|
|
|
|
Thanks:
|
|
|
|
|
|
MenDel
|
Date: 11/29/2013
|
|
|
|
|
Настройки:
_trader.ReConnectionSettings.ConnectionSettings.TimeOutInterval = TimeSpan.FromSeconds(..);
_trader.ReConnectionSettings.ConnectionSettings.AttemptCount = 0;
_trader.ReConnectionSettings.ConnectionSettings.ReAttemptCount = 0;
При неправильном вводе сервера (возможно такая же ситуация возникнет когда их сервак отвалится, не проверял)
Если TimeOutInterval = 22 сек, то все работает. Сработает ConnectionError и соединение переходит в состояние Failed.
А вот если установить 23 и более, то соединение никогда не перейдет в Failed, оно так и останется в состоянии Connecting
Похожая ситуация возникает тогда, когда доступ к терминалу по какой либо причине блокирован
Только время TimeOutInterval в этой ситуации идет меньше до 2 сек, и 3 и более сек соответственно
А вот если отключена сетевая карта, то ConnectionError срабатывает сразу же.
Так как пишет проблема с лицензией.
Но вот если роутер отключится, то TimeOutInterval вообще должен быть равен 1 сек.
Иначе он так и останется висеть в состоянии Connecting.
Вот проблема и заключается как раз в том, что TimeOutInterval не работает.
Он не в состоянии разорвать соединение, для того, что бы можно было заново подключиться.
Поэтому я и спрашиваю, есть ли возможность руками это сделать?
Кстати по поводу ReConnectа:
Ваш я не использую, потому что может отключиться интернет, может отвалиться сервер,
а робот так и останется пытаться через допустим каждые 30 сек переподключиться и не поймет в чем ваще причина.
Приходиться запускать свой таймер
Сначала стоит проверить хотя бы ping до гугла там, убедиться что интернет есть,
потом сделать ping до сервера, и понять в чем проблема, в интернете, в сервере или в чем то еще.
А потом уже либо пытаться подключиться, либо сменить сервер или что то еще сделать в зависимости от ситуации.
Мое мнение, эта функция в вашей библиотеке бесполезна, по крайней мере по отношению к SmartCom.
Её надо дорабатывать.
|
|
|
|
Thanks:
|
|
|
|
|
|
Mikhail Sukhov
|
Date: 11/29/2013
MenDel:
Кстати по поводу ReConnectа:
Ваш я не использую, потому что может отключиться интернет, может отвалиться сервер,
Тогда вопрос - причем тут S#? У вас свой собственный реконнект, и вы спрашиваете, как его остановить?[biggrin]
|
|
|
|
Thanks:
|
|
|
|
|
|
MenDel
|
Date: 11/29/2013
Михаил Сухов:
MenDel:
Кстати по поводу ReConnectа:
Ваш я не использую, потому что может отключиться интернет, может отвалиться сервер,
Тогда вопрос - причем тут S#? У вас свой собственный реконнект, и вы спрашиваете, как его остановить?[biggrin]
Михаил, тут вопрос не про реконнект, а про коннект!
Точнее про состояние Connecting!
Еще раз напишу, трейдер остается в состоянии Connecting и не хочет переходить в другое состояние.
И я не могу заново пробовать подключиться, так он мне выдает ошибку, что трейдер ужу в состоянии Connecting!
Вот я и спрашиваю, как мне остановить это?
Единственное что помогает это написать trader = null. И перезапускать робота.
Но это глупо! Хотя приходится так делать, чтоб не пролететь.
Но опять же для этого надо свой таймер делать, а вопрос зачем, если у вас есть события TimeOut и ConnectionError, но вот проблема они не всегда срабатывают.
|
|
|
|
Thanks:
|
|
|
|
|
|
Mikhail Sukhov
|
Date: 11/29/2013
MenDel:
Михаил, тут вопрос не про реконнект, а про коннект!
Точнее про состояние Connecting!
Еще раз напишу, трейдер остается в состоянии Connecting и не хочет переходить в другое состояние.
И я не могу заново пробовать подключиться, так он мне выдает ошибку, что трейдер ужу в состоянии Connecting!
Да, теперь понял о чем вы. Посмотрим, что там может быть.
|
|
|
|
|
|
|
MenDel
|
Date: 11/29/2013
Просто сделайте, чтоб TimeOutInterval всегда срабатывал и разрывал соединение.
Я думаю тогда будет все нормально.
|
|
|
|
Thanks:
|
|
|
|
|