ReConnection не работает
Atom
16.03.2011
Greene-nsk


(this.Trader as SmartTrader).ReConnectionSettings.Interval = TimeSpan.FromSeconds(20);
(this.Trader as SmartTrader).ReConnectionSettings.WorkingTime = Exchange.Test.WorkingTime;
(this.Trader as SmartTrader).ReConnectionSettings.ConnectingAttemptCount = -1;

Подписан на события:
this.Trader.Connected
this.Trader.Disconnected
this.Trader.ProcessDataError
this.Trader.ConnectionError

Запускаю, отключаю свой вайфай через который раздается инет, через минуту получаю this.Trader.Disconnected. Жду 5 минут - ничего не происходит. Включаю инет обратно, жду 5 минут - ничего не происходит.

Теги:


Спасибо:


< 1 2 
Greene-nsk

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


Mikhail Sukhov
Greene-nsk
Mikhail Sukhov
Greene-nsk
reason приходит пустой.


Это значит штатное отсоединение. Вы Dispose, Disconnect где-то вызываете?


Не вызываю. Когда вызывается Disconnect(), приходит Reason: disconnected by user.


Сначала разберемся что к чему, потом я точечно исправлю.[smile]


Вообще, вы же знаете когда зовется Dispose или Disconnect. Почему бы во всех остальных случаях не звать reconnect?
Спасибо:

Mikhail Sukhov

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


Greene-nsk

Вообще, вы же знаете когда зовется Dispose или Disconnect. Почему бы во всех остальных случаях не звать reconnect?


Это будет правильно с точки зрения дизайна - четко понять когда ошибка, а когда ее нет.
Спасибо:

Greene-nsk

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


Mikhail Sukhov
Greene-nsk

Вообще, вы же знаете когда зовется Dispose или Disconnect. Почему бы во всех остальных случаях не звать reconnect?


Это будет правильно с точки зрения дизайна - четко понять когда ошибка, а когда ее нет.


У меня есть подозрение, что главная проблема здесь не в том, почему вылазит Disconnect без ошибки, а в том, почему не приходит ConnectionError. Я выставил следующие настройки для ReConnection:

(this.Trader as SmartTrader).ReConnectionSettings.WorkingTime = Exchange.Test.WorkingTime;
(this.Trader as SmartTrader).ReConnectionSettings.ConnectingAttemptCount = -1;
(this.Trader as SmartTrader).ReConnectionSettings.ReConnectingAttemptCount = -1;
(this.Trader as SmartTrader).ReConnectionSettings.Interval = TimeSpan.FromSeconds(20);
(this.Trader as SmartTrader).ReConnectionSettings.ExportTimeOutInterval = TimeSpan.FromSeconds(20);
(this.Trader as SmartTrader).ReConnectionSettings.ConnectDisconnectTimeOutInterval = TimeSpan.FromSeconds(20);

Ожидал, что каждые 20 секунд соединение будет проверяться и если его нет - будет ошибка. Я отключаю интернет, и больше минуты ничего не приходит. Только потом приходит Disconnected и все.
Спасибо:

Mikhail Sukhov

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


Greene-nsk
У меня есть подозрение, что главная проблема здесь не в том, почему вылазит Disconnect без ошибки, а в том, почему не приходит ConnectionError.


Возьмите последнюю версию.
Спасибо:

Greene-nsk

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


Mikhail Sukhov
Greene-nsk
У меня есть подозрение, что главная проблема здесь не в том, почему вылазит Disconnect без ошибки, а в том, почему не приходит ConnectionError.


Возьмите последнюю версию.


Отлично. Реконнектится.

Теперь другая проблема. После реконнекта "слетают" RegisterTrades, RegisterSecurity, RegisterQuotes. Экспорт я стартую.
Спасибо:

Mikhail Sukhov

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


Greene-nsk
Mikhail Sukhov
Greene-nsk
У меня есть подозрение, что главная проблема здесь не в том, почему вылазит Disconnect без ошибки, а в том, почему не приходит ConnectionError.


Возьмите последнюю версию.


Отлично. Реконнектится.

Теперь другая проблема. После реконнекта "слетают" RegisterTrades, RegisterSecurity, RegisterQuotes. Экспорт я стартую.


Конкретно эти события нужно запускать самостоятельно.
Спасибо:

Greene-nsk

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


