Бесконечный Connect
Atom Ответить
28.11.2013


Всем привет! Возникла проблема.
trader.ProcessDataError
выдает ошибку
System.InvalidOperationException: Подключение к системе изменило свое состояние. Сообщение 'Disconnect,T=2013/11/28 16:28:24.568'. Текущее состояние клиента Connecting.
И идет вечный Connecting.
Подскажите, что делать в этой ситуации?
Как отменить подключение?
Пытался установить TimeOutInterval, но он помогает только если поставить 1-2 секунды.
Если установлено другое значение, то событие TimeOut не срабатывает вообще.
2 секунды это маленький интервал, иногда ошибочно выдает TimeOut, хотя подключение установилось.


И еще вопросик
trader.ProcessDataError
постоянно выдает ошибку
Не удалось привести тип объекта "System.Decimal" к типу "StockSharp.BusinessEntities.Quote".
Ее можно как нибудь исправить, а то она эфир засоряет.

SmartCom 3.0.79 x64
StockSharp 4.2

Теги:


Спасибо:




15 Ответов
Mikhail Sukhov

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


MenDel Go to

StockSharp 4.2


Обновитесь.
Спасибо:

MenDel

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


Михаил Сухов Go to
MenDel Go to

StockSharp 4.2


Обновитесь.


Обновился. Проблема осталась.
Изменилось описание ошибки: "Подключение к системе изменило свое состояние. Текущее состояние клиента Connecting. Сообщение типа 'DisconnectMessage'."

Добавлю
Терминал SmartTrade выдает ошибку Ваш терминал блокирован.
Программа этого не понимает и происходит вечный коннект, ошибки нет.
Автор топика
Спасибо:

Mikhail Sukhov

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


MenDel Go to

Изменилось описание ошибки: "Подключение к системе изменило свое состояние. Текущее состояние клиента Connecting. Сообщение типа 'DisconnectMessage'."


https://stocksharp.ru/posts/m/28490/
Спасибо:

MenDel

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


Михаил Сухов Go to
MenDel Go to

Изменилось описание ошибки: "Подключение к системе изменило свое состояние. Текущее состояние клиента Connecting. Сообщение типа 'DisconnectMessage'."


https://stocksharp.ru/posts/m/28490/


А как тогда вручную можно отменить Connecting?
Потому что робот зависает и ничто не помогает.
Автор топика
Спасибо:

Mikhail Sukhov

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


MenDel Go to

А как тогда вручную можно отменить Connecting?
Потому что робот зависает и ничто не помогает.


Если это из-за робота, то нужно изменить робота. Если это из-за ReConnection настроек (вообще то там интервал 1 минута по умолчанию), то изменить их.
Спасибо:

MenDel

Фотография
Дата: 29.11.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.
Её надо дорабатывать.
Автор топика
Спасибо:

Mikhail Sukhov

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


MenDel Go to

Кстати по поводу ReConnectа:
Ваш я не использую, потому что может отключиться интернет, может отвалиться сервер,


Тогда вопрос - причем тут S#? У вас свой собственный реконнект, и вы спрашиваете, как его остановить?BigGrin
Спасибо:

MenDel

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


Михаил Сухов Go to
MenDel Go to

Кстати по поводу ReConnectа:
Ваш я не использую, потому что может отключиться интернет, может отвалиться сервер,


Тогда вопрос - причем тут S#? У вас свой собственный реконнект, и вы спрашиваете, как его остановить?BigGrin


Михаил, тут вопрос не про реконнект, а про коннект!
Точнее про состояние Connecting!
Еще раз напишу, трейдер остается в состоянии Connecting и не хочет переходить в другое состояние.
И я не могу заново пробовать подключиться, так он мне выдает ошибку, что трейдер ужу в состоянии Connecting!

Вот я и спрашиваю, как мне остановить это?
Единственное что помогает это написать trader = null. И перезапускать робота.
Но это глупо! Хотя приходится так делать, чтоб не пролететь.
Но опять же для этого надо свой таймер делать, а вопрос зачем, если у вас есть события TimeOut и ConnectionError, но вот проблема они не всегда срабатывают.
Автор топика
Спасибо:

Mikhail Sukhov

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


MenDel Go to

Михаил, тут вопрос не про реконнект, а про коннект!
Точнее про состояние Connecting!
Еще раз напишу, трейдер остается в состоянии Connecting и не хочет переходить в другое состояние.
И я не могу заново пробовать подключиться, так он мне выдает ошибку, что трейдер ужу в состоянии Connecting!



