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

Теги:


Спасибо:


1 2  >
Greene-nsk

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


[3.0.16]
Спасибо:

Mikhail Sukhov

Фотография
Дата: 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 минут - ничего не происходит.


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

Greene-nsk

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


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

Greene-nsk

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


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

// подписываемся на событие разрыва соединения
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/ . Видимо регистрация слетает , и надо заново регистрировать все бумаги?
Спасибо:

Mikhail Sukhov

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


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


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

Greene-nsk

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


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


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


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

Mikhail Sukhov

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


Greene-nsk Перейти

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


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

Mikhail Sukhov

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


Greene-nsk Перейти
reason приходит пустой.


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

Greene-nsk

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


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


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


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

Mikhail Sukhov

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


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


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


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


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

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

loading
clippy