Hallo,
mit dem Cataloger habe ich eine Produktübersicht gebaut, die sehr viele Attribute enthält, da jedes Produkt eine Tabelle enthält, dessen einzelnen Zellen jeweils ein Attribut zugeordnet ist.
Jetzt habe ich folgendes Problem gehabt, was ich allerdings schon allein lösen konnte: nachdem die ersten Attribute und Templates erstellt waren und mit dem Füllen der Vorlagen begonnen wurde, wurde ein out of memory fehler angezeigt. Diesen konnte ich durch reduzieren der Attribute beheben.
Nun ging soweit alles ganz gut, bis ich gestern wieder denselben Fehler erhielt. In der Zwischenzeit wurden viele weitere Templates und Inhalt erstellt. Diesmal kann es jedoch nicht an den Attributen liegen, da diese ja schon reduziert worden sind oder? Es scheint jetzt vielmehr mit der Anzahl der einzelnen Seiten zusammenzuhängen, wobei das nur eine Vermutung von mir ist. Oder könnte es vielleicht auch was bringen mittels PHP nur die beschriebenen Attribute zur datenbank zu übertragen und nicht jedesmal jedes einzelne, egal ob es leer ist oder nicht?
Ich würde nur ungern den Webspace wechseln, um mehr PHP Speicher zur Verfügung zu haben, zumal damit nicht einmal sicher gestellt ist, ob dass das Problem auf lange Sicht gelöst ist. Mehr Attribute kann ich auch nicht opfern.
Kennt jemand eine Lösung? Ist das vielleicht mit einigen zusätzlichen Zeilen php behoben oder muss ich mich nach einem anderen Modul umsehen, was eigentlich unmachbar ist, da fast alle Templates schon fertig sind und der Inhalt auch bald komplett ist. Gibt es im worst case eine Alternative zum Cataloger, wo Templates und Inhalt schnell zu übertragen sind?
Für eure Hilfe wäre ich sehr dankbar.
CMSMS 1.5 und Cataloger 0.7.2 benutzte ich.
Hier ist gleich eine Demonstration des Übels :(
http://www.abex-berlin.de/cmsms/produkte/fahrradstaender/
[Gelöst] Cataloger - out of memory Fehler
[Gelöst] Cataloger - out of memory Fehler
Last edited by Crawler on Fri Feb 12, 2010 9:11 pm, edited 1 time in total.
Re: Cataloger - out of memory Fehler
Wie viel PHP-Speicher hast du denn zur Verfügung?
In der Standard-Installation wird von 16 MB ausgegangen, Optimal sollten 32 MB sein.
In der config.php gibt es einen Parameter, mittels dessen du versuchen kannst, den Wert zu erhöhen ... sollte (wenn es dein Hoster erlaubt) aber auch über einen Eintrag in der htacess möglich sein.
Alternativ könntest du auch mal in die Tuning-Tipps anschauen.
PS: Schau mal in den Quelltext einer Seite - da findest du auch Informationen über den Speicherverbrauch von CMSms
http://www.cmsmadesimple.de/cmsms-suppo ... xikon.html
PPS: In der config.php kannst du auch einen debug-Modus aktivieren ... evtl. hilft dir auch das bei der Fehleranalyse weiter.
In der Standard-Installation wird von 16 MB ausgegangen, Optimal sollten 32 MB sein.
In der config.php gibt es einen Parameter, mittels dessen du versuchen kannst, den Wert zu erhöhen ... sollte (wenn es dein Hoster erlaubt) aber auch über einen Eintrag in der htacess möglich sein.
Alternativ könntest du auch mal in die Tuning-Tipps anschauen.
PS: Schau mal in den Quelltext einer Seite - da findest du auch Informationen über den Speicherverbrauch von CMSms
http://www.cmsmadesimple.de/cmsms-suppo ... xikon.html
PPS: In der config.php kannst du auch einen debug-Modus aktivieren ... evtl. hilft dir auch das bei der Fehleranalyse weiter.
Re: Cataloger - out of memory Fehler
Danke für die schnelle Antwort.
Ich habe 32 MB. Das müsste doch auch ausreichen.
Ich habe beim ersten Auftreten des Fehlers schon mit der config.php, der .htaccess und einer zusätzlichen php.ini (vom Hoster dafür vorgesehen) experimentiert. Kurzzeitig lies sich der Fehler damit beheben, tauchte aber wieder nach einigen Stunden und zusätzlichem Inhalt wieder auf.
Ich versuchs erstmal mit Tuning, debug und Quelltext. Danke.
P.S.
Ich denke ich habe die Fehlerquelle entdeckt. Wenn ein Produkt mehrere Ausführungen besitzt, stellt jede Eintragsseite eine Ausführung dar, die einzelnen Eintragsseiten werden auf einer übergeordneten Kategorieseite über ein iframe eingebunden.
Das Problem ist, das er wenn ich die Kategorieseite öffnen möchte gleich alle Attribute aller untergeordneten Eintragsseite lädt. Das gleiche geschieht auf den großen Übersichtsseiten, wo alle Produkte aufgelistet werden.
Nur wie unterbinde ich, das auf der Kategorieseite alle Attribute geladen werden?
Mit den tuningtipps habe ich schon angefangen, aber da das Problem an dem Catalogermodul liegt, wird das wahrscheinlich wenig bringen, trotzdem danke. Bisschen mehr Performance kann nicht schaden
Ich habe 32 MB. Das müsste doch auch ausreichen.
Ich habe beim ersten Auftreten des Fehlers schon mit der config.php, der .htaccess und einer zusätzlichen php.ini (vom Hoster dafür vorgesehen) experimentiert. Kurzzeitig lies sich der Fehler damit beheben, tauchte aber wieder nach einigen Stunden und zusätzlichem Inhalt wieder auf.
Ich versuchs erstmal mit Tuning, debug und Quelltext. Danke.
P.S.
Ich denke ich habe die Fehlerquelle entdeckt. Wenn ein Produkt mehrere Ausführungen besitzt, stellt jede Eintragsseite eine Ausführung dar, die einzelnen Eintragsseiten werden auf einer übergeordneten Kategorieseite über ein iframe eingebunden.
Das Problem ist, das er wenn ich die Kategorieseite öffnen möchte gleich alle Attribute aller untergeordneten Eintragsseite lädt. Das gleiche geschieht auf den großen Übersichtsseiten, wo alle Produkte aufgelistet werden.
Nur wie unterbinde ich, das auf der Kategorieseite alle Attribute geladen werden?
Mit den tuningtipps habe ich schon angefangen, aber da das Problem an dem Catalogermodul liegt, wird das wahrscheinlich wenig bringen, trotzdem danke. Bisschen mehr Performance kann nicht schaden

Last edited by Crawler on Fri Feb 12, 2010 9:19 am, edited 1 time in total.
Re: Cataloger - out of memory Fehler
Ja, 32 MB sollten reichen ... mit den Tuningtipps hatte ich insbesondere an nicht bzw. nur selten genutzte (und installierte) Module gedacht.
Last edited by cyberman on Fri Feb 12, 2010 1:45 pm, edited 1 time in total.
Re: Cataloger - out of memory Fehler
Das Problem ist behoben 
Der Fehler lag wirklich darin, das die Kategorieseiten die einzelnen Attribute der Eintragsseiten mitgeladen haben (ob nur Kategorieattribute + Attribute der angezeigten Eintragsseite oder Kategorieattribute + alle untergeordneten Eintragsseiten weiß ich nicht). Auf jeden Fall war durch "Rechtsklick - Quelltext anzeigen" lassen ganz untem im Quelltext ersichtlich, das es vorher deutlich mehr Datenbankzugriffe gab und demzufolge auch mehr Speicher und Zeit gefressen wurde.
Der Knackpunkt lag vermutlich (ich hatte den Fehler erst lokalisiert und versucht durch zusätzlichen Code das Problem zu beheben) in der Datei tree.php im Verzeichnis lib/Tree. Die Funktion getContent hat den Fehler meines Laienwissens nach verursacht. Zum Glück stand dort noch als Kommentar, das es verbesserungswürdig ist
Nun zur Lösung des Problems
Es war ganz einfach: ein simples Upgrade von CMSms von Version 1.5 auf 1.6.6 und nachfolgenden Upgrades einzelner Module wie Cataloger 0.7.2 auf 0.7.6 und z.B. auch TinyMCE aufgrund von nachfolgenden Kompatibilitätsproblemen mit der neuen CMSms Version.
Zum Glück wurde der oben beschriebene Codeschnipsel, der schon mit dem Kommentarversehen worden war, ausgebessert
Ich hoffe ich kann damit Leuten mit ähnlichen Problemen weiterhelfen. Und in diesem Sinne ein Hoch auf die neue Version
Is übrigens auch wesentlich schneller! Gute Arbeit liebes Entwicklerteam.

Der Fehler lag wirklich darin, das die Kategorieseiten die einzelnen Attribute der Eintragsseiten mitgeladen haben (ob nur Kategorieattribute + Attribute der angezeigten Eintragsseite oder Kategorieattribute + alle untergeordneten Eintragsseiten weiß ich nicht). Auf jeden Fall war durch "Rechtsklick - Quelltext anzeigen" lassen ganz untem im Quelltext ersichtlich, das es vorher deutlich mehr Datenbankzugriffe gab und demzufolge auch mehr Speicher und Zeit gefressen wurde.
Der Knackpunkt lag vermutlich (ich hatte den Fehler erst lokalisiert und versucht durch zusätzlichen Code das Problem zu beheben) in der Datei tree.php im Verzeichnis lib/Tree. Die Funktion getContent hat den Fehler meines Laienwissens nach verursacht. Zum Glück stand dort noch als Kommentar, das es verbesserungswürdig ist

Nun zur Lösung des Problems

Zum Glück wurde der oben beschriebene Codeschnipsel, der schon mit dem Kommentarversehen worden war, ausgebessert

Ich hoffe ich kann damit Leuten mit ähnlichen Problemen weiterhelfen. Und in diesem Sinne ein Hoch auf die neue Version