Да, теперь понял о чем вы. Посмотрим, что там может быть.
Спасибо: MenDel

MenDel

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


Просто сделайте, чтоб TimeOutInterval всегда срабатывал и разрывал соединение.
Я думаю тогда будет все нормально.
Автор топика
Спасибо:

Mikhail Sukhov

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


MenDel Go to

Приходиться запускать свой таймер
Сначала стоит проверить хотя бы ping до гугла там, убедиться что интернет есть,
потом сделать ping до сервера, и понять в чем проблема, в интернете, в сервере или в чем то еще.
А потом уже либо пытаться подключиться, либо сменить сервер или что то еще сделать в зависимости от ситуации.


А почему просто не сменить сервер? Хорошо, допустим проблема в интернете, а не сервере. Прогнать по кругу все адреса серверов. Если ни с чем не подключилось, подождать. Что интернет, что сервер брокера - вы ни то ни другое не знаете когда починял, и для вас это одна единая переменная с неопределенным значением. Помоему и действие на эти две схожие ситуации должно быть одно и то же. Или у вас робот пытается починить интернет сам?
Спасибо:

MenDel

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


Михаил Сухов Go to
MenDel Go to

Приходиться запускать свой таймер
Сначала стоит проверить хотя бы ping до гугла там, убедиться что интернет есть,
потом сделать ping до сервера, и понять в чем проблема, в интернете, в сервере или в чем то еще.
А потом уже либо пытаться подключиться, либо сменить сервер или что то еще сделать в зависимости от ситуации.


А почему просто не сменить сервер? Хорошо, допустим проблема в интернете, а не сервере. Прогнать по кругу все адреса серверов. Если ни с чем не подключилось, подождать. Что интернет, что сервер брокера - вы ни то ни другое не знаете когда починял, и для вас это одна единая переменная с неопределенным значением. Помоему и действие на эти две схожие ситуации должно быть одно и то же. Или у вас робот пытается починить интернет сам?


Ну во первых у меня робот смски посылает. Если инет отключили он мне пришлет смс "Нет интернета", а если с сервером проблема напишет "Проблема на сервере"
Во вторых я планирую обьяснить ему как резервный интернет подключать.
Так что мне надо знать в чем проблема.
Автор топика
Спасибо:

Mikhail Sukhov

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


MenDel Go to

Ну во первых у меня робот смски посылает. Если инет отключили он мне пришлет смс "Нет интернета", а если с сервером проблема напишет "Проблема на сервере"
Во вторых я планирую обьяснить ему как резервный интернет подключать.
Так что мне надо знать в чем проблема.


Вот я и говорю - подключиться к серверу 1. Подключиться к серверу 2. Переключиться на канал 2. Проделать заново подключение с серверами.

Я не знаю, конечно, как у вас в городе, но довольно часто проблема с интернетом в Москве такая, что часть адресов работает, а часть нет. Если конечно проблема не врутри подъезда.

Смс, резервный канал. А случаем это не дороже будет аренды виртуального сервера у АйТи? У меня в памяти отложилось, что там что-то порядка 3 т.р. в месяц. Надо у брокера конечно спросить.
Спасибо:

MenDel

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


Михаил Сухов Go to

Вот я и говорю - подключиться к серверу 1. Подключиться к серверу 2. Переключиться на канал 2. Проделать заново подключение с серверами.


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

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

Михаил Сухов Go to

Я не знаю, конечно, как у вас в городе, но довольно часто проблема с интернетом в Москве такая, что часть адресов работает, а часть нет. Если конечно проблема не врутри подъезда.


У нас такого не бывает, если интернет отключат, то ко всем сайтам доступа не будет.

Михаил Сухов Go to

Смс, резервный канал. А случаем это не дороже будет аренды виртуального сервера у АйТи? У меня в памяти отложилось, что там что-то порядка 3 т.р. в месяц. Надо у брокера конечно спросить.


Что то я никогда не думал про виртуальный сервер.
А смс и резервный интернет мне обходится всего в 150 руб в месяц.
3G модем от Билайна и не помню уже какая то там подключенная услуга.
Автор топика
Спасибо:

Mikhail Sukhov

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


Как станет понятна причина вот этой ошибки https://stocksharp.ru/posts/m/28563/ то сразу выложим фикс по реконнекту.
Спасибо:


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

loading
clippy