IsExportRunning == false after reConnect
Atom
10.03.2011
Greene-nsk


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

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

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


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


Теги:


Спасибо:


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