Не запускается Гидра.

Не запускается Гидра.
Atom
9/9/2014
SoWar2


Добрый день.
Не могу запустить Гидру (последняя актуальная версия в вин7 32). Зависает на попытке загрузить инструменты.
Содержание лога:
Quote:
20:52:18.197|Error |S#.Data |System.InvalidOperationException: При просмотре дерева превышена логическая глубина дерева. Возможно, в дереве имеется циклическая зависимость.
в System.Windows.FrameworkElement.FindResourceInTree(FrameworkElement feStart, FrameworkContentElement fceStart, DependencyProperty dp, Object resourceKey, Object unlinkedParent, Boolean allowDeferredResourceReference, Boolean mustReturnDeferredResourceReference, DependencyObject boundaryElement, InheritanceBehavior& inheritanceBehavior, Object& source)
в System.Windows.FrameworkElement.FindResourceInternal(FrameworkElement fe, FrameworkContentElement fce, DependencyProperty dp, Object resourceKey, Object unlinkedParent, Boolean allowDeferredResourceReference, Boolean mustReturnDeferredResourceReference, DependencyObject boundaryElement, Boolean isImplicitStyleLookup, Object& source)
в System.Windows.StyleHelper.GetChildValueHelper(UncommonField`1 dataField, ItemStructList`1& valueLookupList, DependencyProperty dp, DependencyObject container, FrameworkObject child, Int32 childIndex, Boolean styleLookup, EffectiveValueEntry& entry, ValueLookupType& sourceType, FrameworkElementFactory templateRoot)
в System.Windows.StyleHelper.GetChildValue(UncommonField`1 dataField, DependencyObject container, Int32 childIndex, FrameworkObject child, DependencyProperty dp, FrugalStructList`1& childRecordFromChildIndex, EffectiveValueEntry& entry, ValueLookupType& sourceType, FrameworkElementFactory templateRoot)
в System.Windows.StyleHelper.GetValueFromStyleOrTemplate(FrameworkObject fo, DependencyProperty dp, EffectiveValueEntry& entry)
в System.Windows.FrameworkElement.GetRawValue(DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry& entry)
в System.Windows.FrameworkElement.EvaluateBaseValueCore(DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry& newEntry)
в System.Windows.DependencyObject.EvaluateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry newEntry, OperationType operationType)
в System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
в System.Windows.DependencyObject.InvalidateProperty(DependencyProperty dp, Boolean preserveCurrentValue)
в System.Windows.StyleHelper.InvalidateResourceDependents(DependencyObject container, ResourcesChangeInfo info, FrugalStructList`1& resourceDependents, Boolean invalidateVisualTreeToo)
в System.Windows.TreeWalkHelper.InvalidateStyleAndReferences(DependencyObject d, ResourcesChangeInfo info, Boolean containsTypeOfKey)
в System.Windows.TreeWalkHelper.OnResourcesChanged(DependencyObject d, ResourcesChangeInfo info, Boolean raiseResourceChangedEvent)
в System.Windows.FrameworkElement.OnAncestorChangedInternal(TreeChangeInfo parentTreeState)
в System.Windows.TreeWalkHelper.OnAncestorChanged(DependencyObject d, TreeChangeInfo info, Boolean visitedViaVisualTree)
в System.Windows.DescendentsWalker`1.StartWalk(DependencyObject startNode, Boolean skipStartNode)
в MS.Internal.PrePostDescendentsWalker`1.StartWalk(DependencyObject startNode, Boolean skipStartNode)
в System.Windows.TreeWalkHelper.InvalidateOnTreeChange(FrameworkElement fe, FrameworkContentElement fce, DependencyObject parent, Boolean isAddOperation)
в System.Windows.FrameworkElement.ChangeLogicalParent(DependencyObject newParent)
в System.Windows.FrameworkElement.AddLogicalChild(Object child)
в System.Windows.Controls.ContentControl.OnContentChanged(Object oldContent, Object newContent)
в System.Windows.Controls.ContentControl.OnContentChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
в System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
в System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
в System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
в System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
в System.Windows.DependencyObject.InvalidateProperty(DependencyProperty dp, Boolean preserveCurrentValue)
в System.Windows.Data.BindingExpressionBase.Invalidate(Boolean isASubPropertyChange)
в System.Windows.Data.BindingExpression.TransferValue(Object newValue, Boolean isASubPropertyChange)
в System.Windows.Data.BindingExpression.Activate(Object item)
в System.Windows.Data.BindingExpression.AttachToContext(AttachAttempt attempt)
в System.Windows.Data.BindingExpression.MS.Internal.Data.IDataBindEngineClient.AttachToContext(Boolean lastChance)
в MS.Internal.Data.DataBindEngine.Task.Run(Boolean lastChance)
в MS.Internal.Data.DataBindEngine.Run(Object arg)
в MS.Internal.Data.DataBindEngine.OnLayoutUpdated(Object sender, EventArgs e)
в System.Windows.ContextLayoutManager.fireLayoutUpdateEvent()
в System.Windows.ContextLayoutManager.UpdateLayout()
в System.Windows.UIElement.UpdateLayout()
в ActiproSoftware.Windows.Controls.Docking.DockingWindowContainer.FocusSelectedWindow(Boolean #YEf)
в ActiproSoftware.Windows.Controls.Docking.TabbedMdiHost.#bx(DockingWindow #sb, Boolean #an)
в ActiproSoftware.Windows.Controls.Docking.TabbedMdiHost.#4w(DockingWindow #sb, Boolean #an)
в ActiproSoftware.Windows.Controls.Docking.DockSite.Activate(DockingWindow #sb, Boolean #an)
в ActiproSoftware.Windows.Controls.Docking.DockSite.Open(DockingWindow #sb, Boolean #2jf, Boolean #an)
в ActiproSoftware.Windows.Controls.Docking.DockingWindow.Activate(Boolean focus)
в StockSharp.Hydra.MainWindow.CurrentTasks_OnSelectionChanged(Object sender, EventArgs eventArgs)
в System.Windows.Controls.SelectionChangedEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
в System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
в System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
в System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
в System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
в System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
в System.Windows.Controls.ListBox.OnSelectionChanged(SelectionChangedEventArgs e)
в System.Windows.Controls.Primitives.Selector.InvokeSelectionChanged(List`1 unselectedInfos, List`1 selectedInfos)
в System.Windows.Controls.Primitives.Selector.SelectionChanger.End()
в System.Windows.Controls.Primitives.Selector.SelectionChanger.SelectJustThisItem(ItemInfo info, Boolean assumeInItemsCollection)
в System.Windows.Controls.Primitives.Selector.OnSelectedIndexChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
в System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
в System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
в System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
в System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
в System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType, Boolean isInternal)
в System.Windows.DependencyObject.SetValue(DependencyProperty dp, Object value)
в StockSharp.Hydra.UserConfig.LoadLayout()


1. Что нужно поправить, чтобы Гидра запустилась?

И более общий вопрос:
Необходимо запускать источник смартком3.0 за несколько часов до начала торгов, т.к. ухожу на работу гораздо раньше. Запускаю Гидру. Нажимаю Старт. Спустя где-то полчаса после этого смартком видимо сбрасывает соединение и импорт не происходит.
Фрагмент лога файла смартком:
Quote:
08:11:37.345| |SmartTrader|Инструмент RIU4@FORTS зарегистрирован на получение рыночных данных для Level1.
08:11:37.870| |SmartCOM |Для RIU4@FORTS загружено 1 MarketDepth.
08:32:06.073|Error |SmartTrader|System.InvalidOperationException: Подключение в состоянии Connected получило неожиданное сообщение типа 'DisconnectMessage'. ---> System.InvalidOperationException: connection closed by server (213.247.232.238:48091)
--- Конец трассировки внутреннего стека исключений ---
08:32:06.074|Error |SmartCOM |System.InvalidOperationException: Подключение в состоянии Connected получило неожиданное сообщение типа 'DisconnectMessage'. ---> System.InvalidOperationException: connection closed by server (213.247.232.238:48091)
--- Конец трассировки внутреннего стека исключений ---
08:32:06.863|Error |SmartCOM |System.InvalidOperationException: Подключение в состоянии Connected получило неожиданное сообщение типа 'DisconnectMessage'. ---> System.InvalidOperationException: connection closed by server (213.247.232.238:48091)
--- Конец трассировки внутреннего стека исключений ---
в StockSharp.Hydra.Core.MarketDataConnector`1.ThrowIfError()
в StockSharp.Hydra.Core.MarketDataConnector`1.GetTrades()
в StockSharp.Hydra.Core.ConnectorHydraTask`1.SaveValues[T](Func`1 getNewValues, Action`2 saveValues)
в StockSharp.Hydra.Core.ConnectorHydraTask`1.ProcessNewData()
в StockSharp.Hydra.Core.ConnectorHydraTask`1.OnProcess()
в StockSharp.Hydra.Core.BaseHydraTask.<Start>b__0()


Насколько я помню, эта проблема возникала у меня еще год назад и я так и не нашел способ ее побороть. Сейчас пробую AutoIt и Планировщик заданий, чтобы кнопка Старт нажималась минут за 10 до начала торгов, но стала возникать ошибка, описанная первой в посте.

2. Как можно избежать такой ошибки? Можно ли как-то автоматизировать запуск в определенное время?

И еще один вопрос, который стал только актуальней:
3. Можно ли бэкапить настройки Гидры и источников, чтобы как-то минимизировать потери при разного рода ошибках?
Например, при сбросе настроек приходится заново настраивать все инструменты.

С уважением,
Олег.

Tags:


Thanks:


1 2  >
Mikhail Sukhov

Avatar
Date: 9/9/2014
Reply


Судя по фантомности ошибки, она является следствием, а не первопричиной. Посмотрите в лог-файл. Не было ли каких-то других сообщений до этой ошибки.
Thanks:

SoWar2

Avatar
Date: 9/10/2014
Reply


Михаил, добрый день.
Да, вы правы. Ошибки были и другие. Обычно проблемы начинаются, когда по каким-либо причинам приходится принудительно завершать работу Гидры.
Вложил логи за день, когда начались ошибки. Предыдущий день завершился без ошибок.
2014_09_08.rar 7 KB (227)
Thanks:

Mikhail Sukhov

Avatar
Date: 9/10/2014
Reply


У вас файл с базой данных занят другим процессом. Возможно вторая Гидра запущена.
Thanks:

SoWar2

Avatar
Date: 9/10/2014
Reply


Михаил Сухов
У вас файл с базой данных занят другим процессом. Возможно вторая Гидра запущена.


Я уже проверял эту версию. После перезагрузки все блокировки должны были сняться, но все равно ошибка та же.
Quote:
08:09:29.088|Error |S#.Data |System.InvalidOperationException: При просмотре дерева превышена логическая глубина дерева. Возможно, в дереве имеется циклическая зависимость.

Возможно по ошибке когда-то была попытка запустить вторую гидру без ожидания завершения работы первой. Но могла ли такая ситуация повредить базу или какой-то файл настолько, чтобы был невозможен старт гидры с разблокированной базой.

Не могу сказать, что решил проблему, т.к. полная переустановка это все же не решение. :) Но вот мои действия.
Установил все заново, сохранив и удалив файлы в "Мои документы" и в папке установки. Потом заменил базу Stocksharp.db в "Мои документы" на старую. Запустил гидру и она подхватила старые установки инструментов и коннекторов. Это порадовало. Стартовал задачу - заработало со второго раза. В первый старт смартком выдал ошибку в логах.
Quote:

22:02:28.923| |SmartCOM |Инициализируется.
22:02:28.927| |SmartCOM |Перешел в состояние Starting.
00:00:00.000| |SmartTrader|Connect
22:02:32.891|Error |SmartCOM |System.InvalidOperationException
22:03:32.876|Error |SmartCOM |При запуске источника произошел максимально допустимый таймаут. Источник будет остановлен.
22:03:32.888| |SmartCOM |Перешел в состояние Stopped.
22:03:40.902| |SmartCOM |Инициализируется.
22:03:40.905| |SmartCOM |Перешел в состояние Starting.
00:00:00.000| |SmartTrader|Connect
22:03:44.753| |SmartTrader|StartExport
22:03:44.758| |SmartTrader|Создан новый портфель BP111111-RF-01.
22:03:44.781| |SmartCOM |Перешел в состояние Started.
22:03:44.845| |SmartCOM |Получен инструмент AUH5@FORTS.
22:03:44.846| |SmartCOM |Получен инструмент BRF5@FORTS.
22:03:45.065| |SmartCOM |Получен инструмент BR86BI4@FORTS.
...


Если есть более разумный способ решения проблемы - буду рад услышать.

В связи с этим, Михаил, могли бы вы рассказать, что за файлы находятся в папках инструментов? Что из этого можно безболезненно удалить?

