ReConnection не работает

ReConnection не работает
Atom
3/16/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 минут - ничего не происходит.

Tags:


Thanks:


< 1 2 
Greene-nsk

Avatar
Date: 3/16/2011
Reply


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


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


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


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


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

Mikhail Sukhov

Avatar
Date: 3/16/2011
Reply


Greene-nsk

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


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

Greene-nsk

Avatar
Date: 3/17/2011
Reply


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 и все.
Thanks:

Mikhail Sukhov

Avatar
Date: 3/17/2011
Reply


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


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

Greene-nsk

Avatar
Date: 3/17/2011
Reply


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


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


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

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

Mikhail Sukhov

Avatar
Date: 3/17/2011
Reply


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


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


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

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


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

Greene-nsk

Avatar
Date: 3/22/2011
Reply


(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 недоступен. Тоже самое часто происходит просто при разрыве связи - соединение не восстанавливается.

Code

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)

...
Thanks:

Mikhail Sukhov

Avatar
Date: 3/24/2011
Reply


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


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

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

loading
clippy