Ich habe eine Reihe von POS-Systemen (Client Point of Sale), die regelmäßig neue Verkaufsdaten an eine zentrale Datenbank senden, in der die Daten zur Berichterstellung in einer großen Datenbank gespeichert werden.
Der Client-POS basiert auf PHPPOS, und ich habe ein Modul implementiert, das die Standard-XML-RPC-Bibliothek verwendet, um Verkaufsdaten an den Service zu senden. Das Serversystem basiert auf CodeIgniter und verwendet die XML-RPC- und XML-RPCS-Bibliotheken für die Webservice-Komponente. Immer wenn ich viele Verkaufsdaten sende (nur 50 Zeilen aus der Verkaufstabelle und einzelne Zeilen aus sales_items, die sich auf jeden Artikel innerhalb des Verkaufs beziehen), erhalte ich die folgende Fehlermeldung:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 54 bytes)
128M ist der Standardwert in php.ini
, aber ich gehe davon aus, dass dies eine große Zahl ist, die gebrochen werden muss. Tatsächlich habe ich sogar versucht, diesen Wert auf 1024 MB einzustellen, und es dauert nur länger, bis ein Fehler auftritt.
Bei den von mir unternommenen Schritten habe ich versucht, die gesamte Verarbeitung auf der Serverseite zu deaktivieren, und sie so manipuliert, dass unabhängig von der Eingabe eine vordefinierte Antwort zurückgegeben wird. Ich glaube jedoch, dass das Problem im tatsächlichen Senden der Daten liegt. Ich habe sogar versucht, die maximale Skriptausführungszeit für PHP zu deaktivieren, und es treten immer noch Fehler auf.