Вопрос возник, т.к. мне хочется очистить архив от трех дней, когда импорт осуществлялся урывками, т.е. данные не будут представлять интереса при экспорте. Попробовал в меню "Дополнительно" -> "Очистить данные". Выбрал период, выбрал Все инструменты, выполнилось без ошибок. Но потом пробую экспортировать, а те дни что я выбрал для очистки содержат данные. Удалять в ручную в папке каждого инструмента не рискнул, т.к. боюсь как-то нарушить работу базы.
Thanks:

SoWar2

Avatar
Date: 9/10/2014
Reply


Нет, не работает надежно:
Quote:
22:47:22.423| |SmartCOM |Инициализируется.
22:47:22.428| |SmartCOM |Перешел в состояние Starting.
00:00:00.000| |SmartTrader|Connect
22:47:25.192| |SmartTrader|StartExport
22:47:25.197| |SmartTrader|Создан новый портфель BP1111111-RF-01.
22:47:25.222| |SmartCOM |Перешел в состояние Started.
22:47:25.222|Error |SmartTrader|System.InvalidOperationException: SmartCOM не поддерживает одновременный поиск инструментов по нескольким запросам.
22:47:25.223|Error |SmartCOM |System.InvalidOperationException: SmartCOM не поддерживает одновременный поиск инструментов по нескольким запросам.
22:47:25.454|Error |SmartCOM |System.InvalidOperationException: SmartCOM не поддерживает одновременный поиск инструментов по нескольким запросам.
в StockSharp.Hydra.Core.MarketDataConnector`1.ThrowIfError()
в StockSharp.Hydra.Core.MarketDataConnector`1.GetTrades()
в StockSharp.Hydra.Core.ConnectorHydraTask`1.SaveValues[T](Func`1 getNewValues, Action`2 saveValues)
в StockSharp.Hydra.Core.ConnectorHydraTask`1.ProcessNewData()
в StockSharp.Hydra.Core.ConnectorHydraTask`1.OnProcess()
в StockSharp.Hydra.Core.BaseHydraTask.<Start>b__0()
22:49:48.945| |SmartCOM |Перешел в состояние Stopping.
22:49:48.961| |SmartCOM |Перешел в состояние Stopped.


Нажимаю Старт - ошибка такая же. Перезапускаю - вроде работает.

Т.е. задача отложенного старта задачи так и не решена. Надо лично присутствовать при запуске задачи, чтобы быть уверенным, что все заработало.
Thanks:

Mikhail Sukhov

Avatar
Date: 9/11/2014
Reply


У вас проблема с блокировкой файла БД. Написано русскими словами в лог файле, что вы приложили. Решить ее можете только вы.
Thanks:

SoWar2

Avatar
Date: 9/11/2014
Reply


Михаил Сухов
У вас проблема с блокировкой файла БД. Написано русскими словами в лог файле, что вы приложили. Решить ее можете только вы.

Михаил,
в приложенном мною архиве ошибки с блокировкой случились поздно вечером, когда я пришел домой и обнаружил, что запущенная мною утром гидра ничего не делала весь день из-за утренней ошибки в смарткоме:
Quote:
08:11:37.345| |SmartTrader|Инструмент RIU4@FORTS зарегистрирован на получение рыночных данных для Level1.
08:11:37.870| |SmartCOM |Для RIU4@FORTS загружено 1 MarketDepth.
08:32:06.073|Error |SmartTrader|System.InvalidOperationException: Подключение в состоянии Connected получило неожиданное сообщение типа 'DisconnectMessage'. ---> System.InvalidOperationException: connection closed by server (213.247.232.238:48091)
--- Конец трассировки внутреннего стека исключений ---
08:32:06.074|Error |SmartCOM |System.InvalidOperationException: Подключение в состоянии Connected получило неожиданное сообщение типа 'DisconnectMessage'. ---> System.InvalidOperationException: connection closed by server (213.247.232.238:48091)
--- Конец трассировки внутреннего стека исключений ---
08:32:06.863|Error |SmartCOM |System.InvalidOperationException: Подключение в состоянии Connected получило неожиданное сообщение типа 'DisconnectMessage'. ---> System.InvalidOperationException: connection closed by server (213.247.232.238:48091)
--- Конец трассировки внутреннего стека исключений ---
в StockSharp.Hydra.Core.MarketDataConnector`1.ThrowIfError()
в StockSharp.Hydra.Core.MarketDataConnector`1.GetTrades()
в StockSharp.Hydra.Core.ConnectorHydraTask`1.SaveValues[T](Func`1 getNewValues, Action`2 saveValues)
в StockSharp.Hydra.Core.ConnectorHydraTask`1.ProcessNewData()
в StockSharp.Hydra.Core.ConnectorHydraTask`1.OnProcess()
в StockSharp.Hydra.Core.BaseHydraTask.<Start>b__0()
21:56:01.380| |SmartCOM |Перешел в состояние Stopping.