(this.Trader as SmartTrader).ReConnectionSettings.WorkingTime = Exchange.Test.WorkingTime;
(this.Trader as SmartTrader).ReConnectionSettings.ConnectingAttemptCount = -1;
(this.Trader as SmartTrader).ReConnectionSettings.ReConnectingAttemptCount = -1;
(this.Trader as SmartTrader).ReConnectionSettings.Interval = TimeSpan.FromSeconds(20);
(this.Trader as SmartTrader).ReConnectionSettings.ExportTimeOutInterval = TimeSpan.FromSeconds(20);
(this.Trader as SmartTrader).ReConnectionSettings.ConnectDisconnectTimeOutInterval = TimeSpan.FromSeconds(20);

Каждый день ровно в 6:00 по Москве связь разрывается, и потом не поднимается. Идет куча ошибок Сервер RPC недоступен. Тоже самое часто происходит просто при разрыве связи - соединение не восстанавливается.

Код

22.03.2011 6:00:04 [OpenWealth.StockSharp.TraderInitializator.SmartServer_Disconnected] Reason: (22255690)
22.03.2011 6:00:05 [OpenWealth.StockSharp.TraderInitializator.Trader_Disconnected] ERROR: Произошел незапланированный разрыв связи. (908)
22.03.2011 6:00:05 [OpenWealth.StockSharp.TraderInitializator.Trader_Disconnected] Ждем 20 секунд и восcтанавливаем соединение. (0)
22.03.2011 6:00:26 [OpenWealth.StockSharp.TraderInitializator.Connect] Соединяемся с сервером ... (20431)
22.03.2011 6:00:32 [OpenWealth.StockSharp.TraderInitializator.Trader_ConnectionError] ERROR: Ошибка соединения System.InvalidOperationException: WINSOCK (6056)
22.03.2011 6:00:32 [OpenWealth.StockSharp.TraderInitializator.Connect] FATAL ERROR: Отсутствует соединение с Smart. (33)
22.03.2011 6:00:52 [OpenWealth.StockSharp.TraderInitializator.Trader_ConnectionError] ERROR: Ошибка соединения System.InvalidOperationException: Соединение не было установлено. (20394)
22.03.2011 6:01:12 [OpenWealth.StockSharp.TraderInitializator.Trader_ConnectionError] ERROR: Ошибка соединения System.Runtime.InteropServices.COMException (0x800706BA): Сервер RPC недоступен. (Исключение из HRESULT: 0x800706BA)
в StClientLib.StServerClass.disconnect()
в Ecng.Trading.Smart.SmartComWrapper.#=qnCgDm1vHPvXpt7N3mOxtVy8NZjT2eQuyDSB5hXbNr7Q=(StServer #=qKUBRzCyeMBm8zUOTVMXn3A==)
в Ecng.Trading.Smart.SmartComWrapper.#=q75j_Z5JSRxNkiXV88FHEug==(Action`1 #=qqKsTnjrmu7pdXnaFSMdxhw==)
в Ecng.Trading.Smart.SmartComWrapper.Disconnect()
в Ecng.Trading.Smart.SmartTrader.OnDisconnect()
в Ecng.Trading.Algo.BaseTrader.Disconnect()
в Ecng.Trading.Algo.BaseTrader.#=qgA3BsOJZFeBWXFGAp7wz7Q==() (19556)
22.03.2011 6:01:39 [OpenWealth.StockSharp.TraderInitializator.Trader_ConnectionError] ERROR: Ошибка соединения System.Runtime.InteropServices.COMException (0x800706BA): Сервер RPC недоступен. (Исключение из HRESULT: 0x800706BA)
в StClientLib.StServerClass.disconnect()
в Ecng.Trading.Smart.SmartComWrapper.#=qnCgDm1vHPvXpt7N3mOxtVy8NZjT2eQuyDSB5hXbNr7Q=(StServer #=qKUBRzCyeMBm8zUOTVMXn3A==)
в Ecng.Trading.Smart.SmartComWrapper.#=q75j_Z5JSRxNkiXV88FHEug==(Action`1 #=qqKsTnjrmu7pdXnaFSMdxhw==)
в Ecng.Trading.Smart.SmartComWrapper.Disconnect()
в Ecng.Trading.Smart.SmartTrader.OnDisconnect()
в Ecng.Trading.Algo.BaseTrader.Disconnect()
в Ecng.Trading.Algo.BaseTrader.#=qgA3BsOJZFeBWXFGAp7wz7Q==() (27695)

...
Спасибо:

Mikhail Sukhov

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


Greene-nsk
Каждый день ровно в 6:00 по Москве связь разрывается, и потом не поднимается. Идет куча ошибок Сервер RPC недоступен. Тоже самое часто происходит просто при разрыве связи - соединение не восстанавливается.


Пока не понял, почему Смарт иногда поднимается, а иногда нет.
Спасибо:
< 1 2 

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

loading
clippy