← Назад

проблема, возникшая при миграции с 2.4 на 2.6

последовательность:

  1. добавляю обработчик StrategyManager.NewStrategies
  2. вызываю StrategyManager.Load("my.xml");
  3. стартую экспорт

после этого НИ разу не вызывается обработчик StrategyManager.NewStrategies зато вызвался Strategy.DisposeNative()

куда копать?

Комментарии (10)

Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий

Mikhail Sukhov
Mikhail Sukhov

sergun: последовательность:

  1. добавляю обработчик StrategyManager.NewStrategies
  2. вызываю StrategyManager.Load("my.xml");
  3. стартую экспорт

после этого НИ разу не вызывается обработчик StrategyManager.NewStrategies зато вызвался Strategy.DisposeNative()

куда копать?

А инструменты и портфель экспортировались, для которых была сохранена стратегия?

sergun
sergun Автор

Mikhail Sukhov:

sergun: последовательность:

  1. добавляю обработчик StrategyManager.NewStrategies
  2. вызываю StrategyManager.Load("my.xml");
  3. стартую экспорт

после этого НИ разу не вызывается обработчик StrategyManager.NewStrategies зато вызвался Strategy.DisposeNative()

куда копать?

А инструменты и портфель экспортировались, для которых была сохранена стратегия? Не понял вопрос.. В квике они есть. п.3 - это ITrader.StartExport, нужно еще что-то вызывать?

В любом случае непонятно, с чего вызвался DisposeNative().. Что ли те стратегии, которые загрузились из файла, но для которых не нашелся инструмент или счет "диспоузятся"?

Mikhail Sukhov
Mikhail Sukhov

sergun: Не понял вопрос.. В квике они есть. п.3 - это ITrader.StartExport, нужно еще что-то вызывать?

Посмотреть, пришли ли они в ITrader.NewSecurities и ITrader.NewPortfolios.

sergun: В любом случае непонятно, с чего вызвался DisposeNative().. Что ли те стратегии, которые загрузились из файла, но для которых не нашелся инструмент или счет "диспоузятся"?

А как Вы это увидели, что вызвался DisposeNative?

sergun
sergun Автор

Mikhail Sukhov:

sergun: Не понял вопрос.. В квике они есть. п.3 - это ITrader.StartExport, нужно еще что-то вызывать?

Посмотреть, пришли ли они в ITrader.NewSecurities и ITrader.NewPortfolios.

sergun: В любом случае непонятно, с чего вызвался DisposeNative().. Что ли те стратегии, которые загрузились из файла, но для которых не нашелся инструмент или счет "диспоузятся"?

А как Вы это увидели, что вызвался DisposeNative?

Под дебаггером. Переопределяю его у себя.

Mikhail Sukhov
Mikhail Sukhov

sergun:

Mikhail Sukhov:

sergun: Не понял вопрос.. В квике они есть. п.3 - это ITrader.StartExport, нужно еще что-то вызывать?

Посмотреть, пришли ли они в ITrader.NewSecurities и ITrader.NewPortfolios.

sergun: В любом случае непонятно, с чего вызвался DisposeNative().. Что ли те стратегии, которые загрузились из файла, но для которых не нашелся инструмент или счет "диспоузятся"?

А как Вы это увидели, что вызвался DisposeNative?

Под дебаггером. Переопределяю его у себя.

Пришлите стек-трейс.

sergun
sergun Автор

Mikhail Sukhov:

sergun:

Mikhail Sukhov:

sergun: Не понял вопрос.. В квике они есть. п.3 - это ITrader.StartExport, нужно еще что-то вызывать?

Посмотреть, пришли ли они в ITrader.NewSecurities и ITrader.NewPortfolios.

sergun: В любом случае непонятно, с чего вызвался DisposeNative().. Что ли те стратегии, которые загрузились из файла, но для которых не нашелся инструмент или счет "диспоузятся"?

А как Вы это увидели, что вызвался DisposeNative?

Под дебаггером. Переопределяю его у себя.

Пришлите стек-трейс.

Вижу лишь вот такое:

megarobot.exe!megarobot.MegaStrategy.DisposeNative() Line 791	C#
Ecng.Common.dll!Ecng.Common.Disposable.Finalize() + 0x2a bytes	
[Native to Managed Transition]	
kernel32.dll!77e7d0e9() 	
[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]	
ntdll.dll!77cf19bb() 	
ntdll.dll!77cf198e() 	
sergun
sergun Автор

Mikhail Sukhov:

sergun:

Mikhail Sukhov:

sergun: Не понял вопрос.. В квике они есть. п.3 - это ITrader.StartExport, нужно еще что-то вызывать?

Посмотреть, пришли ли они в ITrader.NewSecurities и ITrader.NewPortfolios.

sergun: В любом случае непонятно, с чего вызвался DisposeNative().. Что ли те стратегии, которые загрузились из файла, но для которых не нашелся инструмент или счет "диспоузятся"?

А как Вы это увидели, что вызвался DisposeNative?

Под дебаггером. Переопределяю его у себя.

Пришлите стек-трейс. megarobot.exe!megarobot.MegaStrategy.DisposeNative() Line 791 C# Ecng.Common.dll!Ecng.Common.Disposable.Finalize() + 0x2a bytes [Native to Managed Transition] kernel32.dll!77e7d0e9() [Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll] ntdll.dll!77cf19bb() ntdll.dll!77cf198e()

Mikhail Sukhov
Mikhail Sukhov

sergun: Вижу лишь вот такое:

megarobot.exe!megarobot.MegaStrategy.DisposeNative() Line 791 C# Ecng.Common.dll!Ecng.Common.Disposable.Finalize() + 0x2a bytes [Native to Managed Transition] kernel32.dll!77e7d0e9() [Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll] ntdll.dll!77cf19bb() ntdll.dll!77cf198e()

Лучше переопределить DisposeManaged и туда поставить бряку. DisposeNative вызывается, когда объект собирается GC.

sergun
sergun Автор

Mikhail Sukhov:

sergun: Вижу лишь вот такое:

megarobot.exe!megarobot.MegaStrategy.DisposeNative() Line 791	C#
Ecng.Common.dll!Ecng.Common.Disposable.Finalize() + 0x2a bytes
[Native to Managed Transition]
kernel32.dll!77e7d0e9()
[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]
ntdll.dll!77cf19bb()
ntdll.dll!77cf198e()

Лучше переопределить DisposeManaged и туда поставить бряку. DisposeNative вызывается, когда объект собирается GC.

В него управление не передается..

т.е. вызывается только DisposeNative, эксепшенов нет - проверяю try .. catch (Exception ex).

Mikhail Sukhov
Mikhail Sukhov

sergun: Лучше переопределить DisposeManaged и туда поставить бряку. DisposeNative вызывается, когда объект собирается GC.

В него управление не передается..

т.е. вызывается только DisposeNative, эксепшенов нет - проверяю try .. catch (Exception ex).

Все, что понятно - собирается сборщиком мусора стратегия... Но это слабо коррелируется с StrategyManager.Load и то, что не вызывается StrategyManager.NewStrategies. Вы смотрели на события появления портфелей и инструментов? Они приходят для загружаемых стратегий?