ReConnection не работает


ReConnection не работает
Atom
3/16/2011


(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


[3.0.16]
Thanks:

Mikhail Sukhov

Avatar
Date: 3/16/2011
Reply


Greene-nsk Go to
(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 минут - ничего не происходит.


ConnectingAttemptCount - это для первоначального соединения. Протестил у себя (выключил адаптер, подождал ConnectionError, кстати, без Disconnected) - у меня все поднялось штатно.
Thanks:

Greene-nsk

Avatar
Date: 3/16/2011
Reply


Мне надо как-то решить эту проблему. При реальной торговле тоже это периодически происходит. Никакого ConnectionError не приходит. Просто ITrader.Disconnected. И соединение после этого не восстанавливается, можно ждать хоть несколько часов.
Thanks:

Greene-nsk

Avatar
Date: 3/16/2011
Reply


Также я пробовал заменить автоматический реконнект своим, раз уж он не работает:
Code

// подписываемся на событие разрыва соединения
this.Trader.Disconnected += () =>
{
this.IsConnected = false;

if (!_IsDisconnectScheduled)
{
Log.OutError("Произошел незапланированный разрыв связи.");
int secToWait = 20;
Log.Out("Ждем " + secToWait + " секунд и восcтанавливаем соединение.", LogLevel.notice);
Common.Async(() =>
{
Thread.Sleep(TimeSpan.FromSeconds(secToWait));
this.Connect();
});
}
else
{
Log.Out("Соединение разорвано.", LogLevel.notice);
}
};

// подписываемся на событие успешного соединения
this.Trader.Connected += () =>
{
this.IsConnected = true;
Log.Out("Соединение установлено.", LogLevel.notice);

// запускаем экпорт, если не запущен
if (!this.Trader.IsExportRunning)
{
Log.Out("Запускаем экспорт " + Const.TraderType + " ...", LogLevel.notice);
this.Trader.StartExport();
}

_ConnectHandle.Set();
};


После такого восстановления соединение восстанавливается, но события перестают приходить. Это описано в http://stocksharp.com/fo...iestarta-soiedinieniia/ . Видимо регистрация слетает , и надо заново регистрировать все бумаги?
Thanks:

Mikhail Sukhov

Avatar
Date: 3/16/2011
Reply


Greene-nsk Go to
Мне надо как-то решить эту проблему. При реальной торговле тоже это периодически происходит. Никакого ConnectionError не приходит. Просто ITrader.Disconnected. И соединение после этого не восстанавливается, можно ждать хоть несколько часов.


Если приходит Disconnected, то переподключение не будет работать. Оно работает только в случае ошибок. Вы точно принудительно не отключаетесь от SmartCOM? Подпишитесь как здесь показали на событие Disconnected у StClient. Интересна причина разрыва.
Thanks:

Greene-nsk

Avatar
Date: 3/16/2011
Reply


Mikhail Sukhov Go to
Greene-nsk Go to
Мне надо как-то решить эту проблему. При реальной торговле тоже это периодически происходит. Никакого ConnectionError не приходит. Просто ITrader.Disconnected. И соединение после этого не восстанавливается, можно ждать хоть несколько часов.


Если приходит Disconnected, то переподключение не будет работать. Оно работает только в случае ошибок. Вы точно принудительно не отключаетесь от SmartCOM? Подпишитесь как здесь показали на событие Disconnected у StClient. Интересна причина разрыва.


reason приходит пустой. Как насчет восстановления, описанного в моем предыдущем посте? Перезапускать регистрацию?
Thanks:

Mikhail Sukhov

Avatar
Date: 3/16/2011
Reply


Greene-nsk Go to

После такого восстановления соединение восстанавливается, но события перестают приходить. Это описано в http://stocksharp.com/fo...iestarta-soiedinieniia/ . Видимо регистрация слетает , и надо заново регистрировать все бумаги?


Я же там ответил насчет инструментов и портфелей.
Thanks:

Mikhail Sukhov

Avatar
Date: 3/16/2011
Reply


Greene-nsk Go to
reason приходит пустой.


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

Greene-nsk

Avatar
Date: 3/16/2011
Reply


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


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


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

Mikhail Sukhov

Avatar
Date: 3/16/2011
Reply


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


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


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


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

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

loading
clippy