Я попробовал перезапустить гидру и, видимо, тогда и случилась проблема с блокировкой, которая вызвала череду других ошибок, т.к. пришлось несколько раз принудительно завершать работу гидры. Забудем про вечерние ошибки.

Возможно в утренней ошибке виноват смартком. Вам видней. Но ведь гидру можно заставить переподключиться в этом случае, а не просто замирать в ожидании действий пользователя.

И, повторюсь, эта ошибка случалась регулярно год назад именно из-за запуска задачи задолго до начала торгов. Если запускать ее минут за 15, то ошибки не возникает. Возможно где-то происходит таймаут. Опять же, вам видней.

Я очень заинтересован в решении данной проблемы, т.к. те способы, которыми я не всегда успешно пытаюсь ее решить, вроде AutoIt3, ну очень костыльные и плохо работают. Ошибка воспроизводима. Если надо что-то выложить/посмотреть/включить/сделать - я готов.


Thanks:

Mikhail Sukhov

Avatar
Date: 9/14/2014
Reply


Я не уверен, что понял вас. Вы ошибку с блокировкой устранили или нет?
Thanks:

SoWar2

Avatar
Date: 9/15/2014
Reply


Михаил Сухов
Я не уверен, что понял вас. Вы ошибку с блокировкой устранили или нет?

Да, конечно. Иначе бы гидра не запускалась.
Мне кажется, что ошибка из предыдущего поста не имеет отношения к блокировке.

Thanks:

Mikhail Sukhov

Avatar
Date: 9/16/2014
Reply


SoWar2
Михаил Сухов
Я не уверен, что понял вас. Вы ошибку с блокировкой устранили или нет?

Да, конечно. Иначе бы гидра не запускалась.
Мне кажется, что ошибка из предыдущего поста не имеет отношения к блокировке.



Тогд приведите текст новой ошибки, не связанной с блокировкой, как вы считаете.
Thanks:
1 2  >

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy