IsExportRunning == false after reConnect
Atom Ответить
10.03.2011


Михаил, добрый день!

У меня такая небольшая проблемка..

Я подписан на событие:
Код

// подписываемся на событие успешного соединения
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();
};


Также установлены ReConnectionSettings.
Первоначальный коннект и старт экспорта происходит отлично. Затем, если произошел дисконнект и происходит повторное соединение, Trader.IsExportRunning почему-то имеет значение false (хотя нигде остановки экспорта я явно не делал). Соответственно опять запускается экспорт и я получаю очень много ошибок вида "System.ArgumentException: Элемент с тем же ключом уже был добавлен." через Trader.ProcessDataError.

Это IsExportRunning неправильно работает или я что не так делаю?

Ошибка:
Код

09.03.2011 19:38:10 [OpenWealth.StockSharp.TraderInitializator.Trader_ConnectionError] ERROR: Ошибка соединения System.InvalidOperationException: Timout detected. check your internet connectivity or event handler code
09.03.2011 19:38:30 [OpenWealth.StockSharp.TraderInitializator.Trader_ConnectionError] ERROR: Ошибка соединения System.InvalidOperationException: Соединение не было установлено.
09.03.2011 19:38:34 [OpenWealth.StockSharp.TraderInitializator.<Init>b__2] Соединение установлено.
09.03.2011 19:38:34 [OpenWealth.StockSharp.TraderInitializator.<Init>b__2] Запускаем экспорт Smart ...
09.03.2011 19:38:35 [OpenWealth.StockSharp.TraderInitializator.Trader_ProcessDataError] ERROR: Ошибка обработки данных System.ArgumentException: Элемент с тем же ключом уже был добавлен.
в System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
в System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
в System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value)
в Ecng.Collections.SynchronizedDictionary`2.Add(TKey key, TValue value)
в Ecng.Trading.Smart.SmartTrader.#=q51k2unzMIsNyRtIj9eqUHAWG1vpOTm_EnhcELxwzk18=.#=qHYtNp3Oq0wi5iYKFl4EY208vdoxZ0LK9yJJy8eAVByo=(Security #=q7quMwu_Bzmw8O0CkI7XjJA==)
в Ecng.Trading.Algo.BaseTrader.GetSecurity(String id, Func`2 createSecurity, Action`1 changeSecurity)
в Ecng.Trading.Algo.BaseTrader.GetSecurity(String id, Action`1 changeSecurity)
в Ecng.Trading.Smart.SmartTrader.#=qdrdBGX21A5eLENJf3ptKAA==(Int32 #=qvYc1SRNnVYaugo8TTapgNQ==, Int32 #=qeO4QX3nBzQgyDnwMfZtKrA==, String #=qBMKdqfg2OQ5yRrqr1gNjTQ==, String #=qyUb925f$nwA0AepJn$J03g==, String #=qDglujU417hVywZLPioBx7Q==, String #=qXExfZs10qQGmZ1Dg_jDB2A==, Int32 #=qvxoDwHTOJ4ySbsvV0xlD_g==, Int32 #=qEjVNe5vbQz$sy_ks5IXngQ==, Double #=qPgAqEqCLUVYYnAV6IFPEPA==, Double #=q5yIeWw1FAkzyUxEssGOdOA==, String #=qsKD9O1f$5Ocp9io7L4HTJg==, String #=qrdP_YbKfA6M$TJ$t_t8h5A==, Nullable`1 #=qVzECTYxPjudgjMW0vBjqMA==, Double #=qAtSy5Brikaa2NebNjmmVv8h1G$cj4cpWya5$9U0XsXw=)
в Ecng.Common.DelegateHelper.SafeInvoke[T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14](Action`14 handler, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14)
в Ecng.Trading.Smart.SmartComWrapper.#=qAYx9wRCrRwCsEvMIqJuSgZnn1mBfEPtkmHJ_XDbfM8Q=.#=qGbWrt3y25WxRTlQc1U4TP2QX1j4hCZ0w7O3q6nyaxRA=()
в Ecng.Trading.Algo.BaseTrader.ProcessEvents(Action handler)

Теги:


Спасибо:




3 Ответов
Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 10.03.2011
Ответить


1. То, что повторный запуск экспорта приводит к ошибке - это бага. Нашел, исправил.
2. IsExportRunning == false потому что соединение было прервано со СмартКом.
Спасибо:

Greene-nsk

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


Mikhail Sukhov Перейти
1. То, что повторный запуск экспорта приводит к ошибке - это бага. Нашел, исправил.
2. IsExportRunning == false потому что соединение было прервано со СмартКом.


Здравствуйте, Михаил.
Еще после такого реконнекта перестают приходить все эвенты по инструментам. Это из-за неработающего повторного экспорта? Когда выложите обновление?
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 15.03.2011
Ответить


Greene-nsk Перейти
Mikhail Sukhov Перейти
1. То, что повторный запуск экспорта приводит к ошибке - это бага. Нашел, исправил.
2. IsExportRunning == false потому что соединение было прервано со СмартКом.


Здравствуйте, Михаил.
Еще после такого реконнекта перестают приходить все эвенты по инструментам. Это из-за неработающего повторного экспорта? Когда выложите обновление?


Уже доступно. Я в новостях пишу о фиксах в 3.0... И да, после перезапуска экспорта NewSecurities NewPortfolios приходить не будут, если не появятся действительно новые инструменты и портфели.
Спасибо:


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

loading
clippy