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


Добрый день.
Не могу запустить Гидру (последняя актуальная версия в вин7 32). Зависает на попытке загрузить инструменты.
Содержание лога:
Цитата:
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 за несколько часов до начала торгов, т.к. ухожу на работу гораздо раньше. Запускаю Гидру. Нажимаю Старт. Спустя где-то полчаса после этого смартком видимо сбрасывает соединение и импорт не происходит.
Фрагмент лога файла смартком:
Цитата:
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. Можно ли бэкапить настройки Гидры и источников, чтобы как-то минимизировать потери при разного рода ошибках?
Например, при сбросе настроек приходится заново настраивать все инструменты.

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

Теги:


Спасибо:


< 1 2 
SoWar2

Фотография
Дата: 19.09.2014
Ответить


Михаил,
файл вложил. Впервые такое, но опять дисконнект от смарткома. В данном случае в процессе работы, а не в ожидании начала сессии.
2014_09_19.rar 377 KB (142)
Спасибо:

Mikhail Sukhov

Фотография
Дата: 20.09.2014
Ответить


SoWar2 Перейти
Михаил,
файл вложил. Впервые такое, но опять дисконнект от смарткома. В данном случае в процессе работы, а не в ожидании начала сессии.


А что смотреть в логах? Какую строчку?
Спасибо:

SoWar2

Фотография
Дата: 20.09.2014
Ответить


Михаил Сухов Перейти
SoWar2 Перейти
Михаил,
файл вложил. Впервые такое, но опять дисконнект от смарткома. В данном случае в процессе работы, а не в ожидании начала сессии.


А что смотреть в логах? Какую строчку?


76309 в логе смарткома. Это самый конец файла. Специально привел полный лог, чтобы не было таких недоразумений как с прошлым логом: блокировка файла была вечером, а проблемы начались утром.

Михаил, хочется очень простой вещи, которую вы несомненно подразумевали, когда писали эту ценную программу: она должна загрузить данные о торгах.
По факту лично у меня этого сделать не получается. Идут постоянные "неожиданные сообщения о разъединении". После этого импорт данных останавливается и не возобновляется. Т.е. после остановки в 11:44:15.256 и до моего прихода с работы и остановки "импорта" в 20:59:45.086 никакой информации не собиралось.
Я не программирую на сишарпе и его exceptions мне ни о чем не говорят, но мне кажется, что попытка совершить реконнект быть должна. Возможно это не отражается в логах и она/они все были неудачными. Вам видней, как я уже неоднократно говорил. Но хотелось бы знать что с этим делать.
Спасибо:

Mikhail Sukhov

Фотография
Дата: 20.09.2014
Ответить


SoWar2 Перейти

Идут постоянные "неожиданные сообщения о разъединении".


Если у вас ошибка с разрывом соединения, а не с блокировкой БД, то это вам нужно смотреть логи смарткома. Именно смарткома, а не гидры. И решать ситуацию, почему идет разрыв подключения.

Сообщение в логе о неожиданном разрыве идет из-за того, что смартком разорвал подключение. Можно конечно не писать это сообщение, если оно вас смущает, но реально ситуация не изменится - между вашим компьютером и сервером брокера было утрачено соединение.
Спасибо:

SoWar2

Фотография
Дата: 22.09.2014
Ответить


Михаил Сухов Перейти
SoWar2 Перейти

Идут постоянные "неожиданные сообщения о разъединении".


Если у вас ошибка с разрывом соединения, а не с блокировкой БД, то это вам нужно смотреть логи смарткома. Именно смарткома, а не гидры. И решать ситуацию, почему идет разрыв подключения.

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


Михаил, не подскажете где можно логи смарткома посмотреть? Не нашел к сожалению.

А сама гидра не может реконнектится при такой ошибке? Первое соединение она же как-то устанавливает.
Спасибо:

Mikhail Sukhov

Фотография
Дата: 22.09.2014
Ответить


Логи, причины разрывов и т.д. - это все к создателям - АйТи Инвест.
Спасибо:

SoWar2

Фотография
Дата: 29.09.2014
Ответить


Михаил Сухов Перейти
Логи, причины разрывов и т.д. - это все к создателям - АйТи Инвест.


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

Я пообщался с поддержкой смарткома. Разрыв соединения действительно имеет место с их стороны, но вызвано это неизбежным техническим моментом. До начала торгов инициализируется система торгов и разрывает все установленные до этого момента соединения. Наверняка такое может случаться при произвольных сбоях на серверах. Получается, что это проблема и не смарткома тоже, а часть несовершенного мира.

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

Спасибо: Mikhail Sukhov
< 1 2 

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy