Версия 4.2.3.6, коннектор для p2fortsgate - реал. 1)Не работает уровень логирования - флудит даже не уровне Warning: ... 21:40:56.266| |Plaza |Для GD1860BR4@FORTS загружено 4 SecurityChange. 21:40:56.267| |Plaza |Для GD1870BF4@FORTS загружено 2 SecurityChange. 21:40:56.268| |Plaza |Для GD1870BR4@FORTS загружено 4 SecurityChange. 21:40:56.268| |Plaza |Для GD1880BF4@FORTS загружено 2 SecurityChange. ... 2)Крашится программа, логи Exceptions log 3)Перестал работать выбор поток/таблиц - при открытии все галки сняты и показывает 11 таблиц по умолчанию.
ps не баг - на виртуальной машине с одним ядром крашится - system out of memory exception, не успевает обрабатывать данные.
Kommentare (15)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
Вот такая ошибка появляется очень часто, 1000+ за час: 11:10:20.494|Error |Plaza |System.ArgumentOutOfRangeException: Version's parameters must be greater than or equal to zero. Parameter name: major at System.Version..ctor(Int32 major, Int32 minor) at StockSharp.Algo.Storages.LocalMarketDataDrive.#=qHbNCOTbQ2RTZ4HhU5oUWoEi$DAYrVn52gb79hjV8rks=.#=qhBkufFajeEgaj1pw_ZS4XA==() at StockSharp.Algo.Storages.LocalMarketDataDrive.#=qHbNCOTbQ2RTZ4HhU5oUWoEi$DAYrVn52gb79hjV8rks=.#=qGnPWZcmJEpY$pMgFtvAw4w==() at System.Lazy
1.CreateValue() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Lazy1.get_Value() at StockSharp.Algo.Storages.LocalMarketDataDrive.#=qHbNCOTbQ2RTZ4HhU5oUWoEi$DAYrVn52gb79hjV8rks=.#=q4uMGdkK8rfY48KUCULzOnA==(DateTime #=qyaKHET4Zws1azsAyMPaltQ==, Action1 #=qFhmu$iT353ymGDWwOYEbpQ==) at StockSharp.Algo.Storages.LocalMarketDataDrive.#=qHbNCOTbQ2RTZ4HhU5oUWoEi$DAYrVn52gb79hjV8rks=.#=qIyXQt2__bXaP80pgT8q$ZNcFx$fuz2fpU_ou3zCT56S6lwRLylSANtegmuXaKvWj4AdBgHbysXDdrl6fsto83w==(DateTime #=qzhkIffYHu2swtVZY0qiNSw==, Byte[] #=qjmAFRdlKh36D_vOW4nR0Ng==) at #=q0AcKdzxrcEaczuTXtGV_7$0Q6kf_e0W2PpHTduqYbS9vh8UyWubXVz6HgfAQulTU.#=qqZ3UkQ6HiDE5kxQxlHqWCg==(DateTime #=qUFhMpfWGZ8NaUx0HVCSXuA==, #=qLf3ak3vMf7hRt1x61V08CA==[] #=qeNRuCwPbA1MZUv6t_RCB1A==, Boolean #=qmogCwIE923b6$wKVqg5YHw==) at #=q0AcKdzxrcEaczuTXtGV_7$0Q6kf_e0W2PpHTduqYbS9vh8UyWubXVz6HgfAQulTU.Save(IEnumerable1 #=queVl0xhSjWu8TzibGSPRqg==) at StockSharp.Hydra.Core.BaseHydraTask.SafeSave(Security security, IEnumerable1 values, Func2 getTime, IEnumerable1 errorChecks, Func3 getStorage)http://stocksharp.com/forum/4472/Oshibki-v-v-Gidrie-2-2-2-27/
На самом деле вопрос все еще актуальный. Базу я удалять не стал, но как и было рекомендовано в ветке удалил все файлы с датами - это не помогло
База была чистая, апдейтов небыло, в моем случае очень вероятно что связано с крашами всей гидры. Еще один баг на 32 битной версии, в тот момент окно интерфейса было свернуто:
15:59:33.429|Error |Unhandled Exception|System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown. at MS.Internal.WindowsBase.SafeSecurityHelper.CleanupCollectedAssemblies(Object state) at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() at System.Threading.ThreadPoolWorkQueue.Dispatch() at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
15:59:01.476|Error |S#.Data |System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown. at System.Collections.ArrayList..ctor(Int32 capacity) at System.Windows.Data.ListCollectionView.PrepareLocalArray() at System.Windows.Data.ListCollectionView.RefreshOverride() at System.Windows.Data.CollectionView.RefreshInternal() at System.Windows.Data.CollectionView.RefreshOrDefer() at System.Windows.Data.ListCollectionView.ProcessCollectionChanged(NotifyCollectionChangedEventArgs args) at System.Windows.Data.CollectionView.OnCollectionChanged(Object sender, NotifyCollectionChangedEventArgs args) at System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke(Object sender, NotifyCollectionChangedEventArgs e) at System.Collections.ObjectModel.ObservableCollection
1.OnCollectionChanged(NotifyCollectionChangedEventArgs e) at Ecng.Xaml.ThreadSafeObservableCollection1.OnAddRange(IEnumerable1 items) at StockSharp.Xaml.LogMessageCollection.OnAddRange(IEnumerable1 items) at Ecng.Xaml.ThreadSafeObservableCollection1.AddRange(IEnumerable1 items) at StockSharp.Xaml.Monitor.WriteMessages(ILogSource source, IEnumerable1 messages) at StockSharp.Xaml.Monitor.<WriteMessages>b__1(IGrouping2 g) at MoreLinq.MoreEnumerable.ForEach(IEnumerable1 source, Action1 action) at StockSharp.Xaml.Monitor.WriteMessages(IEnumerable`1 messages) at StockSharp.Xaml.GuiLogListener.<>c__DisplayClass1.<OnWriteMessages>b__0() at Ecng.Xaml.GuiDispatcher.ActionInfo.Process() at Ecng.Xaml.GuiDispatcher.OnTimerTick(Object sender, EventArgs e) at System.Windows.Threading.DispatcherTimer.FireTick(Object unused) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler) 15:59:33.237|Error |S#.Data |System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown. at MS.Internal.WindowsBase.SafeSecurityHelper.CleanupCollectedAssemblies(Object state) at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() at System.Threading.ThreadPoolWorkQueue.Dispatch() at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()Возможно. Сейчас глянул код. Там запись синхронизована, кроме обновления файла с датами. В след версии будет синхронизация. Возможно, она поможет. А сейчас надо удалить файлы с неправильными датами.
В 32 битном процессе для .NET выделяется чуть меньше 1.5 гига памяти. Проще смигрировать на 64 бита.
А не подскажите как можно найти(или определить) файлы с неправильными датами? При миграции на x64 требуются какие-нибудь действия со стороны гидры?
Добавлю про краши - вылетает после события дисконекта от сервера плазы. Локальный шлюз подхватывается, а вот коннектор нет и крашит программу.
По поводу логов, в коннекторе[Plaza2com] стоит Off - но в журнал идет все с уровня trace. За день набегает несколько гигабайт и всё висит в памяти. Как отключить?
По настройкам самой плазы и ее логам к МБ
Сделайте дамп через профайлер. Например dotmemory
Как видно из dump - LogMessage там занимает очень скромный объем памяти.
Да вроде нет, если судить по дампу.