Gelöst System.OutOfMemoryException bei products.pull

DonFurio

Aktives Mitglied
14. Juni 2015
10
0
Guten Tag,

seit neuerdings lässt sich kein kompletter Shopabgleich mehr durchführen, weil beim pull bestimmter Artikel eine System.OutOfMemoryException auftritt. Über unser System:

Windows 7 in VMware unter Ubuntu 14.04
24GB verfügbarer RAM und über 100GB freier Festplattenspeicher
Microsoft SQL Server 2014
Wawi Version: 1.1.4.13
JTLConnector: v1.6 (UTF8-Konvertierung aktiv)
PHP Version: PHP Version 5.4.45
Artikelbestand Webshop: ~147.000 Artikel im Shop

Die Fehlermeldung ist nicht immer exakt die selbe aber scheint mit dem Speichern von Attributen zusammenzuhängen. Hier was bisher kam:

Code:
Fehler:
Artikel-Empfangen-Fehler: Bitte beachten Sie, dass zur Fehler-Diagnose ebenfalls die Log-Datei des Servers und das Abgleich-Log der Wawi notwendig sind!
Eine Ausnahme vom Typ "System.OutOfMemoryException" wurde ausgelöst.
Ein Aufrufziel hat einen Ausnahmefehler verursacht.
   bei System.Linq.Enumerable.OfTypeIterator[TResult](IEnumerable source)
   bei System.Linq.Enumerable.OfType[TResult](IEnumerable source)
   bei jtlDatabase.Attributes.VirtualMemberAttribute.TryGetValue(AttributeCollection oAttributeCollection, VirtualMemberAttribute& oAttribute)
   bei jtlDatabase.jtlObjectTable.AddVirtualPropertyMembers()
   bei jtlDatabase.jtlObjectTable..ctor()
   bei jtlDatabase.classes.jtlDBClasses.jtlArtikelattributBase..ctor()
   bei jtlDatabase.classes.jtlDBClasses.jtlArtikelattribut..ctor()
   bei System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)

Code:
Fehler:
Artikel-Empfangen-Fehler: Bitte beachten Sie, dass zur Fehler-Diagnose ebenfalls die Log-Datei des Servers und das Abgleich-Log der Wawi notwendig sind!
Eine Ausnahme vom Typ "System.OutOfMemoryException" wurde ausgelöst.
   bei System.Reflection.CustomAttribute._GetPropertyOrFieldData(RuntimeModule pModule, Byte** ppBlobStart, Byte* pBlobEnd, String& name, Boolean& bIsProperty, RuntimeType& type, Object& value)
   bei System.Reflection.CustomAttribute.GetPropertyOrFieldData(RuntimeModule module, IntPtr& blobStart, IntPtr blobEnd, String& name, Boolean& isProperty, RuntimeType& type, Object& value)
   bei System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeModule decoratedModule, Int32 decoratedMetadataToken, Int32 pcaCount, RuntimeType attributeFilterType, Boolean mustBeInheritable, IList derivedAttributes, Boolean isDecoratedTargetSecurityTransparent)
   bei System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeType type, RuntimeType caType, Boolean inherit)
   bei System.RuntimeType.GetCustomAttributes(Type attributeType, Boolean inherit)
   bei System.Attribute.InternalGetAttributeUsage(Type type)
   bei System.Attribute.CopyToArrayList(List`1 attributeList, Attribute[] attributes, Dictionary`2 types)
   bei System.Attribute.InternalGetCustomAttributes(PropertyInfo element, Type type, Boolean inherit)
   bei System.Attribute.GetCustomAttributes(MemberInfo element, Type type, Boolean inherit)
   bei System.Attribute.GetCustomAttribute(MemberInfo element, Type attributeType, Boolean inherit)
   bei System.Reflection.CustomAttributeExtensions.GetCustomAttribute[T](MemberInfo element)
   bei jtlDatabase.jtlMemberProperty.IHBF1IT47Jy()
   bei jtlDatabase.jtlMemberProperty.get_Attribute()
   bei jtlDatabase.jtlMemberProperty.get_IsObfuscated()
   bei jtlDatabase.jtlObjectRepository.vmnFeyWEOnY(jtlObject , IPropertyInfo , Object )
   bei jtlDatabase.jtlObjectRepository.FillBy(jtlObject item, DataTable dataTable, Int32 rowNumber, MissingPropertiesMode missingPropertiesMode)
   bei jtlDatabase.jtlObjectList`1.appendListFromDB(String sqlQuery, MissingPropertiesMode handleMissingProperties, jtlDBParameter[] oDBParameter_arr)
   bei jtlDatabase.jtlObjectList`1.fillListFromDB(String cSQL, MissingPropertiesMode handleMissingProperties, jtlDBParameter[] oDBParameter_arr)
   bei jtlDatabase.jtlDatabaseTable`1.fill()
   bei jtlDatabase.classes.jtlDBClasses.jtlArtikelattributList.FindAll()
   bei jtlDatabase.classes.ConnectorClasses.SaveClasses.AttributeSaver..ctor()
   bei jtlDatabase.classes.ConnectorClasses.ProductSaver.GoUngWPBDt(IEnumerable`1 attributes, jtlArtikel )
   bei jtlDatabase.classes.ConnectorClasses.ProductSaver.Save(List`1 products, List`1& exceptions)
   bei jtlDatabase.classes.ConnectorClasses.Saver.Save(IEnumerable`1 items, jtlShop shop, List`1& exceptions)
   bei jtlCore.ControllerClasses.Connector.Abgleich.Funktionen.ConnectorPuller.Pull[TEntity](Int64 quantity)

Code:
Fehler:
Artikel-Empfangen-Fehler: Bitte beachten Sie, dass zur Fehler-Diagnose ebenfalls die Log-Datei des Servers und das Abgleich-Log der Wawi notwendig sind!
Eine Ausnahme vom Typ "System.OutOfMemoryException" wurde ausgelöst.
   bei System.Collections.Generic.Dictionary`2.Initialize(Int32 capacity)
   bei System.Collections.Generic.Dictionary`2..ctor(Int32 capacity, IEqualityComparer`1 comparer)
   bei System.Attribute.InternalGetCustomAttributes(PropertyInfo element, Type type, Boolean inherit)
   bei System.Attribute.GetCustomAttributes(MemberInfo element, Type type, Boolean inherit)
   bei System.Attribute.GetCustomAttribute(MemberInfo element, Type attributeType, Boolean inherit)
   bei System.Reflection.CustomAttributeExtensions.GetCustomAttribute[T](MemberInfo element)
   bei jtlDatabase.jtlMemberProperty.rVhcxxEcDEc()
   bei jtlDatabase.jtlMemberProperty.get_Attribute()
   bei jtlDatabase.jtlMemberProperty.get_IsObfuscated()
   bei jtlDatabase.jtlObjectRepository.TFqc2UgpHVj(jtlObject , IPropertyInfo , Object )
   bei jtlDatabase.jtlObjectRepository.FillBy(jtlObject item, DataTable dataTable, Int32 rowNumber, MissingPropertiesMode missingPropertiesMode)
   bei jtlDatabase.jtlObjectList`1.appendListFromDB(String sqlQuery, MissingPropertiesMode handleMissingProperties, jtlDBParameter[] oDBParameter_arr)
   bei jtlDatabase.jtlObjectList`1.fillListFromDB(String cSQL, MissingPropertiesMode handleMissingProperties, jtlDBParameter[] oDBParameter_arr)
   bei jtlDatabase.jtlDatabaseTable`1.fill()
   bei jtlDatabase.classes.jtlDBClasses.jtlArtikelattributList.FindAll()
   bei jtlDatabase.classes.ConnectorClasses.SaveClasses.AttributeSaver..ctor()
   bei jtlDatabase.classes.ConnectorClasses.ProductSaver.D2BAfojeoQ(IEnumerable`1 attributes, jtlArtikel )
   bei jtlDatabase.classes.ConnectorClasses.ProductSaver.Save(List`1 products, List`1& exceptions)
   bei jtlDatabase.classes.ConnectorClasses.Saver.Save(IEnumerable`1 items, jtlShop shop, List`1& exceptions)
   bei jtlCore.ControllerClasses.Connector.Abgleich.Funktionen.ConnectorPuller.Pull[TEntity](Int64 quantity)

+ weitere wegen dem Zeichenlimit in der exception.txt

Auffällig ist bisher, dass die Fehlermeldung immer dann auftritt, wenn ein bisher nicht verbundener Artikel aus dem Shop geladen wird, der bereits in Wawi vorhanden ist. Es kommt also auch immer:

Code:
Warnungen:
Artikelnummer '8699077NK' ist bereits vorhanden. Der Wawi-Artikel wird aktualisiert.

Außerdem tritt der Fehler immer nur bei einzelnen Artikeln auf. Sobald man diese aus dem Shop entfernt, läuft der Connector wieder eine Weile bis der Fehler bei irgendeinem Artikel erneut auftritt.

Im Anhang z.B. die Connector Antwort beim letzten Problemartikel.

Was wir bisher probiert haben:
  • Funktionen Datenbank bereinigen, reparieren und Performanceoptimierung in Wawi.
  • Beim Microsoft SQL Server den Maximalen Serverarbeitsspeicher verringert und "Lock pages in memory" aktiviert.
  • Weitere SQL Server Diagnose bei der wir aber nur feststellen konnten, dass einige ebay Artikel queries der Wawi eine recht starke Auslastung erzeugen.
  • Die Paketgrößen Einstellungen in der Connector Konfiguration auf 1 begrenzt und die Bilder auf 10MB/Paket
  • Überprüfen von Einstellungen für vmware
  • Fehlerüberprüfung bei arbeitsspeicher und festplatten

Was können wir noch versuchen? Woran könnte der Fehler liegen? Ich bin langsam mit meinem Latein am Ende.

Vielen Dank.
 

Anhänge

  • result.txt
    10,8 KB · Aufrufe: 3
  • exception.txt
    7,1 KB · Aufrufe: 2

DonFurio

Aktives Mitglied
14. Juni 2015
10
0
Hallo zusammen.

Das Problem sind anscheinend die Artikelattribute. Bei unserem Artikeln sind standardmäßig 4 Attribute gesetzt gewesen FSK 18, Aktiv, Optionen Vorlage und Produkt Vorlage. Dabei wurden meistens sowohl die Attribute global als auch shopspezifisch gesetzt. Bei weiteren 60000 eBay Artikeln kamen wir dann insgesamt auf ca. 1,35 Mio Attribute. Den Fehlern nach zu urteilen werden diese Attribute alle intern in einer Liste gesammelt, wodurch Wawi dann die 2GB Begrenzung für diese erreicht und es zum System.OutOfMemory kommt.
Wir haben jetzt die Attribute für die Vorlagen entfernt aber eine endgültige Lösung scheint dies für mich nicht darzustellen?

Beste Grüße
 

daniel.jtl

Moderator
12. März 2014
1.277
28
Abgesehen davon dass eine Paketgröße von 1 absolut nicht zielführend ist (dadurch nämlich dann logischerweise für jeden einzelnen Datensatz eine separate Server-Anfrage), kann es dann aber nicht sein dass hier zu viele Attribute gesendet werden.
Die Attribute hängen ausschließlich am Artikel, so dass in dem Fall auch nur die übertragen werden, die aktuell diesem Artikel zugeordnet sind.
"Globale" Attribute gibt es beim Connector nicht.
Wenn hier pro Artikel also mehr als die 4 genannten Attribute kommen, sollte man zunächst mal die Shop-Tabellen auf Fehler und/oder Duplikate prüfen.
 
Ähnliche Themen
Titel Forum Antworten Datum
Versand Internetmarke funktioniert nicht (Could not load file or assembly 'System.Net.WebProxy, ...) JTL-Wawi 2.0 2
Neu Import von Rechnungen oder Lieferungen aus anderem System Starten mit JTL: Projektabwicklung & Migration 0
Ebay angebote lassen sich nicht mehr bei JTL bearbeiten JTL-Wawi 2.0 0
Ameise-Export: Umsatzsteuer stimmt nicht mit Differenz aus Netto und Brutto überein (insbesondere bei mehreren Steuersätzen) JTL-Wawi 1.11 0
Fehler bei Bearbeitung von Attributen via HTML-Editor JTL-Wawi 2.0 3
Neu product_visibility bei JTL-Wawi und Shopware 6 Shopware-Connector 1
Neu Wie aktiviere ich den richtigen EK bei freiem Wareneingang? Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Workflow Trigger bei Angebot-Import über Ameise JTL-Wawi 1.9 0
Absturz bei Hinzufügen von Artikelbildern JTL-Wawi 2.0 3
Neu Falsche Zahlungsart bei Gutscheinzahlungen im DSFinV-K-Export JTL-POS - Fehler und Bugs 0
Update auf 2.0.1 Fehler bei eazybusiness JTL-Wawi 2.0 17
Update auf 2.0.1.0 bricht ab bei 1.12.0.0. JTL-Wawi 2.0 6
Probleme bei der Verbindung zur Datenbank JTL-Wawi 2.0 12
Neu JTL Shipping Fehler bei DHL Versand über WMS ? User helfen Usern - Fragen zu JTL-Wawi 2
Artikelnamen bei Varioartikel nichtänderbar mit csv JTL-Wawi 1.10 0
Neu 5.6.1 Bug bei Versandarten mit Kalkulation durch Artikelmenge und Staffelpreisen JTL-Shop - Fehler und Bugs 2
Neu Seit Update auf JTL-WaWi 2.0.0.0 keine Abholung der Kundendaten bei MediaSaturn-Bestellungen JTL-Wawi - Fehler und Bugs 7
Neu Hilfe bei der Entwicklung gesucht: Werde Tester für meine JTL-Shop Plugins Plugins für JTL-Shop 0
Neu Google Shopping: identifier_exists bei fehlender GTIN Allgemeine Fragen zu JTL-Shop 3
Neu Workflow automatisch bei Warenausgang für Bestand und Puffer JTL-Wawi - Ideen, Lob und Kritik 12
Neu Anzeigen der Zahlungsart, die bei der Zahlung gesetzt wird Eigene Übersichten in der JTL-Wawi 10
Versandkosten bei gemischten Steuersätzen JTL-Wawi 2.0 6
Gelöst Bekannte Störung: Fehler "Der Inhaltstyp text/html stimmt nicht mit text/xml überein" bei der Labelerstellung Gelöste Themen in diesem Bereich 1
Neu Synchronisation funktioniert nur bei manchen Produkten Shopify-Connector 7
Neu Problem bei Varianten-Upload mit Amazon Lister 2.0 (Attribut-Mapping Farbe/Größe) Onlineshop-Anbindung 1
Neu Reihenfolge der Länder (bei der Versandkostenberechnung) Betrieb / Pflege von JTL-Shop 2
Neu Workflow Ereignis "Position hinzufügen" bei Angebote User helfen Usern - Fragen zu JTL-Wawi 0
Neu Kundenrabatte bei Auftragsimport JTL-Ameise - Fehler und Bugs 0
Neu Rückverfolgung des Verkaufskanal bei Angeboten aus dem Shop User helfen Usern - Fragen zu JTL-Wawi 3
Neu Rückverfolgung des Verkaufskanal bei Angeboten aus dem Shop Eigene Übersichten in der JTL-Wawi 0
Neu welche Sync Benutzer Daten in Shop und WAWI bei neu-Hosting über JTL Allgemeine Fragen zu JTL-Shop 0
welche Sync Benutzer Daten in Shop und WAWI bei neu-Hosting über JTL JTL-Wawi 1.11 0
Neu Gelangensbestätigungen bei innergemeinschaftlichen Lieferungen? User helfen Usern - Fragen zu JTL-Wawi 1
Neu SaaS Connector – product.push Performance-Problem bei Shopware 6.6 Shopware-Connector 3
Neu Ständig neue Angebote von JTL und Fallen bei Unaufmerksamkeit Smalltalk 26
Export Zahlungen Amazon marketplace bei Kombi OSS und FBA erfolgt nach JTL2DATEV unvollständig JTL-Wawi 1.9 0
Neu Massive 504 Timeouts bei Bot-Crawl (JTL-Hosting) – PHP-Worker-Pool als Flaschenhals? JTL-Shop - Fehler und Bugs 2
Neu Hinweisfeld bei Versandarten: HTML Code möglich? Betrieb / Pflege von JTL-Shop 7
Neu Hinweis bei B2B-IGL User helfen Usern - Fragen zu JTL-Wawi 5
Aktualisierung Artikelbilder bei Kaufland nicht möglich? kaufland.de - Anbindung (SCX) 0
Neu Fehlermeldung bei Farbänderung im Nova oder Nova Child Theme Templates für JTL-Shop 2
Skonto bei Barzahlung wird angezeigt, aber nicht vom Rechnungsbetrag abgezogen JTL-Wawi 1.9 11
Neu Fehler bei Artikel Filter in der Wawi JTL-Wawi - Fehler und Bugs 2
Neu Bei Gutschein einlösen kein Rückgeld möglich Allgemeine Fragen zu JTL-POS 0
Neu SPAM durch die Eingabeseite bei den Kundendaten JTL-Shop - Fehler und Bugs 67

Ähnliche Themen