← Back

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

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

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

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

куда копать?

Comments (10)

Login or Create account, Log in or register to leave a comment

Mikhail Sukhov
Mikhail Sukhov

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

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

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

куда копать?

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

sergun
sergun Author

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 Author

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 Author

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 Author

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 Author

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. Вы смотрели на события появления портфелей и инструментов? Они приходят для загружаемых стратегий?