Skocz do zawartości

[Sfera] Wyjątek OutOfMemoryException po wielokrotnym utworzeniu dokumentu ZPM

Polecane posty

Dzień dobry,

po wielokrotnym utworzeniu dokumentu ZPM za pomocą sfery rzucany jest wyjątek System.OutOfMemoryException. Dzieje się tak po utworzeniu 70/80 dokumentów.
Po kilku takich próbach utworzenia dokumentu ZPM (czasami nawet po jednym razie), nasza aplikacja zacina się, a potem wyłącza.

Zauważalny jest też przy samym tworzeniu dokumentu wzrost zużycia pamięci.

Nie ma tutaj też znaczenia, czy dokumenty były tworzone np. w przeciągu 1 bądź 2 dni, lub czy były tworzone w tym samym momencie jeden po drugim.

 

Jedyne co tutaj pomaga, to tylko restart aplikacji, lecz nie jest to rozwiązaniem.


Tak wygląda stacktrace dla tego wyjątku. Dodatkowo sam stacktrace potrafi różnie wyglądać.

Exception of type 'System.OutOfMemoryException' was thrown.
   at System.Collections.Generic.List`1.set_Capacity(Int32 value)
      at System.Collections.Generic.List`1.EnsureCapacity(Int32 min)
      at System.Collections.Generic.List`1.Add(T item)
      at VMRuntime.Libraries.CSVMRuntime.6zU=(Assembly asm, String id, Object[] args)
      at VMRuntime.Libraries.CSVMRuntime.RunMethod(String id, Object[] args)
      at InsERT.Mox.Security.LicenceController.FBQ=(ProductId productId, IEnumerable`1 minProductLevels)
      at InsERT.Mox.Security.LicenceController.CheckProductLevel(ProductId productId, IEnumerable`1 minProductLevels)
      at lTU=.mDY=.ozY=(Object& instance, Object[] methodArgs, Boolean isNullNullable, MethodBase methodBase, Boolean isVirtualCall)
      at lTU=.TDk=.UDk=(YDY= )
      at lTU=.lDU=.mDU=(YDY= ctx)
      at lTU=.lDU=.mDU=(YDY= ctx)
      at VMRuntime.Libraries.CSVMRuntime.7DU=(KTY= vmMethod, YDY= ctx)
      at VMRuntime.Libraries.CSVMRuntime.6zU=(Assembly asm, String id, Object[] args)
      at VMRuntime.Libraries.CSVMRuntime.RunMethod(String id, Object[] args)
      at InsERT.Mox.Security.LicenceController.FBQ=(IProductContext productContext, IEnumerable`1 minProductLevels)
      at InsERT.Mox.Security.LicenceController.CheckProductLevel(IProductContext productContext, IEnumerable`1 minProductLevels)
      at lTU=.mDY=.ozY=(Object& instance, Object[] methodArgs, Boolean isNullNullable, MethodBase methodBase, Boolean isVirtualCall)
      at lTU=.kzk=.ljk=(YDY= )
      at lTU=.lDU=.mDU=(YDY= ctx)
      at lTU=.lDU=.mDU=(YDY= ctx)
      at VMRuntime.Libraries.CSVMRuntime.7DU=(KTY= vmMethod, YDY= ctx)
      at VMRuntime.Libraries.CSVMRuntime.6zU=(Assembly asm, String id, Object[] args)
      at VMRuntime.Libraries.CSVMRuntime.RunMethod(String id, Object[] args)
      at InsERT.Mox.Security.LicenceController.CheckProductLevel(IProductContext productContext, Tuple`2[] minProductLevels)
      at InsERT.Moria.Narzedzia.Licencje.LicenceControllerProxy.CheckProductLevel(IProductContext productContext, Tuple`2[] minProductLevels)
      at InsERT.Moria.Narzedzia.ProductAffinity.ProductAffinityManager.Check(Tuple`2[] minProductLevels)
      at InsERT.Moria.Narzedzia.ProductAffinity.ProductAffinityManager.Check(ProductLevelId minProductLevel)
      at InsERT.Moria.SladRewizyjny.SladRewizyjny.<>c__DisplayClass112_0.<.ctor>b__17()
      at System.Lazy`1.CreateValue()
      at System.Lazy`1.LazyInitValue()
      at System.Lazy`1.get_Value()
      at InsERT.Moria.SladRewizyjny.SladRewizyjny.JestWylaczony(String identyfikatorTypuObiektu)
      at InsERT.Moria.SladRewizyjny.SladRewizyjny.Zaladowano(UnitOfWork unitOfWork, IBusinessObject businessObject)
      at InsERT.Moria.SladRewizyjny.ZaladowanieObiektuAdvice.Execute(IJoinpoint joinpoint)
      at InsERT.Mox.Aop.RuntimeWeavedJoinpoint.Proceed()
      at InsERT.Mox.Aop.Weaver.RuntimeWeave(RuntimeWeavedJoinpoint joinpoint, Action coreOperation)
      at InsERT.Mox.BusinessObjects.BusinessObject`3.DoInitialize()
      at InsERT.Mox.BusinessObjects.BusinessObject`3.InitializePossiblyDeferred(Boolean considerAddingMode)
      at InsERT.Mox.BusinessObjects.BusinessObject`3.Load(TId id)
      at InsERT.Moria.EgzekutorMagazynowy.Egzekutor.<>c__DisplayClass38_0.<AnulujDyspozycje>b__2(Rozchod dyspozycja)
      at InsERT.Moria.Narzedzia.Prywatne.ObjectQueryHelper.<>c__DisplayClass5_0`2.<PageObjectQuery>b__0(ObjectQuery`1 pq)
      at InsERT.Moria.Narzedzia.Prywatne.ObjectQueryHelper.PageObjectQueryPrivate[T,TId](ObjectQuery`1 source, IEnumerable`1 ids, Action`1 action, Int32 pageSize, String idPropertyName, String parameterNamePrefix)
      at InsERT.Moria.Narzedzia.Prywatne.ObjectQueryHelper.PageObjectQuery[T,TId](ObjectQuery`1 source, IEnumerable`1 ids, Action`1 action, Int32 pageSize, String idPropertyName, String parameterNamePrefix)
      at InsERT.Moria.EgzekutorMagazynowy.Egzekutor.AnulujDyspozycje(IEnumerable`1 dyspozycje)
      at InsERT.Moria.EgzekutorMagazynowy.WydanieBO.ZwolnijDyspozycje()
      at InsERT.Moria.EgzekutorMagazynowy.WydanieBO.Dispose(Boolean disposing)
      at InsERT.Mox.BusinessObjects.BusinessObject`3.Dispose()
      at InsERT.Mox.Runtime.Unity.DisposingLifetimeManager.Dispose()
      at Microsoft.Practices.ObjectBuilder2.LifetimeContainer.Dispose(Boolean disposing)
      at Microsoft.Practices.Unity.UnityContainer.Dispose(Boolean disposing)
      at Microsoft.Practices.Unity.UnityContainer.Dispose()
      at InsERT.Mox.Runtime.Unity.UnityAdapter.Dispose()
      at InsERT.Mox.Work.UnitOfWork.Dispose()
      at InsERT.Mox.BusinessObjects.BusinessObject`3.Dispose(Boolean disposing)
      at InsERT.Moria.Dokumenty.Logistyka.ZlecenieProdukcyjneMontowaniaBO.Dispose(Boolean disposing)
      at InsERT.Mox.BusinessObjects.BusinessObject`3.Dispose()

 

Link to postu

Czy jest to aplikacja konsolowa czy WPF? Jednowątkowa czy wielowątkowa? Czy uchwyt do sfery tworzony jest przy dodawaniu każdego dokumentu (i czy w takim przypadku na starym uchwycie wykonywany jest Dispose), czy tylko przy uruchamianiu aplikacji? Czy rozwiązanie służy jedynie do wystawiania dokumentów ZPM czy robi jeszcze jakieś inne rzeczy?

Link to postu
×
×
  • Dodaj nową pozycję...