Михаил, добрый день!
У меня такая небольшая проблемка..
Я подписан на событие:
// подписываемся на событие успешного соединения
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)
Kommentare (3)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
Здравствуйте, Михаил. Еще после такого реконнекта перестают приходить все эвенты по инструментам. Это из-за неработающего повторного экспорта? Когда выложите обновление?
Уже доступно. Я в новостях пишу о фиксах в 3.0... И да, после перезапуска экспорта NewSecurities NewPortfolios приходить не будут, если не появятся действительно новые инструменты и портфели.