Jag har ett antal POS-system (Point of Sale) som regelbundet skickar nya försäljningsdata till en centraliserad databas, som lagrar data i en stor databas för rapportgenerering.
Klientens kassasystem är baserat på PHPPOS, och jag har implementerat en modul som använder standardbiblioteket XML-RPC för att skicka försäljningsdata till tjänsten. Serversystemet är byggt på CodeIgniter och använder XML-RPC- och XML-RPCS-biblioteken för webbtjänstkomponenten. När jag skickar många försäljningsdata (så lite som 50 rader från försäljningstabellen och enskilda rader från sales_items för varje artikel i försäljningen) får jag följande fel:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 54 bytes)
128M är standardvärdet i php.ini
, men jag antar att det är en stor siffra att bryta. Faktum är att jag till och med har försökt att ställa in värdet till 1024M, och allt det gör är att det tar längre tid innan felet uppstår.
När det gäller de åtgärder som jag har vidtagit har jag försökt inaktivera all bearbetning på serversidan och har riggat den så att den returnerar ett konserverat svar oberoende av inmatningen. Jag tror dock att problemet ligger i själva sändningen av data. Jag har till och med försökt att inaktivera den maximala tiden för utförandet av skript för PHP, men det blir fortfarande fel.
ini_set('memory_limit', '-1');
åsidosätter standardvärdet [PHP memory limit] (http://php.net/memory_limit).