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

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


Добрый день. Не могу запустить Гидру (последняя актуальная версия в вин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(UncommonField1 dataField, ItemStructList1& valueLookupList, DependencyProperty dp, DependencyObject container, FrameworkObject child, Int32 childIndex, Boolean styleLookup, EffectiveValueEntry& entry, ValueLookupType& sourceType, FrameworkElementFactory templateRoot) в System.Windows.StyleHelper.GetChildValue(UncommonField1 dataField, DependencyObject container, Int32 childIndex, FrameworkObject child, DependencyProperty dp, FrugalStructList1& 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, FrugalStructList1& 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.DescendentsWalker1.StartWalk(DependencyObject startNode, Boolean skipStartNode) в MS.Internal.PrePostDescendentsWalker1.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(List1 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.MarketDataConnector1.ThrowIfError() в StockSharp.Hydra.Core.MarketDataConnector1.GetTrades() в StockSharp.Hydra.Core.ConnectorHydraTask1.SaveValues(Func1 getNewValues, Action2 saveValues) в StockSharp.Hydra.Core.ConnectorHydraTask1.ProcessNewData() в StockSharp.Hydra.Core.ConnectorHydraTask`1.OnProcess() в StockSharp.Hydra.Core.BaseHydraTask.<Start>b__0()

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

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

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

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


Tags:


Thanks:


< 1 2 
SoWar2

Avatar
Date: 9/19/2014
Reply


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

2014_09_19.rar 377 KB (385)
Thanks:

Mikhail Sukhov

Avatar
Date: 9/20/2014
Reply


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

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

Thanks:

SoWar2

Avatar
Date: 9/20/2014
Reply


Михаил Сухов:

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

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

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

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

Thanks:

Mikhail Sukhov

Avatar
Date: 9/20/2014
Reply


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

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

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

Thanks:

SoWar2

Avatar
Date: 9/22/2014
Reply


Михаил Сухов:

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

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

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

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

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

Thanks:

Mikhail Sukhov

Avatar
Date: 9/22/2014
Reply


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

Thanks:

SoWar2

Avatar
Date: 9/29/2014
Reply


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

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

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

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

Thanks: Mikhail Sukhov
< 1 2 

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

loading
clippy