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
Neu Überverkäufe vom System deaktiviert? User helfen Usern - Fragen zu JTL-Wawi 12
Neu JTL-Wawi mit Claude, ChatGPT, Openclaw/Hermes oder CRM System verbinden User helfen Usern 8
Neu Wawi 2.0.6 Fehler bei Druckerzuordnung und Nachdruck JTL-ShippingLabels - Fehler und Bugs 4
Neu Login-Fehler 403 bei app.shipping.jtl-cloud.com seit 17.07.2026 JTL-ShippingLabels - Fehler und Bugs 7
Neu Checkbox im Bestellvorgang bei Gebrauchtartikeln Allgemeine Fragen zu JTL-Shop 2
Neu ++ Menge bei laufenden Ebay Angeboten Arbeitsabläufe in JTL-Wawi 1
Neu Seit heute Morgen werden bei Amazon keine Rechnungen mehr hochgeladen Amazon-Anbindung - Fehler und Bugs 12
Neu Canonical-Tag bei Merkmalwert-URLs mit Parameter "m" Betrieb / Pflege von JTL-Shop 11
Neu Kind-Artikel nicht bei Ebay anbieten Allgemeine Fragen zu JTL-Shop 1
Neu Wie ändere ich das vorausgewählte Lager bei Bestellungen? User helfen Usern - Fragen zu JTL-Wawi 2
Neu Fehlender Rabattabzug bei Amazon Multirabatten Amazon-Anbindung - Fehler und Bugs 0
In Diskussion Workflow bei fehlerhaften Bankabgleich JTL-Workflows - Ideen, Lob und Kritik 4
Gelöst: Störung bei LInk11 - JTL- Shops teilweise nicht erreichbar Störungsmeldungen 1
Neu JTL Wawi 1.11.11 - Zahlungsabgleich bei FYRST Bank verlangt immer Passwort User helfen Usern - Fragen zu JTL-Wawi 0
Kundengruppenrabatte werden bei einzelnen Artikeln nicht übernommen – „Rabatte ignorieren“ springt nach Speichern zurück JTL-Wawi 2.0 2
Neu [API] Zahlungen bei salesOrders verbuchen Schnittstellen Import / Export 0
Neu Unerwünschtes Scrollen/Springen zum Seitenanfang bei Footer-Menüs (Mobile) JTL-Shop - Fehler und Bugs 5
Frage stellen bei Bestellung JTL-Wawi 1.11 1
Bei Update auf 2.05 kam folgende Meldung JTL-Wawi 2.0 2
Neu Fehleretikett bei OTTO Bestellungen bzgl. Adresszusatz JTL-ShippingLabels - Fehler und Bugs 2
Skonto wird bei Zahlung setzen nicht berücksichtigt JTL-Wawi 1.11 2
Wawi 1.11.9 Ständige Abstürze bei Aktualisierung Artikelstammdaten JTL-Wawi 1.11 5
Neu Helfen Lösungen wie Unicorn wirklich, um die teuren Preise bei JTL zu vermeiden? Amazon-Anbindung - Ideen, Lob und Kritik 1
Neu Erstellung der Sitemap bei WaWi Abgleich funktioniert nicht Allgemeine Fragen zu JTL-Shop 0
Neu Bug? Führende Nullen bei Sendungsnummern verschwinden in JTL-Wawi 2.0.3 JTL-ShippingLabels - Fehler und Bugs 1
Neu Update nach 5.7.1 hängt bei Mirgation Installation / Updates von JTL-Shop 4
Wawi 1.11. Rechnungsanhang funktioniert nicht mehr bei Versandmail JTL-Wawi 1.11 6
Fehlermeldungen bei Einrichtung DHL 4.0 "Objektverweis" und "Konfiguration Versandart" JTL-Wawi 1.11 2
Error 500 bei Neuinstallation Einrichtung JTL-Shop5 7
Neu Amazon Versandentgelt Kaufen bei Standardbestellungen Amazon-Anbindung - Ideen, Lob und Kritik 0
Neu Hilfe bei jtl-pos Synchronisation User helfen Usern - Fragen zu JTL-Wawi 5
Neu Fragen zum SaaS-Connector / Shopware6 bei Lagerbestandskorrektur Shopware-Connector 0
Kontrollkästchen "Export" bei Zahlungen nicht mehr angehakt JTL-Wawi 2.0 4
Neu Seltsamer Fehler bei PayPal-Checkout: "Warenkorb enthielt Vaterartikel..." JTL-Shop - Fehler und Bugs 2
Neu Nach Update auf 1.11.10.0 Abgleich zu Ebay über 3 Stunden bei neuen Angeboten eBay-Anbindung - Fehler und Bugs 2
Neu Falsch erzeugte Ausgangszahlung bei Teilzahlungen und Retoure (Kauf auf Rechnung) Arbeitsabläufe in JTL-Wawi 0
Anmeldung mit OAuth bei Versanddienstleister notwendig JTL-Wawi 1.10 6
Neu Kritisches Problem bei DHL 4.0: Handelsstücklisten brechen EU- und Exportversand JTL-ShippingLabels - Fehler und Bugs 25
Neu Muss bei DHL Express ebenfalls was geändert werden, aufgrund DHL 4.0? User helfen Usern - Fragen zu JTL-Wawi 1
Ameise.exe Fundort bei JTL WAWI 2.02 JTL-Wawi 2.0 2
Neu Keine Adressvalidierung bei DHL Versenden 4.0? JTL-ShippingLabels - Ideen, Lob und Kritik 5
Fehlermeldung bei DHL 4.0 versand JTL-Wawi 2.0 26
Neu Neuerdings E-Mail benachrichtigung bei "Pick up in Store", allerdings mit E-Mail "Bestellung wurde abgeholt" Shopify-Connector 0
Neu keine Kontakt Absender/Empfänger bei DHL Versenden 4.0 JTL-ShippingLabels - Ideen, Lob und Kritik 4
Neu DHL Versenden 4.0 HS Code-Fehler bei Freiposition JTL-ShippingLabels - Fehler und Bugs 20
Neu Muss man für DHL Versenden 4.0 einen neuen Benutzer bei DHL anlegen? JTL-ShippingLabels - Ideen, Lob und Kritik 2
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

Ähnliche Themen